telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchsrc/cctsypacketservicesfu.cpp
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
equal deleted inserted replaced
-1:000000000000 0:3553901f7fa8
       
     1 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 //
       
    15 
       
    16 
       
    17 
       
    18 /**
       
    19  @file The TEFUnit test suite for PacketServicesControl in the Common TSY.
       
    20 */
       
    21 
       
    22 #include "cctsypacketservicesfu.h"
       
    23 #include <etel.h>
       
    24 #include <etelmm.h>
       
    25 #include <in_sock.h>
       
    26 #include <et_clsvr.h>
       
    27 #include <ctsy/mmtsy_names.h>
       
    28 #include <ctsy/serviceapi/mmtsy_ipcdefs.h>
       
    29 #include <test/tmockltsydata.h>
       
    30 #include <ctsy/serviceapi/gsmerror.h>
       
    31 #include <ctsy/ltsy/mltsydispatchpacketservicesinterface.h>
       
    32 #include <pcktcs.h>
       
    33 #include "mockltsyindicatorids.h"
       
    34 #include <mbmstypes.h>
       
    35 #include "listretrieverao.h"
       
    36 
       
    37 CTestSuite* CCTsyPacketServicesFU::CreateSuiteL(const TDesC& aName)
       
    38 	{
       
    39 	SUB_SUITE;
       
    40 	
       
    41 	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUseCase0001L);
       
    42   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUseCase0002L);
       
    43   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUseCase0003L);
       
    44   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUseCase0004L);
       
    45   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUseCase0005L);
       
    46   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUseCase0006L);
       
    47   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUseCase0007L);
       
    48    
       
    49    	//add other unit tests
       
    50   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit0001L);
       
    51  	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit0002L);
       
    52   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit0003L);
       
    53   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit0004L);
       
    54   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit0005L);
       
    55   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit0006L);
       
    56   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit0007L);
       
    57   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit0008L);
       
    58   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit0009L);
       
    59   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit00010L);
       
    60   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit00011AL);
       
    61   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit00011BL);
       
    62   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit00011CL);
       
    63   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit00012L);
       
    64   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit00013L);
       
    65   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit00014L);
       
    66   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit00015L);
       
    67   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit00016L);
       
    68   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit00017L);
       
    69   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit00018L);
       
    70  	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit00019L);
       
    71   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit00020L);
       
    72  	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit00021L);
       
    73   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit00022L);
       
    74   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit00023L);
       
    75   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit00024L);
       
    76   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit00025L);
       
    77   	ADD_TEST_STEP_ISO_CPP(CCTsyPacketServicesFU, TestUnit00026L);
       
    78 
       
    79 	END_SUITE;
       
    80 	}
       
    81 
       
    82 
       
    83 //
       
    84 // Drivers
       
    85 //
       
    86 
       
    87 // Generates the primary and secondary DNS buffer as described in 3GPP specification 3G TS 24.008
       
    88 void CCTsyPacketServicesFU::ConvertDNSToPCOBuffer
       
    89 	(const TDes8& aPrimaryDNS, const TDes8& aSecondaryDNS, const TUint8 aRequestID, TDes8&  aFormatPcoBufferAddr)
       
    90 	{
       
    91 	// Handle Primary DNS address
       
    92 	TInetAddr netPrimaryDNS;
       
    93 	TBuf<KDnsLength> netPrimaryDNSConv;
       
    94 	netPrimaryDNSConv.Copy(aPrimaryDNS);
       
    95 	netPrimaryDNS.Input(netPrimaryDNSConv);
       
    96 	TUint32 primDNSaddr =  netPrimaryDNS.Address();
       
    97 
       
    98 	// Handle Secondary DNS address
       
    99 	TInetAddr netSecondaryDNS;
       
   100 	TBuf<KDnsLength> netSecondaryDNSConv;
       
   101 	netSecondaryDNSConv.Copy(aSecondaryDNS);
       
   102 	netSecondaryDNS.Input(netSecondaryDNSConv);
       
   103 	TUint32 secondaryDNSaddr =  netSecondaryDNS.Address();
       
   104 
       
   105 	aFormatPcoBufferAddr[0] = KPrimaryAndSecondaryDNSLength;	// Length
       
   106 	aFormatPcoBufferAddr[1] = KIPCRequestCode; 					// IPC PRequest Code
       
   107 	aFormatPcoBufferAddr[2] = aRequestID; 						// Request ID (CHAP challenge)
       
   108 	aFormatPcoBufferAddr[3] = KPacketLengthMSB;					// Packet length MSB (always zero)
       
   109 	aFormatPcoBufferAddr[4] = KPrimaryAndSecondaryDNSLength;	// Packet length LSB
       
   110 	aFormatPcoBufferAddr[5] = KIndicatePrimaryAddress; 			// Indicate Primary address
       
   111 	aFormatPcoBufferAddr[6]	= KDnsAddressLength;				// Length of address (inc header)
       
   112 	aFormatPcoBufferAddr[7] = (primDNSaddr >> 24) & 0xff; 		// Primary DNS
       
   113 	aFormatPcoBufferAddr[8] = (primDNSaddr >> 16) & 0xff; 		// Primary DNS
       
   114 	aFormatPcoBufferAddr[9] = (primDNSaddr >> 8) & 0xff; 		// Primary DNS
       
   115 	aFormatPcoBufferAddr[10] =  primDNSaddr & 0xff; 			// Primary DNS
       
   116 	aFormatPcoBufferAddr[11] = KIndicateSecondaryAddress;		// Indicate Secondary address
       
   117 	aFormatPcoBufferAddr[12] = KDnsAddressLength;				// Length of address (inc header)
       
   118 	aFormatPcoBufferAddr[13] = (secondaryDNSaddr >> 24) & 0xff; // Secondary DNS
       
   119 	aFormatPcoBufferAddr[14] = (secondaryDNSaddr >> 16) & 0xff; // Secondary DNS
       
   120 	aFormatPcoBufferAddr[15] = (secondaryDNSaddr >> 8) & 0xff; 	// Secondary DNS
       
   121 	aFormatPcoBufferAddr[16] =  secondaryDNSaddr & 0xff; 		// Secondary DNS
       
   122 	aFormatPcoBufferAddr.SetLength(KPrimaryAndSecondaryDNSLength + 1);
       
   123 	}
       
   124 
       
   125 // Generates the username, password and requestID buffer as described in 3GPP specification 3G TS 24.008
       
   126 void CCTsyPacketServicesFU::ConvertUsernameAndPasswordToPCOBuffer(const TDes8& aUsername, 
       
   127 		const TDes8& aPassword, const TUint8 aRequestID, TDes8& aFormatedBuffer)
       
   128 	{
       
   129 	TInt usernameLen = aUsername.Length();
       
   130 	TInt passwordLen = aPassword.Length();
       
   131 	TInt dataLen = usernameLen + passwordLen + KPasswordUsernameHeaderLength;
       
   132 	TInt i = 0;
       
   133 
       
   134 	aFormatedBuffer[i++] = dataLen; 				// Length
       
   135 	aFormatedBuffer[i++] = KIPCRequestCode; 		// IPC PRequest Codeio
       
   136 	aFormatedBuffer[i++] = aRequestID; 				// Request ID (CHAP challenge)
       
   137 	aFormatedBuffer[i++] = KPacketLengthMSB; 		// Packet length MSB (always zero)
       
   138 	aFormatedBuffer[i++] = dataLen; 				// Packet length LSB
       
   139 	aFormatedBuffer[i++] = usernameLen; 			// Length of username
       
   140 	aFormatedBuffer.SetLength(i);
       
   141 	aFormatedBuffer.Append(aUsername); 				// Username
       
   142 	aFormatedBuffer.SetLength(i + usernameLen + 1);
       
   143 	aFormatedBuffer[i + usernameLen] = passwordLen; // Length of password
       
   144 	aFormatedBuffer.Append(aPassword);				// Password
       
   145 	}
       
   146 
       
   147 /***
       
   148 * 											PCO - Description
       
   149 *
       
   150 * The purpose of the protocol configuration options (PCO) is to transfer external network protocol options 
       
   151 * associated with a PDP context activation, and transfer additional (protocol) data 
       
   152 * (e.g. configuration parameters, error codes or messages/events) associated with an external protocol 
       
   153 * or an application.
       
   154 * The protocol configuration options (PCO) is a type 4 information element with a minimum length of 3 
       
   155 * octets and a maximum length of 253 octets
       
   156 * In order to generate the PCO buffer a TTlvStruct object is being used. The TTlvStruct wraps the buffers  
       
   157 * inserted to the PCO and identifies the buffers with given IDs.
       
   158 *  
       
   159 * In the following test the PCO buffer is initiated with the username, password, requestID, 
       
   160 * primary DNS and secondary DNS. In addition the PCO contains a Misc Buffer which has the 
       
   161 * same structure and the same characteristics as the PCO buffer and can contain 
       
   162 * Miscellaneous protocol information. The main risk with the Misc Buffer is an overflow 
       
   163 * (The dispatcher handles the overflow scenario). 
       
   164 *
       
   165 * Following is an example of a PCO buffer outline:
       
   166 *	
       
   167 *	PcoBuffer[0] == 0x80);  // Config options ext bit
       
   168 *	PcoBuffer[1] == 0xC0);  // Header 1
       
   169 *	PcoBuffer[2] == 0x23);  // Header 2
       
   170 *	PcoBuffer[3] == 0xC);   // Length
       
   171 *	PcoBuffer[4] == 0x1);   // IPC PRequest Code
       
   172 *	PcoBuffer[5] == 0x0);   // Request ID (CHAP challenge)
       
   173 *	PcoBuffer[6] == 0x0);   // Packet length MSB (always zero)
       
   174 *	PcoBuffer[7] == 0xC);   // Packet length LSB
       
   175 *	PcoBuffer[8] == 0x3);   // Length of username
       
   176 *	PcoBuffer[9] == 119);   // Username
       
   177 *	PcoBuffer[10] == 101);  // Username
       
   178 *	PcoBuffer[11] == 98);   // Username
       
   179 *	PcoBuffer[12] == 0x3);  // Length of password
       
   180 *	PcoBuffer[13] == 119);  // Password
       
   181 *	PcoBuffer[14] == 101);  // Password
       
   182 *	PcoBuffer[15] == 98);   // Password
       
   183 *	PcoBuffer[16] == 0x80); // DNS HeaderId 1
       
   184 *	PcoBuffer[17] == 0x21); // DNS HeaderId 2
       
   185 *	PcoBuffer[18] == 0x10); // Length
       
   186 *	PcoBuffer[19] == 0x1);  // IPC PRequest Code
       
   187 *	PcoBuffer[20] == 0x1);  // Request ID (CHAP challenge)
       
   188 *	PcoBuffer[21] == 0x0);  // Packet length MSB (always zero)  
       
   189 *	PcoBuffer[22] == 0x10); // Packet length LSB
       
   190 *	PcoBuffer[23] == 0x81); // Indicate Primary address 
       
   191 *	PcoBuffer[24] == 0x6);  // Length of address (inc header)        
       
   192 *	PcoBuffer[25] == 0xBE); // Primary DNS
       
   193 *	PcoBuffer[26] == 0x0);  // Primary DNS
       
   194 *	PcoBuffer[27] == 0x65); // Primary DNS
       
   195 *	PcoBuffer[28] == 0xBD); // Primary DNS               
       
   196 *	PcoBuffer[29] == 0x83); // Indicate Secondary address 
       
   197 *	PcoBuffer[30] == 0x6);  // Length of address (inc header)     
       
   198 *	PcoBuffer[31] == 0x19); // Secondary DNS
       
   199 *	PcoBuffer[32] == 0x5);  // Secondary DNS
       
   200 *	PcoBuffer[33] == 0x28); // Secondary DNS
       
   201 *	PcoBuffer[34] == 0xBF); // Secondary DNS
       
   202 *   
       
   203 *   The Misc buffer should be added after the secondary DNS value (i.e. location 35 in the
       
   204 *   example above).      
       
   205 */
       
   206  
       
   207 // 
       
   208 //
       
   209 //
       
   210 // Generates a PCO buffer out of a PCO object.
       
   211 void CCTsyPacketServicesFU::PCOGeneratorL(RPacketContext::TProtocolConfigOptionV2& aPco, RPacketContext::TMiscProtocolBuffer& aPcoBuffer)
       
   212 	{
       
   213 
       
   214 	TBuf8<KMaxUserAndPassLength> userAndPasswordBuffer(KMaxUserAndPassLength);
       
   215 
       
   216 	// Generates the username, password and requestID buffer as described in 3GPP specification 3G TS 24.008
       
   217 	ConvertUsernameAndPasswordToPCOBuffer(aPco.iAuthInfo.iUsername, aPco.iAuthInfo.iPassword, aPco.iId++, userAndPasswordBuffer);
       
   218 
       
   219 	TPtr8 userAndPasswordParamDataPtr(const_cast<TUint8*>(userAndPasswordBuffer.Ptr()),
       
   220 			userAndPasswordBuffer.Length(), userAndPasswordBuffer.Length());
       
   221 
       
   222 	TBuf8<KMaxPdpAddressLength> primaryAndSecondaryDNSBuffer(KPrimaryAndSecondaryDNSLength + 1);
       
   223 
       
   224 	// Generates the primary and secondary DNS buffer as described in 3GPP specification 3G TS 24.008
       
   225 	ConvertDNSToPCOBuffer(aPco.iDnsAddresses.iPrimaryDns, aPco.iDnsAddresses.iSecondaryDns, aPco.iId++, primaryAndSecondaryDNSBuffer);
       
   226 
       
   227 	// Setting the configurations buffers
       
   228 	TPtr8 primaryAndSecondaryDNSParamDataPtr(const_cast<TUint8*>(primaryAndSecondaryDNSBuffer.Ptr()),
       
   229 				primaryAndSecondaryDNSBuffer.Length(), primaryAndSecondaryDNSBuffer.Length());
       
   230 
       
   231 	TPtr8 pcoPtr (const_cast<TUint8*> (aPcoBuffer.Ptr()), RPacketContext::KMiscProtocolBufferLength);
       
   232 	TTlvStruct<RPacketContext::TPcoId, RPacketContext::TPcoItemDataLength> pcoTlv(pcoPtr,0);
       
   233 
       
   234 	RPacketContext::TPcoId usenameAndPasswordID(KUsenamePasswordDNSID);
       
   235 	RPacketContext::TPcoId primaryAndSecondaryDNSID(KPrimaryAndSecondaryDNSID);
       
   236 
       
   237 	pcoTlv.AppendItemL(usenameAndPasswordID, userAndPasswordParamDataPtr);
       
   238 	pcoTlv.AppendItemL(primaryAndSecondaryDNSID, primaryAndSecondaryDNSParamDataPtr);
       
   239 
       
   240 	aPcoBuffer.SetLength(primaryAndSecondaryDNSParamDataPtr.Length() + userAndPasswordParamDataPtr.Length() + 2 * KIDLength);
       
   241 
       
   242 	// Append the misc buffer which is alread in TLV structure
       
   243 	aPcoBuffer.Append(aPco.iMiscBuffer);
       
   244 	}
       
   245 
       
   246 void CCTsyPacketServicesFU::DriverDeleteContextL(TInfoName aContextName)
       
   247 	{
       
   248 	RBuf8 data;
       
   249 	CleanupClosePushL(data);
       
   250 	TMockLtsyData1<TInfoName> contextNameData(aContextName);
       
   251 	data.Close();
       
   252 	contextNameData.SerialiseL(data);
       
   253 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, data, KErrNone);
       
   254 	CleanupStack::PopAndDestroy(1, &data); // data
       
   255 	}
       
   256 
       
   257 void CCTsyPacketServicesFU::DriverAttachPacketServiceL()
       
   258 	{
       
   259 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesPacketAttach::KLtsyDispatchPacketServicesPacketAttachApiId);
       
   260 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesPacketAttach::KLtsyDispatchPacketServicesPacketAttachApiId, KErrNone);
       
   261 	}
       
   262 
       
   263 void CCTsyPacketServicesFU::DriverDetachPacketServiceL()
       
   264 	{
       
   265 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesPacketDetach::KLtsyDispatchPacketServicesPacketDetachApiId);
       
   266 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesPacketDetach::KLtsyDispatchPacketServicesPacketDetachApiId, KErrNone);
       
   267 
       
   268 	// SetAttachModeL being called as part of the detach completion process
       
   269 	RBuf8 dataExpect;
       
   270     CleanupClosePushL(dataExpect);
       
   271     RPacketService::TAttachMode attachMode = RPacketService::EAttachWhenPossible;
       
   272     TMockLtsyData1<RPacketService::TAttachMode> ltsyData(attachMode);
       
   273     dataExpect.Close();
       
   274     ltsyData.SerialiseL(dataExpect);
       
   275 
       
   276     iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPacketAttachMode::KLtsyDispatchPacketServicesSetPacketAttachModeApiId, dataExpect, KErrNone);
       
   277     iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPacketAttachMode::KLtsyDispatchPacketServicesSetPacketAttachModeApiId, KErrNone);
       
   278 
       
   279 	CleanupStack::PopAndDestroy(1, &dataExpect); // dataExpect
       
   280 	}
       
   281 
       
   282 void CCTsyPacketServicesFU::DriverInitialiseContextL()
       
   283 	{
       
   284 	RBuf8 data;
       
   285 	CleanupClosePushL(data);
       
   286 
       
   287 	TInfoName primaryContext;
       
   288 	TInfoName secondaryContext;
       
   289 	primaryContext.Copy(KFirstAllocatedContextName);
       
   290 	secondaryContext.Copy(KDefaultContextName);
       
   291 
       
   292 	//-------------------------------------------------------------------------
       
   293 	// Successful completion request of
       
   294 	// RPacketContext::InitialiseContext
       
   295  	//-------------------------------------------------------------------------
       
   296 
       
   297 	TMockLtsyData2<TInfoName, TInfoName> expLtsyContextNamesData3(primaryContext, secondaryContext);
       
   298 	data.Close();
       
   299 	expLtsyContextNamesData3.SerialiseL(data);
       
   300 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesInitialisePdpContext::KLtsyDispatchPacketServicesInitialisePdpContextApiId, data);
       
   301 
       
   302 	TDesC* contextNamePtr = &primaryContext;
       
   303 	TDesC* channelIdPtr = const_cast<TDesC*>(&KDefaultChannelId);
       
   304 	TMockLtsyData2<TDesC*, TDesC*> expLtsyContextNameAndChannelIdData(contextNamePtr, channelIdPtr);
       
   305 	data.Close();
       
   306 	expLtsyContextNameAndChannelIdData.SerialiseL(data);
       
   307 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesInitialisePdpContext::KLtsyDispatchPacketServicesInitialisePdpContextApiId, KErrNone, data);
       
   308 
       
   309 	CleanupStack::PopAndDestroy(1, &data); // data
       
   310 	}
       
   311 
       
   312 void CCTsyPacketServicesFU::DriverInitialiseContextL(const TInfoName& aPrimaryContextId, const TInfoName& aSecondaryContextId)
       
   313 	{
       
   314 	RBuf8 data;
       
   315 	CleanupClosePushL(data);
       
   316 
       
   317 	TInfoName& primaryContext = const_cast<TInfoName&>(aPrimaryContextId);
       
   318 	TInfoName& secondaryContext = const_cast<TInfoName&>(aSecondaryContextId);
       
   319 
       
   320 	//-------------------------------------------------------------------------
       
   321 	// Successful completion request of
       
   322 	// RPacketContext::InitialiseContext
       
   323  	//-------------------------------------------------------------------------
       
   324 
       
   325 	TMockLtsyData2<TInfoName, TInfoName> expLtsyContextNamesData(primaryContext, secondaryContext);
       
   326 	data.Close();
       
   327 	expLtsyContextNamesData.SerialiseL(data);
       
   328 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesInitialisePdpContext::KLtsyDispatchPacketServicesInitialisePdpContextApiId, data);
       
   329 
       
   330 
       
   331 	// Check if a secondary context is being initialise and if it is then compelte initialisation for secondary context.
       
   332 	TDesC* contextNamePtr = (aSecondaryContextId == KDefaultContextName) ? &primaryContext : &secondaryContext;
       
   333 	
       
   334 	TDesC* channelIdPtr = const_cast<TDesC*>(&KSecondaryContextChannelId);
       
   335 	TMockLtsyData2<TDesC*, TDesC*> expLtsyContextNameAndPortData2(contextNamePtr, channelIdPtr);
       
   336 	data.Close();
       
   337 	expLtsyContextNameAndPortData2.SerialiseL(data);	
       
   338 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesInitialisePdpContext::KLtsyDispatchPacketServicesInitialisePdpContextApiId, KErrNone, data);
       
   339 
       
   340 	CleanupStack::PopAndDestroy(&data); // data
       
   341 	}
       
   342 
       
   343 
       
   344 void CCTsyPacketServicesFU::DriverSetConfigContextL(TInfoName aContextId,
       
   345 		RPacketContext::TGSNAddress aAccessPoint, RPacketContext::TProtocolType aPdpType, 
       
   346 		RPacketContext::TProtocolAddress aPdpAddress,
       
   347 		RPacketContext::TMiscProtocolBuffer aPcoBuffer)
       
   348 	{
       
   349 
       
   350 	RBuf8 data;
       
   351 	CleanupClosePushL(data);
       
   352 
       
   353 	TMockLtsyData5<TInfoName, RPacketContext::TGSNAddress, RPacketContext::TProtocolType, RPacketContext::TProtocolAddress, RPacketContext::TMiscProtocolBuffer>
       
   354 					packetSetConfigData(aContextId, aAccessPoint, aPdpType, aPdpAddress, aPcoBuffer);
       
   355 	data.Close();
       
   356 	packetSetConfigData.SerialiseL(data);
       
   357 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextConfig::KLtsyDispatchPacketServicesSetPdpContextConfigApiId, data, KErrNone);
       
   358 
       
   359 	// Indicate that the context name is due to comeback from the SetConfig callback
       
   360 	TInfoName callbackContextId = aContextId;
       
   361 	TMockLtsyData1<TInfoName> callbackContextIdData(callbackContextId);
       
   362 	data.Close();
       
   363 	callbackContextIdData.SerialiseL(data);
       
   364 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextConfig::KLtsyDispatchPacketServicesSetPdpContextConfigApiId, KErrNone, data);
       
   365 
       
   366 	CleanupStack::PopAndDestroy(1, &data); // data
       
   367 	}
       
   368 void CCTsyPacketServicesFU::DriverModifyActiveContextL(TInt8 aRejectionCode, TInt aError)
       
   369 	{
       
   370 	RBuf8 data;
       
   371 	CleanupClosePushL(data);
       
   372 
       
   373 	TInfoName modifyActiveContextName;
       
   374 	modifyActiveContextName.Copy(KFirstAllocatedContextName);
       
   375 	TMockLtsyData1<TInfoName>
       
   376 		modifyActiveContextNameData(modifyActiveContextName);
       
   377 	data.Close();
       
   378 	modifyActiveContextNameData.SerialiseL(data);
       
   379 
       
   380 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesModifyActivePdpContext::KLtsyDispatchPacketServicesModifyActivePdpContextApiId, data, KErrNone);
       
   381 
       
   382 	TMockLtsyData2<TInfoName, TInt8 >
       
   383 		completeModifyActiveContextData(modifyActiveContextName, aRejectionCode); // Context name and rejection code
       
   384 	data.Close();
       
   385 	completeModifyActiveContextData.SerialiseL(data);
       
   386 
       
   387 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesModifyActivePdpContext::KLtsyDispatchPacketServicesModifyActivePdpContextApiId, aError, data);
       
   388 
       
   389 	CleanupStack::PopAndDestroy(1, &data); // data
       
   390 	}
       
   391 
       
   392 void CCTsyPacketServicesFU::OpenInitialiseMbmsContextLC(RPacketService& aPacketService, RPacketMbmsContext& aPacketContext, TDes& aContextName, const TDesC& aChannelId, TInt aCompError)
       
   393 	{
       
   394 	aPacketContext.OpenNewContext(aPacketService, aContextName);
       
   395 	CleanupClosePushL(aPacketContext);
       
   396 
       
   397 	RBuf8 data;
       
   398 	CleanupClosePushL(data);
       
   399 	
       
   400 	TDesC* contextNamePtr = &aContextName;
       
   401 	TMockLtsyData1<TDesC*> initMbmdContextExpData(contextNamePtr);
       
   402 	initMbmdContextExpData.SerialiseL(data);
       
   403 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesInitialiseMbmsContext::KLtsyDispatchPacketServicesInitialiseMbmsContextApiId, data);
       
   404 	data.Close();
       
   405 	
       
   406 	
       
   407 	TDesC* channelPtr = const_cast<TDesC*>(&aChannelId);
       
   408 	TMockLtsyData2<TDesC*,TDesC*> initMbmdContextCompData(contextNamePtr, channelPtr);
       
   409 	initMbmdContextCompData.SerialiseL(data);
       
   410 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesInitialiseMbmsContext::KLtsyDispatchPacketServicesInitialiseMbmsContextApiId, aCompError, data);
       
   411 	data.Close();
       
   412 	
       
   413 	//initialisation of the context
       
   414 	RPacketContext::TDataChannelV2 dataChannel;
       
   415 	RPacketContext::TDataChannelV2Pckg dataChannelPckg(dataChannel);
       
   416 
       
   417 	TRequestStatus reqStatus;
       
   418     aPacketContext.InitialiseContext(reqStatus, dataChannelPckg);
       
   419 	User::WaitForRequest(reqStatus);
       
   420 	ASSERT_EQUALS(reqStatus.Int(), aCompError);
       
   421 	ASSERT_TRUE((aCompError != KErrNone) || (dataChannel.iChannelId == aChannelId) || (dataChannel.iPort == KMBMSFirstAllocatedContextName));
       
   422 	
       
   423 	AssertMockLtsyStatusL();
       
   424 	
       
   425 	CleanupStack::PopAndDestroy(&data);
       
   426 	}
       
   427 
       
   428 //
       
   429 // Use Cases
       
   430 //
       
   431 
       
   432 
       
   433 /**
       
   434 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UC0001
       
   435 @SYMComponent telephony_ctsy
       
   436 @SYMTestCaseDesc Test support in CTSY for RPacketService::Attach & RPacketService::Detach
       
   437 @SYMTestPriority High
       
   438 @SYMTestActions Invokes RPacketService::Attach(), RPacketService::Detach()
       
   439 @SYMTestExpectedResults Pass
       
   440 @SYMTestType CT
       
   441  */
       
   442 void CCTsyPacketServicesFU::TestUseCase0001L()
       
   443 	{
       
   444 	OpenEtelServerL(EUseExtendedError);
       
   445 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   446 	OpenPhoneL();
       
   447 	RBuf8 data;
       
   448 	CleanupClosePushL(data);
       
   449 
       
   450 	// client side test
       
   451 	RPacketService packetService;
       
   452 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
   453 
       
   454 	//
       
   455 
       
   456 	DriverAttachPacketServiceL();
       
   457 	DriverDetachPacketServiceL();
       
   458 
       
   459 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesGetPacketAttachMode::KLtsyDispatchPacketServicesGetPacketAttachModeApiId);
       
   460 	RPacketService::TAttachMode returnedAttachMode = RPacketService::EAttachWhenPossible;
       
   461 	TMockLtsyData1<RPacketService::TAttachMode > completeGetAttachModetData(returnedAttachMode);
       
   462 	data.Close();
       
   463 	completeGetAttachModetData.SerialiseL(data);
       
   464 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesGetPacketAttachMode::KLtsyDispatchPacketServicesGetPacketAttachModeApiId, KErrNone, data);
       
   465 
       
   466 	//
       
   467 
       
   468 	TRequestStatus requestAttachStatus;
       
   469 	RPacketService::TStatus packetStatus;
       
   470 	packetService.NotifyStatusChange(requestAttachStatus, packetStatus);
       
   471 
       
   472 	TRequestStatus attachStatus;
       
   473 	packetService.Attach(attachStatus);
       
   474 
       
   475 	// Wait for Attach to complete
       
   476 	User::WaitForRequest(attachStatus);
       
   477 	ASSERT_EQUALS(KErrNone, attachStatus.Int());
       
   478 	// Wait for notification to complete
       
   479 	User::WaitForRequest(requestAttachStatus);
       
   480 	ASSERT_EQUALS(RPacketService::EStatusAttached, packetStatus);
       
   481 
       
   482 	RPacketService::TStatus getStatus;
       
   483 	ASSERT_EQUALS(KErrNone, packetService.GetStatus(getStatus));
       
   484 	ASSERT_EQUALS(RPacketService::EStatusAttached, getStatus);
       
   485 
       
   486 	TRequestStatus requestDetachStatus;
       
   487 	packetService.NotifyStatusChange(requestDetachStatus, packetStatus);
       
   488 	// Detach and wait for request
       
   489 	TRequestStatus detachStatus;
       
   490 	packetService.Detach(detachStatus);
       
   491 
       
   492 	// Wait for Detach to complete
       
   493 	User::WaitForRequest(detachStatus);
       
   494 
       
   495 	// Wait for notification to complete
       
   496 	User::WaitForRequest(requestDetachStatus);
       
   497 	ASSERT_EQUALS(KErrNone, detachStatus.Int());
       
   498 	ASSERT_EQUALS(RPacketService::EStatusUnattached, packetStatus);
       
   499 	ASSERT_EQUALS(KErrNone, packetService.GetStatus(getStatus));
       
   500 	ASSERT_EQUALS(RPacketService::EStatusUnattached, getStatus);
       
   501 
       
   502 	packetService.NotifyStatusChange(requestAttachStatus, packetStatus);
       
   503 	
       
   504 	TRequestStatus attachModeStatus;
       
   505 	RPacketService::TAttachMode completedAttachMode;
       
   506 	packetService.GetAttachMode(attachModeStatus, completedAttachMode);
       
   507 	User::WaitForRequest(attachModeStatus);
       
   508 	ASSERT_EQUALS(KErrNone, attachModeStatus.Int());
       
   509 	ASSERT_EQUALS(RPacketService::EAttachWhenPossible, completedAttachMode);
       
   510 
       
   511 	packetService.Close();
       
   512 
       
   513 	// Let the mock-LTSY finish up before asserting.
       
   514 	User::After(1000000);
       
   515 	
       
   516 	AssertMockLtsyStatusL();
       
   517 	CleanupStack::PopAndDestroy(3, this); // data, packetService, this
       
   518 	}
       
   519 
       
   520 
       
   521 /**
       
   522 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UC0002
       
   523 @SYMComponent telephony_ctsy
       
   524 @SYMTestCaseDesc Test support in CTSY for activation and QoS configuration for R97.
       
   525 @SYMTestPriority High
       
   526 @SYMTestActions Invokes RPacketContext::OpenNewContext(), RPacketContext::InitialiseContext(), RPacketContext::SetConfig(), RPacketQoS::OpenNewQoS(), RPacketQoS::SetProfileParameters(), RPacketQoS::NotifyProfileChanged(), RPacketContext::Activate(), RPacketContext::NotifyStatusChange() for R97
       
   527 @SYMTestExpectedResults Pass
       
   528 @SYMTestType CT
       
   529  */
       
   530 void CCTsyPacketServicesFU::TestUseCase0002L()
       
   531 	{
       
   532 	OpenEtelServerL(EUseExtendedError);
       
   533 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   534 	OpenPhoneL();
       
   535 
       
   536 	RPacketService packetService;
       
   537 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
   538 
       
   539 	TInfoName contextId;
       
   540 	contextId.Copy(KFirstAllocatedContextName);
       
   541 
       
   542 	// Prepare context configuration for GPRS
       
   543 	RPacketContext::TContextConfigGPRS setConfigGPRS;
       
   544 	setConfigGPRS.iAccessPointName.Copy(KPointNameGPRS);
       
   545 	setConfigGPRS.iPdpType = RPacketContext::EPdpTypeIPv4;
       
   546 	setConfigGPRS.iPdpAddress.Copy(KPdpAddGPRS);
       
   547 	setConfigGPRS.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns);
       
   548 	setConfigGPRS.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns);
       
   549 	setConfigGPRS.iProtocolConfigOption.iAuthInfo.iProtocol = RPacketContext::EProtocolCHAP;
       
   550 	setConfigGPRS.iProtocolConfigOption.iAuthInfo.iUsername.Copy(KUsername);
       
   551 	setConfigGPRS.iProtocolConfigOption.iAuthInfo.iPassword.Copy(KPassword);
       
   552 	setConfigGPRS.iProtocolConfigOption.iId = KRequestID;
       
   553 	setConfigGPRS.iProtocolConfigOption.iMiscBuffer.Copy(KDummyMiscBuffer);
       
   554 	TPckg<RPacketContext::TContextConfigGPRS> pckgConfigGPRS(setConfigGPRS);
       
   555 
       
   556 	// Create the PCO buffer
       
   557 	RPacketContext::TMiscProtocolBuffer pcoBuffer;
       
   558 	pcoBuffer.Zero();
       
   559 
       
   560 	// Generate a PCO buffer
       
   561 	PCOGeneratorL(setConfigGPRS.iProtocolConfigOption, pcoBuffer);
       
   562 	setConfigGPRS.iProtocolConfigOption.iId = KRequestID;
       
   563 	
       
   564 	//
       
   565 	// GPRS Configuration
       
   566 	DriverInitialiseContextL();
       
   567 	
       
   568 	DriverSetConfigContextL(contextId, setConfigGPRS.iAccessPointName, setConfigGPRS.iPdpType, setConfigGPRS.iPdpAddress, pcoBuffer);
       
   569 	
       
   570 	RPacketQoS::TQoSGPRSRequested qosExpectedRequestedGPRSProfile;
       
   571 	qosExpectedRequestedGPRSProfile.iReqPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
   572 	qosExpectedRequestedGPRSProfile.iMinPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
   573 	qosExpectedRequestedGPRSProfile.iReqDelay = RPacketQoS::EDelayClass1;
       
   574 	qosExpectedRequestedGPRSProfile.iMinDelay = RPacketQoS::EUnspecifiedDelayClass;
       
   575 	qosExpectedRequestedGPRSProfile.iReqReliability = RPacketQoS::EUnspecifiedReliabilityClass;
       
   576 	qosExpectedRequestedGPRSProfile.iMinReliability = RPacketQoS::EReliabilityClass1;
       
   577 	qosExpectedRequestedGPRSProfile.iReqPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
   578 	qosExpectedRequestedGPRSProfile.iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
   579 	qosExpectedRequestedGPRSProfile.iReqMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
       
   580 	qosExpectedRequestedGPRSProfile.iMinMeanThroughput = RPacketQoS::EMeanThroughput500;
       
   581 
       
   582 	RBuf8 data;
       
   583 	CleanupClosePushL(data);
       
   584 	
       
   585 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSGPRSRequested> packetSetConfigGPRSData(contextId,qosExpectedRequestedGPRSProfile);
       
   586 	data.Close();
       
   587 	packetSetConfigGPRSData.SerialiseL(data);
       
   588 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
   589 
       
   590 	TMockLtsyData1<TInfoName> callbackSetPdpGPRSContextNameData(contextId);
       
   591 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
   592 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
   593 
       
   594 	// Activate
       
   595 	TMockLtsyData1<TInfoName> expectedActivateContextNameData(contextId);
       
   596 	data.Close();
       
   597 	expectedActivateContextNameData.SerialiseL(data);
       
   598 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesActivatePdpContext::KLtsyDispatchPacketServicesActivatePdpContextApiId, data, KErrNone);
       
   599 
       
   600 	TMockLtsyData3<TInfoName, RPacketContext::TGSNAddress, RPacketContext::TProtocolType>
       
   601 		completedActivateContextNameData(contextId, setConfigGPRS.iAccessPointName, setConfigGPRS.iPdpType);
       
   602 	data.Close();
       
   603 	completedActivateContextNameData.SerialiseL(data);
       
   604 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesActivatePdpContext::KLtsyDispatchPacketServicesActivatePdpContextApiId, KErrNone, data);
       
   605 
       
   606 	RPacketQoS::TQoSGPRSNegotiated completedProfile;
       
   607 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSGPRSNegotiated> expLtsyQosProfileChangedInd(contextId, completedProfile);
       
   608 	data.Close();
       
   609 	expLtsyQosProfileChangedInd.SerialiseL(data);
       
   610 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);
       
   611 
       
   612 	// Prepare context configuration for GPRS
       
   613 	RPacketContext::TContextConfigGPRS setConfigGPRSActive;
       
   614 	setConfigGPRSActive.iAccessPointName.Copy(KPointNameGPRS);
       
   615 	setConfigGPRSActive.iPdpType = RPacketContext::EPdpTypeIPv4;
       
   616 	setConfigGPRSActive.iPdpCompression = 0;
       
   617 	setConfigGPRSActive.iPdpAddress.Copy(KPdpAddGPRSActive);
       
   618 	setConfigGPRSActive.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns);
       
   619 	setConfigGPRSActive.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns);
       
   620 	setConfigGPRSActive.iProtocolConfigOption.iAuthInfo.iProtocol = RPacketContext::EProtocolCHAP;
       
   621 	setConfigGPRSActive.iProtocolConfigOption.iAuthInfo.iUsername.Copy(KUsername);
       
   622 	setConfigGPRSActive.iProtocolConfigOption.iAuthInfo.iPassword.Copy(KPassword);
       
   623 
       
   624 	TMockLtsyData5<TInfoName, RPacketContext::TGSNAddress, RPacketContext::TProtocolAddress, TUint, RPacketContext::TMiscProtocolBuffer>
       
   625 					expLtsyProfileChangedInd(contextId, setConfigGPRSActive.iAccessPointName,
       
   626 					setConfigGPRSActive.iPdpAddress, setConfigGPRSActive.iPdpCompression, pcoBuffer);
       
   627 	data.Close();
       
   628 	expLtsyProfileChangedInd.SerialiseL(data);
       
   629 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyPdpContextConfigChangedIndId, KErrNone, data);
       
   630 
       
   631 	TMockLtsyData1<TInfoName> deactivateContextNameData(contextId);
       
   632 	data.Close();
       
   633 	deactivateContextNameData.SerialiseL(data);
       
   634 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesDeactivatePdpContext::KLtsyDispatchPacketServicesDeactivatePdpContextApiId, data, KErrNone);
       
   635 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesDeactivatePdpContext::KLtsyDispatchPacketServicesDeactivatePdpContextApiId, KErrNone, data);
       
   636 	
       
   637 	DriverDeleteContextL(contextId);
       
   638 
       
   639 	//
       
   640 
       
   641 	// client side test
       
   642 	RPacketContext packetContext;
       
   643 
       
   644 	// Open a new context
       
   645 	TInt err = packetContext.OpenNewContext(packetService, contextId);
       
   646 	CleanupClosePushL(packetContext);
       
   647 	ASSERT_EQUALS(KErrNone, err);
       
   648 
       
   649 	RPacketContext::TDataChannelV2 dataChannel;
       
   650 	RPacketContext::TDataChannelV2Pckg dataChannelPk(dataChannel);
       
   651 	TRequestStatus initialiseContextStatus;
       
   652 
       
   653 	packetContext.InitialiseContext(initialiseContextStatus,dataChannelPk);
       
   654 	User::WaitForRequest(initialiseContextStatus);
       
   655 
       
   656 	ASSERT_EQUALS(KErrNone, initialiseContextStatus.Int());
       
   657 	ASSERT_TRUE(dataChannel.iPort == KFirstAllocatedContextName);
       
   658 	ASSERT_TRUE(dataChannel.iChannelId == KDefaultChannelId); // now deprecated
       
   659 
       
   660 	TRequestStatus setConfigStatus;
       
   661 	packetContext.SetConfig(setConfigStatus, pckgConfigGPRS);
       
   662 	
       
   663 	User::WaitForRequest(setConfigStatus);
       
   664 	ASSERT_EQUALS(KErrNone, setConfigStatus.Int());
       
   665 
       
   666 	TName qosName;
       
   667 	RPacketQoS packetQoS;
       
   668 	packetQoS.OpenNewQoS(packetContext, qosName);
       
   669 	CleanupClosePushL(packetQoS);
       
   670 
       
   671 	//
       
   672     // SetProfileParameters for GPRS Configurations
       
   673     //
       
   674 
       
   675 	RPacketQoS::TQoSGPRSRequested qosGPRSRequestedProfile;
       
   676 	qosGPRSRequestedProfile.iReqPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
   677 	qosGPRSRequestedProfile.iMinPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
   678 	qosGPRSRequestedProfile.iReqDelay = RPacketQoS::EDelayClass1;
       
   679 	qosGPRSRequestedProfile.iMinDelay = RPacketQoS::EUnspecifiedDelayClass;
       
   680 	qosGPRSRequestedProfile.iReqReliability =  RPacketQoS::EUnspecifiedReliabilityClass;
       
   681 	qosGPRSRequestedProfile.iMinReliability = RPacketQoS::EReliabilityClass1;
       
   682 	qosGPRSRequestedProfile.iReqPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
   683 	qosGPRSRequestedProfile.iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
   684 	qosGPRSRequestedProfile.iReqMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
       
   685 	qosGPRSRequestedProfile.iMinMeanThroughput = RPacketQoS::EMeanThroughput500;
       
   686 	TPckg< RPacketQoS::TQoSGPRSRequested > profilePckgGPRS(qosGPRSRequestedProfile);
       
   687 	
       
   688 	TRequestStatus notifyProfileChangeStatus;
       
   689 	RPacketQoS::TQoSGPRSNegotiated profile;
       
   690 	TPckg<RPacketQoS::TQoSGPRSNegotiated> qosGPRSNegotiatedProfilePk(profile);
       
   691 	packetQoS.NotifyProfileChanged(notifyProfileChangeStatus, qosGPRSNegotiatedProfilePk);
       
   692 	
       
   693 	TRequestStatus requestStatusGPRS;
       
   694 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
   695 	User::WaitForRequest(requestStatusGPRS);
       
   696 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
   697 	//
       
   698 
       
   699 	RPacketContext::TContextConfigGPRS setConfigGPRSActiveNotifyConfigChanged;
       
   700 	TPckg<RPacketContext::TContextConfigGPRS> pckgConfigGPRSNotifyConfigChanged(setConfigGPRSActiveNotifyConfigChanged);
       
   701 
       
   702 	TRequestStatus contextConfigStatus;
       
   703 	packetContext.NotifyConfigChanged(contextConfigStatus, pckgConfigGPRSNotifyConfigChanged);
       
   704 
       
   705 	TRequestStatus contextActivatingRequestStatus;
       
   706 	RPacketContext::TContextStatus contextStatus;
       
   707 	packetContext.NotifyStatusChange(contextActivatingRequestStatus, contextStatus);
       
   708 
       
   709 	TRequestStatus activateStatus;
       
   710 	packetContext.Activate(activateStatus);
       
   711 	User::WaitForRequest(activateStatus);
       
   712 	User::WaitForRequest(contextActivatingRequestStatus);
       
   713 	ASSERT_EQUALS(KErrNone, activateStatus.Int());
       
   714 	ASSERT_EQUALS(RPacketContext::EStatusActivating, contextStatus);
       
   715 
       
   716 	// Complete NotifyProfileChanged
       
   717 	User::WaitForRequest(notifyProfileChangeStatus);
       
   718 	ASSERT_EQUALS(KErrNone, notifyProfileChangeStatus.Int());
       
   719 
       
   720 	// Status change from RPacketContext::EStatusActivating to RPacketContext::EStatusActive
       
   721 	TRequestStatus contextActivateRequestStatus;
       
   722 	RPacketContext::TContextStatus contextActiveStatus;
       
   723 	packetContext.NotifyStatusChange(contextActivateRequestStatus, contextActiveStatus);
       
   724 
       
   725 	// Complete NotifyConfigChanged	
       
   726 	User::WaitForRequest(contextActivateRequestStatus);	
       
   727 	ASSERT_EQUALS(KErrNone, contextActivateRequestStatus.Int());
       
   728 	ASSERT_EQUALS(RPacketContext::EStatusActive, contextActiveStatus);
       
   729 	
       
   730 	TRequestStatus deactivateContextStatus;
       
   731 	packetContext.Deactivate(deactivateContextStatus);
       
   732 	User::WaitForRequest(deactivateContextStatus);
       
   733 	ASSERT_EQUALS(KErrNone, deactivateContextStatus.Int())
       
   734 
       
   735 	packetQoS.Close();
       
   736 	packetContext.Close();
       
   737 	packetService.Close();
       
   738 
       
   739 	// Let the mock-LTSY finish up before asserting.
       
   740 	User::After(1000000);
       
   741 	
       
   742 	AssertMockLtsyStatusL();
       
   743 	CleanupStack::PopAndDestroy(5, this); // data, packetQoS, packetService, packetContext, this
       
   744 	}
       
   745 
       
   746 
       
   747 /**
       
   748 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UC0003
       
   749 @SYMComponent telephony_ctsy
       
   750 @SYMTestCaseDesc Test support in CTSY for activation and QoS configuration for R99.
       
   751 @SYMTestPriority High
       
   752 @SYMTestActions Invokes RPacketContext::OpenNewContext(), RPacketContext::InitialiseContext(), RPacketContext::SetConfig(), RPacketQoS::OpenNewQoS(), RPacketQoS::SetProfileParameters(), RPacketQoS::NotifyProfileChanged(), RPacketContext::Activate(), RPacketContext::NotifyStatusChange() for R99
       
   753 @SYMTestExpectedResults Pass
       
   754 @SYMTestType CT
       
   755  */
       
   756 void CCTsyPacketServicesFU::TestUseCase0003L()
       
   757 	{
       
   758 	OpenEtelServerL(EUseExtendedError);
       
   759 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   760 	OpenPhoneL();
       
   761 
       
   762 	RPacketService packetService;
       
   763 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
   764 
       
   765 	TInfoName contextId;
       
   766 	contextId.Copy(KFirstAllocatedContextName);
       
   767 
       
   768 	// Prepare context configuration for R4R99
       
   769 	RPacketContext::TContextConfigR99_R4 setConfig99;
       
   770 	setConfig99.iAccessPointName.Copy(KPointName99);
       
   771 	setConfig99.iPdpType = RPacketContext::EPdpTypeIPv4;
       
   772 	setConfig99.iPdpAddress.Copy(KPdpAdd99);
       
   773 	setConfig99.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns);
       
   774 	setConfig99.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns);
       
   775 	setConfig99.iProtocolConfigOption.iAuthInfo.iProtocol = RPacketContext::EProtocolCHAP;
       
   776 	setConfig99.iProtocolConfigOption.iAuthInfo.iUsername.Copy(KUsername);
       
   777 	setConfig99.iProtocolConfigOption.iAuthInfo.iPassword.Copy(KPassword);
       
   778 	setConfig99.iProtocolConfigOption.iId = KRequestID;
       
   779 	TPckg<RPacketContext::TContextConfigR99_R4> pckgConfig99(setConfig99);
       
   780 
       
   781 	// Create the PCO buffer
       
   782 	RPacketContext::TMiscProtocolBuffer pcoBuffer;
       
   783 	pcoBuffer.Zero();
       
   784 
       
   785 	// Generate a PCO buffer
       
   786 	PCOGeneratorL(setConfig99.iProtocolConfigOption, pcoBuffer);
       
   787 	setConfig99.iProtocolConfigOption.iId = KRequestID;
       
   788 
       
   789 	//
       
   790 	// 99 Configuration
       
   791 	RPacketQoS::TQoSR99_R4Requested qosExpectedRequested99Profile;
       
   792 
       
   793 	DriverInitialiseContextL();
       
   794 	DriverSetConfigContextL(contextId, setConfig99.iAccessPointName, setConfig99.iPdpType, setConfig99.iPdpAddress, pcoBuffer);
       
   795 	RBuf8 data;
       
   796 	CleanupClosePushL(data);
       
   797 
       
   798 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSR99_R4Requested> packetSetConfig99Data(contextId,qosExpectedRequested99Profile);
       
   799 	data.Close();
       
   800 	packetSetConfig99Data.SerialiseL(data);
       
   801 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
   802 
       
   803 	TMockLtsyData1<TInfoName> callbackSetPdp99ContextNameData(contextId);
       
   804 	callbackSetPdp99ContextNameData.SerialiseL(data);
       
   805 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
   806 
       
   807 	//Activate
       
   808 	TMockLtsyData1<TInfoName> expectedActivateContextNameData(contextId);
       
   809 	data.Close();
       
   810 	expectedActivateContextNameData.SerialiseL(data);
       
   811 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesActivatePdpContext::KLtsyDispatchPacketServicesActivatePdpContextApiId, data, KErrNone);
       
   812 
       
   813 	TMockLtsyData3<TInfoName, RPacketContext::TGSNAddress, RPacketContext::TProtocolType>
       
   814 		completedActivateContextNameData(contextId, setConfig99.iAccessPointName, setConfig99.iPdpType);
       
   815 	data.Close();
       
   816 	completedActivateContextNameData.SerialiseL(data);
       
   817 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesActivatePdpContext::KLtsyDispatchPacketServicesActivatePdpContextApiId, KErrNone, data);
       
   818 
       
   819 	RPacketQoS::TQoSR99_R4Negotiated completedProfile;
       
   820 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSR99_R4Negotiated> expLtsyQosProfileChangedInd(contextId, completedProfile);
       
   821 	data.Close();
       
   822 	expLtsyQosProfileChangedInd.SerialiseL(data);
       
   823 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);
       
   824 
       
   825 	// Prepare context configuration for 99
       
   826 	RPacketContext::TContextConfigR99_R4 setConfig99Active;
       
   827 	setConfig99Active.iAccessPointName.Copy(KPointName99);
       
   828 	setConfig99Active.iPdpType = RPacketContext::EPdpTypeIPv4;
       
   829 	setConfig99Active.iPdpAddress.Copy(KAddress);
       
   830 	TUint pdpCompression = 0;
       
   831 
       
   832 	TMockLtsyData5<TInfoName, RPacketContext::TGSNAddress, RPacketContext::TProtocolAddress, TUint, RPacketContext::TMiscProtocolBuffer>
       
   833 					expLtsyProfileChangedInd(contextId, setConfig99Active.iAccessPointName,
       
   834 					setConfig99Active.iPdpAddress, pdpCompression, pcoBuffer);
       
   835 	data.Close();
       
   836 	expLtsyProfileChangedInd.SerialiseL(data);
       
   837 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyPdpContextConfigChangedIndId, KErrNone, data);
       
   838 
       
   839 	
       
   840 
       
   841 	//
       
   842 
       
   843 	// client side test
       
   844 	RPacketContext packetContext;
       
   845 
       
   846 	// Open a new context
       
   847 	TInt err = packetContext.OpenNewContext(packetService, contextId);
       
   848 	CleanupClosePushL(packetContext);
       
   849 	ASSERT_EQUALS(KErrNone, err);
       
   850 
       
   851 	RPacketContext::TDataChannelV2 dataChannel;
       
   852 	RPacketContext::TDataChannelV2Pckg dataChannelPk(dataChannel);
       
   853 	TRequestStatus initialiseContextStatus;
       
   854 
       
   855 	packetContext.InitialiseContext(initialiseContextStatus,dataChannelPk);
       
   856 	User::WaitForRequest(initialiseContextStatus);
       
   857 
       
   858 	ASSERT_EQUALS(KErrNone, initialiseContextStatus.Int());
       
   859 	ASSERT_TRUE(dataChannel.iPort == KFirstAllocatedContextName);	
       
   860 	ASSERT_TRUE(dataChannel.iChannelId == KDefaultChannelId); // Now deprecated
       
   861 
       
   862 	TRequestStatus setConfigStatus;
       
   863 	packetContext.SetConfig(setConfigStatus, pckgConfig99);
       
   864 	User::WaitForRequest(setConfigStatus);
       
   865 	ASSERT_EQUALS(KErrNone, setConfigStatus.Int());
       
   866 
       
   867 	TName qosName;
       
   868 	RPacketQoS packetQoS;
       
   869 	packetQoS.OpenNewQoS(packetContext, qosName);
       
   870 	CleanupClosePushL(packetQoS);
       
   871 
       
   872 	//
       
   873     // SetProfileParameters for 99 Configurations
       
   874     //
       
   875 
       
   876 	RPacketQoS::TQoSR99_R4Requested qos99RequestedProfile;
       
   877 	TPckg< RPacketQoS::TQoSR99_R4Requested > profilePckg99(qos99RequestedProfile);
       
   878 
       
   879 	
       
   880 	//
       
   881 
       
   882 	TRequestStatus notifyProfileChangeStatus;
       
   883 	RPacketQoS::TQoSR99_R4Negotiated profile;
       
   884 	TPckg<RPacketQoS::TQoSR99_R4Negotiated> qos99NegotiatedProfilePk(profile);
       
   885 	packetQoS.NotifyProfileChanged(notifyProfileChangeStatus, qos99NegotiatedProfilePk);
       
   886 	
       
   887 	TRequestStatus requestStatus99;
       
   888 	packetQoS.SetProfileParameters(requestStatus99, profilePckg99);
       
   889 	User::WaitForRequest(requestStatus99);
       
   890 	ASSERT_EQUALS(KErrNone, requestStatus99.Int());
       
   891 
       
   892 	RPacketContext::TContextConfigR99_R4 setConfig99ActiveNotifyConfigChanged;
       
   893 	TPckg<RPacketContext::TContextConfigR99_R4> pckgConfig99NotifyConfigChanged(setConfig99ActiveNotifyConfigChanged);
       
   894 
       
   895 	TRequestStatus contextConfigStatus;
       
   896 	packetContext.NotifyConfigChanged(contextConfigStatus, pckgConfig99NotifyConfigChanged);
       
   897 
       
   898 	TRequestStatus contextActivatingRequestStatus;
       
   899 	RPacketContext::TContextStatus contextStatus;
       
   900 	packetContext.NotifyStatusChange(contextActivatingRequestStatus, contextStatus);
       
   901 
       
   902 	TRequestStatus activateStatus;
       
   903 	packetContext.Activate(activateStatus);
       
   904 	User::WaitForRequest(activateStatus);
       
   905 	User::WaitForRequest(contextActivatingRequestStatus);
       
   906 	ASSERT_EQUALS(KErrNone, activateStatus.Int());
       
   907 	ASSERT_EQUALS(RPacketContext::EStatusActivating, contextStatus);
       
   908 
       
   909 	// Complete NotifyProfileChanged
       
   910 	User::WaitForRequest(notifyProfileChangeStatus);
       
   911 	ASSERT_EQUALS(KErrNone, notifyProfileChangeStatus.Int());
       
   912 
       
   913 	// Status change from RPacketContext::EStatusActivating to RPacketContext::EStatusActive
       
   914 	TRequestStatus contextActivateRequestStatus;
       
   915 	RPacketContext::TContextStatus contextActiveStatus;
       
   916 	packetContext.NotifyStatusChange(contextActivateRequestStatus, contextActiveStatus);
       
   917 
       
   918 	// Complete NotifyConfigChanged
       
   919 	//User::WaitForRequest(contextConfigStatus);
       
   920 	User::WaitForRequest(contextActivateRequestStatus);
       
   921 	//ASSERT_EQUALS(KErrNone, contextConfigStatus.Int());
       
   922 	ASSERT_EQUALS(KErrNone, contextActivateRequestStatus.Int());
       
   923 	ASSERT_EQUALS(RPacketContext::EStatusActive, contextActiveStatus);
       
   924 
       
   925 	DriverDeleteContextL(contextId);
       
   926 	packetQoS.Close();
       
   927 	packetContext.Close();
       
   928 	packetService.Close();
       
   929 
       
   930 	// Let the mock-LTSY finish up before asserting.
       
   931 	User::After(1000000);
       
   932 	
       
   933 	AssertMockLtsyStatusL();
       
   934 	CleanupStack::PopAndDestroy(5, this); // data, packetQoS, packetService, packetContext, this
       
   935 	}
       
   936 
       
   937 /**
       
   938 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UC0004
       
   939 @SYMComponent telephony_ctsy
       
   940 @SYMTestCaseDesc Test support in CTSY for modification of an existing context
       
   941 @SYMTestPriority High
       
   942 @SYMTestActions Invokes RPacketContext::SetConfig(), RPacketContext::ModifyActiveContext()
       
   943 @SYMTestExpectedResults Pass
       
   944 @SYMTestType CT
       
   945  */
       
   946 void CCTsyPacketServicesFU::TestUseCase0004L()
       
   947 	{
       
   948 	OpenEtelServerL(EUseExtendedError);
       
   949 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   950 	OpenPhoneL();
       
   951 
       
   952 	RPacketService packetService;
       
   953 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
   954 
       
   955 	// Prepare context configuration fo GPRS
       
   956 	RPacketContext::TContextConfigGPRS setConfigGPRS;
       
   957 	setConfigGPRS.iAccessPointName.Copy(KPointNameGPRS);
       
   958 	setConfigGPRS.iPdpType = RPacketContext::EPdpTypeIPv4;
       
   959 	setConfigGPRS.iPdpAddress.Copy(KPdpAddGPRS);
       
   960 	setConfigGPRS.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns);
       
   961 	setConfigGPRS.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns);
       
   962 	setConfigGPRS.iProtocolConfigOption.iAuthInfo.iProtocol = RPacketContext::EProtocolCHAP;
       
   963 	setConfigGPRS.iProtocolConfigOption.iAuthInfo.iUsername.Copy(KUsername);
       
   964 	setConfigGPRS.iProtocolConfigOption.iAuthInfo.iPassword.Copy(KPassword);
       
   965 	setConfigGPRS.iProtocolConfigOption.iId = KRequestID;
       
   966 	TPckg<RPacketContext::TContextConfigGPRS> pckgConfigGPRS(setConfigGPRS);
       
   967 
       
   968 	// Create the PCO buffer
       
   969 	RPacketContext::TMiscProtocolBuffer gprsMiscBuffer;
       
   970 	gprsMiscBuffer.Zero();
       
   971 
       
   972 	// Generate a PCO buffer
       
   973 	PCOGeneratorL(setConfigGPRS.iProtocolConfigOption, gprsMiscBuffer);
       
   974 	setConfigGPRS.iProtocolConfigOption.iId = KRequestID;
       
   975 
       
   976 	//
       
   977 
       
   978 	DriverInitialiseContextL();
       
   979 
       
   980 	// GPRS Configuration
       
   981 	TInfoName contextName;
       
   982 	contextName.Copy(KFirstAllocatedContextName);
       
   983 
       
   984 	DriverSetConfigContextL(contextName, setConfigGPRS.iAccessPointName, setConfigGPRS.iPdpType,
       
   985 			setConfigGPRS.iPdpAddress, gprsMiscBuffer);
       
   986 
       
   987 	RPacketQoS::TQoSGPRSRequested qosExpectedRequestedGPRSProfile;
       
   988 
       
   989 	qosExpectedRequestedGPRSProfile.iReqPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
   990 	qosExpectedRequestedGPRSProfile.iMinPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
   991 	qosExpectedRequestedGPRSProfile.iReqDelay = RPacketQoS::EUnspecifiedDelayClass;
       
   992 	qosExpectedRequestedGPRSProfile.iMinDelay = RPacketQoS::EUnspecifiedDelayClass;
       
   993 	qosExpectedRequestedGPRSProfile.iReqReliability = RPacketQoS::EUnspecifiedReliabilityClass;
       
   994 	qosExpectedRequestedGPRSProfile.iMinReliability = RPacketQoS::EUnspecifiedReliabilityClass;
       
   995 	qosExpectedRequestedGPRSProfile.iReqPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
   996 	qosExpectedRequestedGPRSProfile.iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
   997 	qosExpectedRequestedGPRSProfile.iReqMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
       
   998 	qosExpectedRequestedGPRSProfile.iMinMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
       
   999 
       
  1000 	RBuf8 data;
       
  1001 	CleanupClosePushL(data);
       
  1002 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSGPRSRequested> packetSetConfigGPRSData(contextName,
       
  1003 			qosExpectedRequestedGPRSProfile);
       
  1004 	data.Close();
       
  1005 	packetSetConfigGPRSData.SerialiseL(data);
       
  1006 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  1007 
       
  1008 	TMockLtsyData1<TInfoName> callbackSetPdpGPRSContextNameData(contextName);
       
  1009 	data.Close();
       
  1010 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  1011 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  1012 
       
  1013 	//Activate
       
  1014 	TMockLtsyData1<TInfoName> expectedActivateContextNameData(contextName);
       
  1015 	data.Close();
       
  1016 	expectedActivateContextNameData.SerialiseL(data);
       
  1017 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesActivatePdpContext::KLtsyDispatchPacketServicesActivatePdpContextApiId, data, KErrNone);
       
  1018 
       
  1019 	TMockLtsyData3<TInfoName, RPacketContext::TGSNAddress, RPacketContext::TProtocolType>
       
  1020 	completedActivateContextNameData(contextName, setConfigGPRS.iAccessPointName, setConfigGPRS.iPdpType);
       
  1021 	data.Close();
       
  1022 	completedActivateContextNameData.SerialiseL(data);
       
  1023 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesActivatePdpContext::KLtsyDispatchPacketServicesActivatePdpContextApiId, KErrNone, data);
       
  1024 
       
  1025 	RPacketQoS::TQoSGPRSNegotiated completedProfile;
       
  1026 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSGPRSNegotiated>
       
  1027 				expLtsyQosProfileChangedInd(contextName, completedProfile);
       
  1028 	data.Close();
       
  1029 	expLtsyQosProfileChangedInd.SerialiseL(data);
       
  1030 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);
       
  1031 
       
  1032 	// Prepare context configuration for GPRS
       
  1033 	RPacketContext::TContextConfigGPRS setConfigGPRSActive;
       
  1034 	setConfigGPRSActive.iAccessPointName.Copy(KPointNameGPRS);
       
  1035 	setConfigGPRSActive.iPdpType = RPacketContext::EPdpTypeIPv6;
       
  1036 	setConfigGPRSActive.iPdpAddress.Copy(KPdpAddGPRS);
       
  1037 	setConfigGPRSActive.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns);
       
  1038 	setConfigGPRSActive.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns);
       
  1039 	setConfigGPRSActive.iProtocolConfigOption.iAuthInfo.iProtocol = RPacketContext::EProtocolCHAP;
       
  1040 	setConfigGPRSActive.iProtocolConfigOption.iAuthInfo.iUsername.Copy(KUsername);
       
  1041 	setConfigGPRSActive.iProtocolConfigOption.iAuthInfo.iPassword.Copy(KPassword);
       
  1042 
       
  1043 	TMockLtsyData5<TInfoName, RPacketContext::TGSNAddress, RPacketContext::TProtocolAddress, TUint, RPacketContext::TMiscProtocolBuffer>
       
  1044 					expLtsyProfileChangedInd(contextName, setConfigGPRS.iAccessPointName,
       
  1045 							setConfigGPRS.iPdpAddress, setConfigGPRS.iPdpCompression, gprsMiscBuffer);
       
  1046 	data.Close();
       
  1047 	expLtsyProfileChangedInd.SerialiseL(data);
       
  1048 
       
  1049 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyPdpContextConfigChangedIndId, KErrNone, data);
       
  1050 
       
  1051 
       
  1052 	DriverSetConfigContextL(contextName, setConfigGPRSActive.iAccessPointName, setConfigGPRSActive.iPdpType,
       
  1053 			setConfigGPRSActive.iPdpAddress, gprsMiscBuffer);
       
  1054 
       
  1055 	DriverModifyActiveContextL(KRejectionCodePass, KErrNone);
       
  1056 	DriverModifyActiveContextL(KRejectionCodeFail, KErrGeneral);
       
  1057 
       
  1058 	TMockLtsyData1<TInfoName> deactivateContextNameData(contextName);
       
  1059 	data.Close();
       
  1060 	deactivateContextNameData.SerialiseL(data);
       
  1061 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesDeactivatePdpContext::KLtsyDispatchPacketServicesDeactivatePdpContextApiId, data, KErrNone);
       
  1062 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesDeactivatePdpContext::KLtsyDispatchPacketServicesDeactivatePdpContextApiId, KErrNone, data);
       
  1063 
       
  1064 	DriverDeleteContextL(contextName);
       
  1065 
       
  1066 	//
       
  1067 
       
  1068 	// client side test
       
  1069 	RPacketContext packetContext;
       
  1070 
       
  1071 	// Open a new context
       
  1072 	TInt err = packetContext.OpenNewContext(packetService, contextName);
       
  1073 	CleanupClosePushL(packetContext);
       
  1074 	ASSERT_EQUALS(KErrNone, err);
       
  1075 
       
  1076 	RPacketContext::TDataChannelV2 dataChannel;
       
  1077 	RPacketContext::TDataChannelV2Pckg dataChannelPk(dataChannel);
       
  1078 	TRequestStatus initialiseContextStatus;
       
  1079 
       
  1080 	packetContext.InitialiseContext(initialiseContextStatus,dataChannelPk);
       
  1081 	User::WaitForRequest(initialiseContextStatus);
       
  1082 
       
  1083 	ASSERT_EQUALS(KErrNone, initialiseContextStatus.Int());
       
  1084 	ASSERT_TRUE(dataChannel.iPort == KFirstAllocatedContextName);	
       
  1085 	ASSERT_TRUE(dataChannel.iChannelId == KDefaultChannelId); // Now deprecated
       
  1086 
       
  1087 	TRequestStatus setConfigStatus;
       
  1088 	packetContext.SetConfig(setConfigStatus, pckgConfigGPRS);
       
  1089 
       
  1090 	User::WaitForRequest(setConfigStatus);
       
  1091 	ASSERT_EQUALS(KErrNone, setConfigStatus.Int());
       
  1092 
       
  1093 	TName qosName;
       
  1094 	RPacketQoS packetQoS;
       
  1095 	packetQoS.OpenNewQoS(packetContext, qosName);
       
  1096 	CleanupClosePushL(packetQoS);
       
  1097 
       
  1098 	//
       
  1099     // SetProfileParameters for GPRS Configurations
       
  1100     //
       
  1101 
       
  1102 	RPacketQoS::TQoSGPRSRequested qosGPRSRequestedProfile;
       
  1103 	qosGPRSRequestedProfile.iReqPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  1104 	qosGPRSRequestedProfile.iMinPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  1105 	qosGPRSRequestedProfile.iReqDelay = RPacketQoS::EUnspecifiedDelayClass;
       
  1106 	qosGPRSRequestedProfile.iMinDelay = RPacketQoS::EUnspecifiedDelayClass;
       
  1107 	qosGPRSRequestedProfile.iReqReliability = RPacketQoS::EUnspecifiedReliabilityClass;
       
  1108 	qosGPRSRequestedProfile.iMinReliability = RPacketQoS::EUnspecifiedReliabilityClass;
       
  1109 	qosGPRSRequestedProfile.iReqPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  1110 	qosGPRSRequestedProfile.iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  1111 	qosGPRSRequestedProfile.iReqMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
       
  1112 	qosGPRSRequestedProfile.iMinMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
       
  1113 	TPckg< RPacketQoS::TQoSGPRSRequested > profilePckgGPRS(qosGPRSRequestedProfile);
       
  1114 
       
  1115 	TRequestStatus notifyProfileChangeStatus;
       
  1116 	RPacketQoS::TQoSGPRSNegotiated profile;
       
  1117 	TPckg<RPacketQoS::TQoSGPRSNegotiated> qosGPRSNegotiatedProfilePk(profile);
       
  1118 	packetQoS.NotifyProfileChanged(notifyProfileChangeStatus, qosGPRSNegotiatedProfilePk);
       
  1119 
       
  1120 	TRequestStatus requestStatusGPRS;
       
  1121 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  1122 	User::WaitForRequest(requestStatusGPRS);
       
  1123 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  1124 
       
  1125 	//
       
  1126 
       
  1127 	RPacketContext::TContextConfigGPRS setConfigGPRSActiveNotifyConfigChanged;
       
  1128 	TPckg<RPacketContext::TContextConfigGPRS> pckgConfigGPRSNotifyConfigChanged(setConfigGPRSActiveNotifyConfigChanged);
       
  1129 
       
  1130 	TRequestStatus contextConfigStatus;
       
  1131 	packetContext.NotifyConfigChanged(contextConfigStatus, pckgConfigGPRSNotifyConfigChanged);
       
  1132 
       
  1133 	TRequestStatus contextActivatingRequestStatus;
       
  1134 	RPacketContext::TContextStatus contextStatus;
       
  1135 	packetContext.NotifyStatusChange(contextActivatingRequestStatus, contextStatus);
       
  1136 
       
  1137 	TRequestStatus activateStatus;
       
  1138 	packetContext.Activate(activateStatus);
       
  1139 	User::WaitForRequest(activateStatus);
       
  1140 	User::WaitForRequest(contextActivatingRequestStatus);
       
  1141 	ASSERT_EQUALS(KErrNone, activateStatus.Int());
       
  1142 	ASSERT_EQUALS(RPacketContext::EStatusActivating, contextStatus);
       
  1143 
       
  1144 	// Complete NotifyProfileChanged
       
  1145 	User::WaitForRequest(notifyProfileChangeStatus);
       
  1146 	ASSERT_EQUALS(KErrNone, notifyProfileChangeStatus.Int());
       
  1147 
       
  1148 	// Status change from RPacketContext::EStatusActivating to RPacketContext::EStatusActive
       
  1149 	TRequestStatus contextActivateRequestStatus;
       
  1150 	RPacketContext::TContextStatus contextActiveStatus;
       
  1151 	packetContext.NotifyStatusChange(contextActivateRequestStatus, contextActiveStatus);
       
  1152 
       
  1153 	User::WaitForRequest(contextActivateRequestStatus);
       
  1154 	ASSERT_EQUALS(KErrNone, contextActivateRequestStatus.Int());
       
  1155 	ASSERT_EQUALS(RPacketContext::EStatusActive, contextActiveStatus);
       
  1156 
       
  1157 	// Prepare context configuration for GPRS
       
  1158 	setConfigGPRS.iAccessPointName.Copy(KPointNameGPRS);
       
  1159 	setConfigGPRS.iPdpType = RPacketContext::EPdpTypeIPv6;
       
  1160 	setConfigGPRS.iPdpAddress.Copy(KPdpAddGPRS);
       
  1161 	TPckg<RPacketContext::TContextConfigGPRS> pckgConfigGPRS2(setConfigGPRS);
       
  1162 
       
  1163 	packetContext.SetConfig(setConfigStatus, pckgConfigGPRS2);
       
  1164 	User::WaitForRequest(setConfigStatus);
       
  1165 	ASSERT_EQUALS(KErrNone, setConfigStatus.Int());
       
  1166 
       
  1167 	/* Request modification, modification should be successful */
       
  1168 	TRequestStatus modifyActiveContextStatus;
       
  1169 	packetContext.ModifyActiveContext(modifyActiveContextStatus);
       
  1170 	User::WaitForRequest(modifyActiveContextStatus);
       
  1171 	ASSERT_EQUALS(KErrNone, modifyActiveContextStatus.Int());
       
  1172 
       
  1173 	/* Request second modification, should fail */
       
  1174 	packetContext.ModifyActiveContext(modifyActiveContextStatus);
       
  1175 	User::WaitForRequest(modifyActiveContextStatus);
       
  1176 	ASSERT_EQUALS(KErrGeneral, modifyActiveContextStatus.Int());
       
  1177 
       
  1178 	TRequestStatus deactivateContextStatus;
       
  1179 	packetContext.Deactivate(deactivateContextStatus);
       
  1180 	User::WaitForRequest(deactivateContextStatus);
       
  1181 	ASSERT_EQUALS(KErrNone, deactivateContextStatus.Int())
       
  1182 
       
  1183 	packetQoS.Close();
       
  1184 	packetContext.Close();
       
  1185 	packetService.Close();
       
  1186 	
       
  1187 	// Let the mock-LTSY finish up before asserting.
       
  1188 	User::After(1000000);
       
  1189 	
       
  1190 	AssertMockLtsyStatusL();
       
  1191 	CleanupStack::PopAndDestroy(5, this); // data, packetQoS, packetService, packetContext, this
       
  1192 	}
       
  1193 
       
  1194 /**
       
  1195 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UC0005
       
  1196 @SYMComponent telephony_ctsy
       
  1197 @SYMTestCaseDesc Test support in CTSY for activation of two primary contexts (QoS configuration provided only for the first context).
       
  1198 	@SYMTestPriority High
       
  1199 	@SYMTestActions Invokes RPacketContext::OpenNewContext(), RPacketContext::InitialiseContext(), RPacketContext::SetConfig(), RPacketQoS::OpenNewQoS(), RPacketQoS::SetProfileParameters(), RPacketQoS::NotifyProfileChanged(), RPacketContext::Activate(), RPacketContext::NotifyStatusChange() for R97
       
  1200 @SYMTestExpectedResults Pass
       
  1201 @SYMTestType UT
       
  1202  */
       
  1203 void CCTsyPacketServicesFU::TestUseCase0005L()
       
  1204 	{
       
  1205 	OpenEtelServerL(EUseExtendedError);
       
  1206 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1207 	OpenPhoneL();
       
  1208 
       
  1209 	TInfoName contextId;
       
  1210 	contextId.Copy(KFirstAllocatedContextName);
       
  1211 	
       
  1212 	RPacketService packetService;
       
  1213 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  1214 	
       
  1215 	RPacketContext packetContext;
       
  1216 
       
  1217 	// Open the first primary context
       
  1218 	TInt err = packetContext.OpenNewContext(packetService, contextId);
       
  1219 	CleanupClosePushL(packetContext);
       
  1220 	ASSERT_EQUALS(KErrNone, err);
       
  1221 	
       
  1222 	// QoS for first context
       
  1223 	TName qosName;
       
  1224 	RPacketQoS packetQoS;
       
  1225 	packetQoS.OpenNewQoS(packetContext, qosName);
       
  1226 	CleanupClosePushL(packetQoS);
       
  1227 
       
  1228 	AssertMockLtsyStatusL();
       
  1229 	
       
  1230 	// Prepare context configuration for GPRS
       
  1231 	RPacketContext::TContextConfigGPRS* setConfigGPRS = new (ELeave) RPacketContext::TContextConfigGPRS();
       
  1232 	CleanupStack::PushL(setConfigGPRS);
       
  1233 	setConfigGPRS->iAccessPointName.Copy(KPointNameGPRS);
       
  1234 	setConfigGPRS->iPdpType = RPacketContext::EPdpTypeIPv4;
       
  1235 	setConfigGPRS->iPdpAddress.Copy(KPdpAddGPRS);
       
  1236 	setConfigGPRS->iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns);
       
  1237 	setConfigGPRS->iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns);
       
  1238 	setConfigGPRS->iProtocolConfigOption.iAuthInfo.iProtocol = RPacketContext::EProtocolCHAP;
       
  1239 	setConfigGPRS->iProtocolConfigOption.iAuthInfo.iUsername.Copy(KUsername);
       
  1240 	setConfigGPRS->iProtocolConfigOption.iAuthInfo.iPassword.Copy(KPassword);
       
  1241 	setConfigGPRS->iProtocolConfigOption.iId = KRequestID;
       
  1242 	setConfigGPRS->iProtocolConfigOption.iMiscBuffer.Copy(KDummyMiscBuffer);
       
  1243 	TPckg<RPacketContext::TContextConfigGPRS> pckgConfigGPRS(*setConfigGPRS);
       
  1244 
       
  1245 	// Create the PCO buffer
       
  1246 	RPacketContext::TMiscProtocolBuffer pcoBuffer;
       
  1247 	pcoBuffer.Zero();
       
  1248 
       
  1249 	// Generate a PCO buffer
       
  1250 	PCOGeneratorL(setConfigGPRS->iProtocolConfigOption, pcoBuffer);
       
  1251 	setConfigGPRS->iProtocolConfigOption.iId = KRequestID;
       
  1252 
       
  1253 	// Inititialise context
       
  1254 	DriverInitialiseContextL();
       
  1255 	
       
  1256 	RPacketContext::TDataChannelV2 dataChannel;
       
  1257 	RPacketContext::TDataChannelV2Pckg dataChannelPk(dataChannel);
       
  1258 	TRequestStatus initialiseContextStatus;
       
  1259 
       
  1260 	packetContext.InitialiseContext(initialiseContextStatus,dataChannelPk);
       
  1261 	User::WaitForRequest(initialiseContextStatus);
       
  1262 	
       
  1263 	AssertMockLtsyStatusL();
       
  1264 
       
  1265 	ASSERT_EQUALS(KErrNone, initialiseContextStatus.Int());
       
  1266 	ASSERT_TRUE(dataChannel.iPort == KFirstAllocatedContextName);	
       
  1267 	ASSERT_TRUE(dataChannel.iChannelId == KDefaultChannelId); // Now deprecated
       
  1268 		
       
  1269 	DriverSetConfigContextL(contextId, setConfigGPRS->iAccessPointName, setConfigGPRS->iPdpType, setConfigGPRS->iPdpAddress, pcoBuffer);
       
  1270 	
       
  1271 	TRequestStatus setConfigStatus;
       
  1272 	packetContext.SetConfig(setConfigStatus, pckgConfigGPRS);
       
  1273 	User::WaitForRequest(setConfigStatus);
       
  1274 	
       
  1275 	AssertMockLtsyStatusL();	
       
  1276 	ASSERT_EQUALS(KErrNone, setConfigStatus.Int());
       
  1277 	
       
  1278 	RPacketQoS::TQoSGPRSRequested* qosExpectedRequestedGPRSProfile = new (ELeave) RPacketQoS::TQoSGPRSRequested();
       
  1279 	CleanupStack::PushL(qosExpectedRequestedGPRSProfile);
       
  1280     qosExpectedRequestedGPRSProfile->iReqPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  1281 	qosExpectedRequestedGPRSProfile->iMinPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  1282 	qosExpectedRequestedGPRSProfile->iReqDelay = RPacketQoS::EDelayClass1;
       
  1283 	qosExpectedRequestedGPRSProfile->iMinDelay = RPacketQoS::EUnspecifiedDelayClass;
       
  1284 	qosExpectedRequestedGPRSProfile->iReqReliability = RPacketQoS::EUnspecifiedReliabilityClass;
       
  1285 	qosExpectedRequestedGPRSProfile->iMinReliability = RPacketQoS::EReliabilityClass1;
       
  1286 	qosExpectedRequestedGPRSProfile->iReqPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  1287 	qosExpectedRequestedGPRSProfile->iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  1288 	qosExpectedRequestedGPRSProfile->iReqMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
       
  1289 	qosExpectedRequestedGPRSProfile->iMinMeanThroughput = RPacketQoS::EMeanThroughput500;
       
  1290 
       
  1291 	RBuf8 data;
       
  1292 	CleanupClosePushL(data);
       
  1293 
       
  1294 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSGPRSRequested> packetSetConfigGPRSData(contextId, *qosExpectedRequestedGPRSProfile);
       
  1295 	data.Close();
       
  1296 	packetSetConfigGPRSData.SerialiseL(data);
       
  1297 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  1298 
       
  1299 	TMockLtsyData1<TInfoName> callbackSetPdpGPRSContextNameData(contextId);
       
  1300 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  1301 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  1302 	
       
  1303 	//
       
  1304     // SetProfileParameters for GPRS Configurations
       
  1305     //
       
  1306 
       
  1307 	RPacketQoS::TQoSGPRSRequested* qosGPRSRequestedProfile = new (ELeave) RPacketQoS::TQoSGPRSRequested();
       
  1308 	CleanupStack::PushL(qosGPRSRequestedProfile);
       
  1309 	qosGPRSRequestedProfile->iReqPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  1310 	qosGPRSRequestedProfile->iMinPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  1311 	qosGPRSRequestedProfile->iReqDelay = RPacketQoS::EDelayClass1;
       
  1312 	qosGPRSRequestedProfile->iMinDelay = RPacketQoS::EUnspecifiedDelayClass;
       
  1313 	qosGPRSRequestedProfile->iReqReliability =  RPacketQoS::EUnspecifiedReliabilityClass;
       
  1314 	qosGPRSRequestedProfile->iMinReliability = RPacketQoS::EReliabilityClass1;
       
  1315 	qosGPRSRequestedProfile->iReqPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  1316 	qosGPRSRequestedProfile->iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  1317 	qosGPRSRequestedProfile->iReqMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
       
  1318 	qosGPRSRequestedProfile->iMinMeanThroughput = RPacketQoS::EMeanThroughput500;
       
  1319 	TPckg< RPacketQoS::TQoSGPRSRequested > profilePckgGPRS(*qosGPRSRequestedProfile);
       
  1320 
       
  1321 	TRequestStatus notifyProfileChangeStatus;
       
  1322 	RPacketQoS::TQoSGPRSNegotiated profile;
       
  1323 	TPckg<RPacketQoS::TQoSGPRSNegotiated> qosGPRSNegotiatedProfilePk(profile);
       
  1324 	packetQoS.NotifyProfileChanged(notifyProfileChangeStatus, qosGPRSNegotiatedProfilePk);
       
  1325 	
       
  1326 	TRequestStatus requestStatusGPRS;
       
  1327 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  1328 	User::WaitForRequest(requestStatusGPRS);
       
  1329 
       
  1330 	AssertMockLtsyStatusL();
       
  1331 	
       
  1332 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  1333 	
       
  1334 	TRequestStatus contextConfigStatus;
       
  1335 	RPacketContext::TContextConfigGPRS setConfigGPRSActiveNotifyConfigChanged;
       
  1336 	TPckg<RPacketContext::TContextConfigGPRS> pckgConfigGPRSNotifyConfigChanged(setConfigGPRSActiveNotifyConfigChanged);
       
  1337 	packetContext.NotifyConfigChanged(contextConfigStatus, pckgConfigGPRSNotifyConfigChanged);
       
  1338 	
       
  1339 	TRequestStatus contextActivatingRequestStatus;
       
  1340 	RPacketContext::TContextStatus contextStatus;
       
  1341 	packetContext.NotifyStatusChange(contextActivatingRequestStatus, contextStatus);
       
  1342 	
       
  1343 	TMockLtsyData1<TInfoName> expectedActivateContextNameData(contextId);
       
  1344 	data.Close();
       
  1345 	expectedActivateContextNameData.SerialiseL(data);
       
  1346 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesActivatePdpContext::KLtsyDispatchPacketServicesActivatePdpContextApiId, data, KErrNone);
       
  1347 				
       
  1348 	TMockLtsyData3<TInfoName, RPacketContext::TGSNAddress, RPacketContext::TProtocolType>
       
  1349 		completedActivateContextNameData(contextId, setConfigGPRS->iAccessPointName, setConfigGPRS->iPdpType);
       
  1350 	data.Close();
       
  1351 	completedActivateContextNameData.SerialiseL(data);
       
  1352 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesActivatePdpContext::KLtsyDispatchPacketServicesActivatePdpContextApiId, KErrNone, data);
       
  1353 	
       
  1354 	RPacketQoS::TQoSGPRSNegotiated completedProfile;
       
  1355 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSGPRSNegotiated>
       
  1356 					expLtsyQosProfileChangedInd(contextId, completedProfile);
       
  1357 	data.Close();
       
  1358 	expLtsyQosProfileChangedInd.SerialiseL(data);
       
  1359 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);
       
  1360 
       
  1361 	// Prepare context configuration for GPRS
       
  1362 	RPacketContext::TContextConfigGPRS* setConfigGPRSActive = new (ELeave) RPacketContext::TContextConfigGPRS();
       
  1363 	CleanupStack::PushL(setConfigGPRSActive);
       
  1364 	setConfigGPRSActive->iAccessPointName.Copy(KPointNameGPRS);
       
  1365 	setConfigGPRSActive->iPdpType = RPacketContext::EPdpTypeIPv4;
       
  1366 	setConfigGPRSActive->iPdpCompression = 0;
       
  1367 	setConfigGPRSActive->iPdpAddress.Copy(KPdpAddGPRSActive);
       
  1368 
       
  1369 	TMockLtsyData5<TInfoName, RPacketContext::TGSNAddress, RPacketContext::TProtocolAddress, TUint, RPacketContext::TMiscProtocolBuffer>
       
  1370 					expLtsyProfileChangedInd(contextId, setConfigGPRSActive->iAccessPointName,
       
  1371 					setConfigGPRSActive->iPdpAddress, setConfigGPRSActive->iPdpCompression, pcoBuffer);
       
  1372 	data.Close();
       
  1373 	expLtsyProfileChangedInd.SerialiseL(data);
       
  1374 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyPdpContextConfigChangedIndId, KErrNone, data);
       
  1375 	
       
  1376 	// Activate first primary context
       
  1377 	TRequestStatus activateStatus;
       
  1378 	packetContext.Activate(activateStatus);
       
  1379 	User::WaitForRequest(activateStatus);
       
  1380 	ASSERT_EQUALS(KErrNone, activateStatus.Int());
       
  1381 	ASSERT_EQUALS(RPacketContext::EStatusActivating, contextStatus);
       
  1382 	
       
  1383 	packetContext.NotifyStatusChange(contextActivatingRequestStatus, contextStatus);
       
  1384 		
       
  1385 	User::WaitForRequest(contextActivatingRequestStatus);
       
  1386 	ASSERT_EQUALS(KErrNone, contextConfigStatus.Int());
       
  1387 	ASSERT_EQUALS(RPacketContext::EStatusActive, contextStatus);
       
  1388 
       
  1389 	AssertMockLtsyStatusL();
       
  1390 	
       
  1391 	//
       
  1392 
       
  1393 	// open the second primary context
       
  1394 	RPacketContext secondPacketContext;
       
  1395 
       
  1396 	TInfoName secondContextId;
       
  1397 	err = secondPacketContext.OpenNewContext(packetService, secondContextId);
       
  1398 	CleanupClosePushL(secondPacketContext);
       
  1399 	ASSERT_EQUALS(KErrNone, err);
       
  1400 	
       
  1401 	TInfoName emptyContextId;
       
  1402 	emptyContextId.Copy(KDefaultContextName);
       
  1403 	
       
  1404 
       
  1405 	DriverInitialiseContextL(secondContextId, emptyContextId);
       
  1406 	
       
  1407 	RPacketContext::TDataChannelV2 secondDataChannel;
       
  1408 	RPacketContext::TDataChannelV2Pckg secondDataChannelPk(secondDataChannel);
       
  1409 	TRequestStatus secondInitialiseContextStatus;
       
  1410 
       
  1411 	// Initialize the second primary context
       
  1412 	secondPacketContext.InitialiseContext(secondInitialiseContextStatus, secondDataChannelPk);
       
  1413 	User::WaitForRequest(secondInitialiseContextStatus);
       
  1414 	
       
  1415 	ASSERT_EQUALS(KErrNone, secondInitialiseContextStatus.Int());
       
  1416 	ASSERT_TRUE(dataChannel.iPort == KFirstAllocatedContextName); 	
       
  1417 	ASSERT_TRUE(secondDataChannel.iChannelId == KSecondaryContextChannelId); // Now deprecated
       
  1418 	
       
  1419 	AssertMockLtsyStatusL();
       
  1420 	
       
  1421 	TRequestStatus secondcontextConfigStatus;
       
  1422 	secondPacketContext.NotifyConfigChanged(secondcontextConfigStatus, pckgConfigGPRSNotifyConfigChanged);
       
  1423 	
       
  1424 	TRequestStatus secondcontextActivatingRequestStatus;
       
  1425 	RPacketContext::TContextStatus secondcontextStatus;
       
  1426 	secondPacketContext.NotifyStatusChange(secondcontextActivatingRequestStatus, secondcontextStatus);
       
  1427 
       
  1428 	TMockLtsyData1<TInfoName> secondexpectedActivateContextNameData(secondContextId);
       
  1429 	data.Close();
       
  1430 	secondexpectedActivateContextNameData.SerialiseL(data);
       
  1431 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesActivatePdpContext::KLtsyDispatchPacketServicesActivatePdpContextApiId, data, KErrNone);
       
  1432 				
       
  1433 	TMockLtsyData3<TInfoName, RPacketContext::TGSNAddress, RPacketContext::TProtocolType>
       
  1434 	secondcompletedActivateContextNameData(secondContextId, setConfigGPRS->iAccessPointName, setConfigGPRS->iPdpType);
       
  1435 	data.Close();
       
  1436 	secondcompletedActivateContextNameData.SerialiseL(data);
       
  1437 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesActivatePdpContext::KLtsyDispatchPacketServicesActivatePdpContextApiId, KErrNone, data);
       
  1438 
       
  1439 	// Prepare context configuration for GPRS
       
  1440 	RPacketContext::TContextConfigGPRS* secondSetConfigGPRSActive = new (ELeave) RPacketContext::TContextConfigGPRS();
       
  1441 	CleanupStack::PushL(secondSetConfigGPRSActive);
       
  1442 	secondSetConfigGPRSActive->iAccessPointName.Copy(KPointNameGPRS);
       
  1443 	secondSetConfigGPRSActive->iPdpType = RPacketContext::EPdpTypeIPv4;
       
  1444 	secondSetConfigGPRSActive->iPdpCompression = 0;
       
  1445 	secondSetConfigGPRSActive->iPdpAddress.Copy(KPdpAddGPRSActive);
       
  1446 
       
  1447 	TMockLtsyData5<TInfoName, RPacketContext::TGSNAddress, RPacketContext::TProtocolAddress, TUint, RPacketContext::TMiscProtocolBuffer>
       
  1448 					secondexpLtsyProfileChangedInd(secondContextId, secondSetConfigGPRSActive->iAccessPointName,
       
  1449 					secondSetConfigGPRSActive->iPdpAddress, secondSetConfigGPRSActive->iPdpCompression, pcoBuffer);
       
  1450 	data.Close();
       
  1451 	secondexpLtsyProfileChangedInd.SerialiseL(data);
       
  1452 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyPdpContextConfigChangedIndId, KErrNone, data);
       
  1453 
       
  1454 	// Activate second primary context
       
  1455 	TRequestStatus secondactivateStatus;
       
  1456 	secondPacketContext.Activate(secondactivateStatus);
       
  1457 	User::WaitForRequest(secondactivateStatus);
       
  1458 	ASSERT_EQUALS(KErrNone, secondactivateStatus.Int());
       
  1459 	ASSERT_EQUALS(RPacketContext::EStatusActivating, secondcontextStatus);
       
  1460 	
       
  1461 	secondPacketContext.NotifyStatusChange(secondcontextActivatingRequestStatus, secondcontextStatus);
       
  1462 		
       
  1463 	User::WaitForRequest(secondcontextActivatingRequestStatus);
       
  1464 	ASSERT_EQUALS(KErrNone, secondcontextConfigStatus.Int());
       
  1465 	ASSERT_EQUALS(RPacketContext::EStatusActive, secondcontextStatus);
       
  1466 
       
  1467 	DriverDeleteContextL(contextId);
       
  1468 	DriverDeleteContextL(secondContextId);
       
  1469 	
       
  1470 	packetQoS.Close();
       
  1471 	packetContext.Close();
       
  1472 	packetService.Close();
       
  1473 	secondPacketContext.Close();
       
  1474 	
       
  1475 	// Let the mock-LTSY finish up before asserting.
       
  1476 	User::After(1000000);
       
  1477 	
       
  1478 	AssertMockLtsyStatusL();
       
  1479 	CleanupStack::PopAndDestroy(11, this); // secondSetConfigGPRSActive, secondPacketContext, data, packetQoS, packetService, packetContext, this
       
  1480 	}
       
  1481 
       
  1482 /**
       
  1483 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UC0006
       
  1484 @SYMComponent telephony_ctsy
       
  1485 @SYMTestCaseDesc Test support in CTSY for activation of a primary and secondary contexts. 
       
  1486 @SYMTestPriority High
       
  1487 @SYMTestActions Invokes RPacketContext::OpenNewContext(), RPacketContext::InitialiseContext(), RPacketContext::SetDefaultContextParams(), RPacketContext::OpenNewSecondaryContext(), RPacketContext::AddPacketFilter() for R97
       
  1488 @SYMTestExpectedResults Pass
       
  1489 @SYMTestType UT
       
  1490  */
       
  1491 void CCTsyPacketServicesFU::TestUseCase0006L()
       
  1492 	{
       
  1493 	OpenEtelServerL(EUseExtendedError);
       
  1494 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1495 	OpenPhoneL();
       
  1496 		
       
  1497 	RPacketService packetService;
       
  1498 	RPacketContext packetContext;
       
  1499 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  1500 	
       
  1501 	// Open the primary context
       
  1502 	TInfoName contextId;
       
  1503 	TInt err = packetContext.OpenNewContext(packetService, contextId);
       
  1504 	CleanupClosePushL(packetContext);
       
  1505 	ASSERT_EQUALS(KErrNone, err);
       
  1506 	
       
  1507 	TName qosName;
       
  1508 	RPacketQoS packetQoS;
       
  1509 	packetQoS.OpenNewQoS(packetContext, qosName);
       
  1510 	CleanupClosePushL(packetQoS);
       
  1511 
       
  1512 	AssertMockLtsyStatusL();
       
  1513 	
       
  1514 	// Prepare context configuration for GPRS
       
  1515 	RPacketContext::TContextConfigGPRS* setConfigGPRS = new (ELeave) RPacketContext::TContextConfigGPRS();
       
  1516 	CleanupStack::PushL(setConfigGPRS);
       
  1517 	setConfigGPRS->iAccessPointName.Copy(KPointNameGPRS);
       
  1518 	setConfigGPRS->iPdpType = RPacketContext::EPdpTypeIPv4;
       
  1519 	setConfigGPRS->iPdpAddress.Copy(KPdpAddGPRS);
       
  1520 	setConfigGPRS->iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns);
       
  1521 	setConfigGPRS->iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns);
       
  1522 	setConfigGPRS->iProtocolConfigOption.iAuthInfo.iProtocol = RPacketContext::EProtocolCHAP;
       
  1523 	setConfigGPRS->iProtocolConfigOption.iAuthInfo.iUsername.Copy(KUsername);
       
  1524 	setConfigGPRS->iProtocolConfigOption.iAuthInfo.iPassword.Copy(KPassword);
       
  1525 	setConfigGPRS->iProtocolConfigOption.iId = KRequestID;
       
  1526 	setConfigGPRS->iProtocolConfigOption.iMiscBuffer.Copy(KDummyMiscBuffer);
       
  1527 	TPckg<RPacketContext::TContextConfigGPRS> pckgConfigGPRS(*setConfigGPRS);
       
  1528 
       
  1529 	// Create the PCO buffer
       
  1530 	RPacketContext::TMiscProtocolBuffer pcoBuffer;
       
  1531 	pcoBuffer.Zero();
       
  1532 
       
  1533 	// Generate a PCO buffer
       
  1534 	PCOGeneratorL(setConfigGPRS->iProtocolConfigOption, pcoBuffer);
       
  1535 	setConfigGPRS->iProtocolConfigOption.iId = KRequestID;
       
  1536 
       
  1537 	DriverInitialiseContextL();
       
  1538 	
       
  1539 	RPacketContext::TDataChannelV2 dataChannel;
       
  1540 	RPacketContext::TDataChannelV2Pckg dataChannelPk(dataChannel);
       
  1541 	TRequestStatus initialiseContextStatus;
       
  1542 
       
  1543 	// Initialise primary context
       
  1544 	packetContext.InitialiseContext(initialiseContextStatus,dataChannelPk);
       
  1545 	User::WaitForRequest(initialiseContextStatus);
       
  1546 	
       
  1547 	ASSERT_EQUALS(KErrNone, initialiseContextStatus.Int());
       
  1548 	ASSERT_TRUE(dataChannel.iPort == KFirstAllocatedContextName);	
       
  1549 	ASSERT_TRUE(dataChannel.iChannelId == KDefaultChannelId); // Now deprecated
       
  1550 	
       
  1551 	AssertMockLtsyStatusL();
       
  1552 		
       
  1553 	// Setting default GPRS context parameters. 
       
  1554 	RPacketContext::TContextConfigGPRS expContextConfigGprs;
       
  1555 	expContextConfigGprs.iAccessPointName = KDefaultAccessPoint;
       
  1556 	expContextConfigGprs.iPdpType = KDefaultPdpType;
       
  1557 
       
  1558 	TMockLtsyData1<RPacketContext::TContextConfigGPRS> expLtsyGprsData(expContextConfigGprs);
       
  1559 	RBuf8 data;
       
  1560 	CleanupClosePushL(data);
       
  1561 	
       
  1562 	expLtsyGprsData.SerialiseL(data);
       
  1563 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetDefaultPdpContextGprsParams::KLtsyDispatchPacketServicesSetDefaultPdpContextGprsParamsApiId, data);
       
  1564 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetDefaultPdpContextGprsParams::KLtsyDispatchPacketServicesSetDefaultPdpContextGprsParamsApiId, KErrNone);
       
  1565 	
       
  1566 	RPacketContext::TContextConfigGPRS defaultGprsContextConfig;
       
  1567 	defaultGprsContextConfig.iAccessPointName = KDefaultAccessPoint;
       
  1568 	defaultGprsContextConfig.iPdpType = KDefaultPdpType;
       
  1569 	TPckg<RPacketContext::TContextConfigGPRS> defaultContextGprsConfigPckg(defaultGprsContextConfig);
       
  1570 	TRequestStatus setDefaultContextParamsStatus;
       
  1571 	packetService.SetDefaultContextParams(setDefaultContextParamsStatus, defaultContextGprsConfigPckg);
       
  1572 	User::WaitForRequest(setDefaultContextParamsStatus);
       
  1573 
       
  1574     ASSERT_EQUALS(KErrNone, setDefaultContextParamsStatus.Int());
       
  1575     
       
  1576 	AssertMockLtsyStatusL();
       
  1577 	
       
  1578 	DriverSetConfigContextL(contextId, setConfigGPRS->iAccessPointName, setConfigGPRS->iPdpType, setConfigGPRS->iPdpAddress, pcoBuffer);
       
  1579 	
       
  1580 	TRequestStatus setConfigStatus;
       
  1581 	packetContext.SetConfig(setConfigStatus, pckgConfigGPRS);
       
  1582 	User::WaitForRequest(setConfigStatus);
       
  1583 	ASSERT_EQUALS(KErrNone, setConfigStatus.Int());
       
  1584 		
       
  1585 	
       
  1586 	//
       
  1587 	// SetProfileParameters for GPRS Configurations
       
  1588 	//
       
  1589 	
       
  1590 	RPacketQoS::TQoSGPRSRequested* qosExpectedRequestedGPRSProfile = new (ELeave) RPacketQoS::TQoSGPRSRequested();
       
  1591     qosExpectedRequestedGPRSProfile->iReqPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  1592 	qosExpectedRequestedGPRSProfile->iMinPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  1593 	qosExpectedRequestedGPRSProfile->iReqDelay = RPacketQoS::EDelayClass1;
       
  1594 	qosExpectedRequestedGPRSProfile->iMinDelay = RPacketQoS::EUnspecifiedDelayClass;
       
  1595 	qosExpectedRequestedGPRSProfile->iReqReliability = RPacketQoS::EUnspecifiedReliabilityClass;
       
  1596 	qosExpectedRequestedGPRSProfile->iMinReliability = RPacketQoS::EReliabilityClass1;
       
  1597 	qosExpectedRequestedGPRSProfile->iReqPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  1598 	qosExpectedRequestedGPRSProfile->iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  1599 	qosExpectedRequestedGPRSProfile->iReqMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
       
  1600 	qosExpectedRequestedGPRSProfile->iMinMeanThroughput = RPacketQoS::EMeanThroughput500;
       
  1601 
       
  1602 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSGPRSRequested> packetSetConfigGPRSData(contextId, *qosExpectedRequestedGPRSProfile);
       
  1603 	data.Close();
       
  1604 	packetSetConfigGPRSData.SerialiseL(data);
       
  1605 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  1606 
       
  1607 	TMockLtsyData1<TInfoName> callbackSetPdpGPRSContextNameData(contextId);
       
  1608 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  1609 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  1610 
       
  1611 	RPacketQoS::TQoSGPRSRequested*  qosGPRSRequestedProfile = new (ELeave) RPacketQoS::TQoSGPRSRequested();
       
  1612 	qosGPRSRequestedProfile->iReqPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  1613 	qosGPRSRequestedProfile->iMinPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  1614 	qosGPRSRequestedProfile->iReqDelay = RPacketQoS::EDelayClass1;
       
  1615 	qosGPRSRequestedProfile->iMinDelay = RPacketQoS::EUnspecifiedDelayClass;
       
  1616 	qosGPRSRequestedProfile->iReqReliability =  RPacketQoS::EUnspecifiedReliabilityClass;
       
  1617 	qosGPRSRequestedProfile->iMinReliability = RPacketQoS::EReliabilityClass1;
       
  1618 	qosGPRSRequestedProfile->iReqPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  1619 	qosGPRSRequestedProfile->iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput; 
       
  1620 	qosGPRSRequestedProfile->iReqMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
       
  1621 	qosGPRSRequestedProfile->iMinMeanThroughput = RPacketQoS::EMeanThroughput500;
       
  1622 	TPckg< RPacketQoS::TQoSGPRSRequested > profilePckgGPRS(*qosGPRSRequestedProfile);
       
  1623 	
       
  1624 	TRequestStatus notifyProfileChangeStatus;
       
  1625 	RPacketQoS::TQoSGPRSNegotiated profile;
       
  1626 	TPckg<RPacketQoS::TQoSGPRSNegotiated> qosGPRSNegotiatedProfilePk(profile);
       
  1627 	packetQoS.NotifyProfileChanged(notifyProfileChangeStatus, qosGPRSNegotiatedProfilePk);
       
  1628 
       
  1629 	TRequestStatus requestStatusGPRS;
       
  1630 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  1631 	User::WaitForRequest(requestStatusGPRS);
       
  1632 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  1633 		
       
  1634 	AssertMockLtsyStatusL();
       
  1635 	
       
  1636 	TRequestStatus contextConfigStatus;
       
  1637 	RPacketContext::TContextConfigGPRS* setConfigGPRSActiveNotifyConfigChanged = new (ELeave) RPacketContext::TContextConfigGPRS();
       
  1638 	CleanupStack::PushL(setConfigGPRSActiveNotifyConfigChanged);
       
  1639 	TPckg<RPacketContext::TContextConfigGPRS> pckgConfigGPRSNotifyConfigChanged(*setConfigGPRSActiveNotifyConfigChanged);
       
  1640 	packetContext.NotifyConfigChanged(contextConfigStatus, pckgConfigGPRSNotifyConfigChanged);
       
  1641 	
       
  1642 	TRequestStatus contextActivatingRequestStatus;
       
  1643 	RPacketContext::TContextStatus contextStatus;
       
  1644 	packetContext.NotifyStatusChange(contextActivatingRequestStatus, contextStatus);
       
  1645 			
       
  1646 	TMockLtsyData1<TInfoName> expectedActivateContextNameData(contextId);
       
  1647 	data.Close();
       
  1648 	expectedActivateContextNameData.SerialiseL(data);
       
  1649 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesActivatePdpContext::KLtsyDispatchPacketServicesActivatePdpContextApiId, data, KErrNone);
       
  1650 				
       
  1651 	TMockLtsyData3<TInfoName, RPacketContext::TGSNAddress, RPacketContext::TProtocolType>
       
  1652 		completedActivateContextNameData(contextId, setConfigGPRS->iAccessPointName, setConfigGPRS->iPdpType);
       
  1653 	data.Close();
       
  1654 	completedActivateContextNameData.SerialiseL(data);
       
  1655 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesActivatePdpContext::KLtsyDispatchPacketServicesActivatePdpContextApiId, KErrNone, data);
       
  1656 	
       
  1657 	RPacketQoS::TQoSGPRSNegotiated completedProfile;
       
  1658 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSGPRSNegotiated>
       
  1659 					expLtsyQosProfileChangedInd(contextId, completedProfile);
       
  1660 	data.Close();
       
  1661 	expLtsyQosProfileChangedInd.SerialiseL(data);
       
  1662 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);
       
  1663 	
       
  1664 	// Prepare context configuration for GPRS
       
  1665 	RPacketContext::TContextConfigGPRS* setConfigGPRSActive  = new (ELeave) RPacketContext::TContextConfigGPRS();
       
  1666 	setConfigGPRSActive->iAccessPointName.Copy(KPointNameGPRS);
       
  1667 	setConfigGPRSActive->iPdpType = RPacketContext::EPdpTypeIPv4;
       
  1668 	setConfigGPRSActive->iPdpCompression = 0;
       
  1669 	setConfigGPRSActive->iPdpAddress.Copy(KPdpAddGPRSActive);	
       
  1670 	setConfigGPRSActive->iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns);
       
  1671 	setConfigGPRSActive->iProtocolConfigOption.iAuthInfo.iProtocol = RPacketContext::EProtocolCHAP;
       
  1672 	setConfigGPRSActive->iProtocolConfigOption.iAuthInfo.iUsername.Copy(KUsername);
       
  1673 	setConfigGPRSActive->iProtocolConfigOption.iAuthInfo.iPassword.Copy(KPassword);
       
  1674 	setConfigGPRSActive->iProtocolConfigOption.iId = KRequestID;
       
  1675 
       
  1676 	TMockLtsyData5<TInfoName, RPacketContext::TGSNAddress, RPacketContext::TProtocolAddress, TUint, RPacketContext::TMiscProtocolBuffer>
       
  1677 					expLtsyProfileChangedInd(contextId, setConfigGPRSActive->iAccessPointName,
       
  1678 					setConfigGPRSActive->iPdpAddress, setConfigGPRSActive->iPdpCompression, pcoBuffer);
       
  1679 	data.Close();
       
  1680 	expLtsyProfileChangedInd.SerialiseL(data);
       
  1681 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyPdpContextConfigChangedIndId, KErrNone, data);
       
  1682 	
       
  1683 	// Activate primary context
       
  1684 	TRequestStatus activateStatus;
       
  1685 	packetContext.Activate(activateStatus);
       
  1686 	User::WaitForRequest(activateStatus);
       
  1687 	
       
  1688 	// Complete NotifyProfileChanged
       
  1689 	User::WaitForRequest(notifyProfileChangeStatus);
       
  1690 	ASSERT_EQUALS(KErrNone, notifyProfileChangeStatus.Int());
       
  1691 	
       
  1692 	User::WaitForRequest(contextActivatingRequestStatus);
       
  1693 	ASSERT_EQUALS(KErrNone, activateStatus.Int());
       
  1694 	ASSERT_EQUALS(RPacketContext::EStatusActivating, contextStatus);
       
  1695 	
       
  1696 	packetContext.NotifyStatusChange(contextActivatingRequestStatus, contextStatus);
       
  1697 	
       
  1698 	User::WaitForRequest(contextActivatingRequestStatus);
       
  1699 	ASSERT_EQUALS(RPacketContext::EStatusActive, contextStatus);
       
  1700 
       
  1701 	AssertMockLtsyStatusL();
       
  1702 	
       
  1703 	//Open Secondary Packet Context
       
  1704 	TInfoName secondaryContextId;
       
  1705 	RPacketContext secondaryContext;	
       
  1706 	err = secondaryContext.OpenNewSecondaryContext(packetService, contextId, secondaryContextId);
       
  1707 	CleanupClosePushL(secondaryContext);
       
  1708 	ASSERT_EQUALS(KErrNone, err);
       
  1709 	
       
  1710 	AssertMockLtsyStatusL();
       
  1711 				
       
  1712 	DriverInitialiseContextL(contextId, secondaryContextId);
       
  1713 
       
  1714 	RPacketContext::TDataChannelV2* secondDataChannel = new (ELeave) RPacketContext::TDataChannelV2();
       
  1715 	RPacketContext::TDataChannelV2Pckg secondDataChannelPk(*secondDataChannel);
       
  1716 	TRequestStatus secondInitialiseContextStatus;
       
  1717 	
       
  1718 	// Initialise secondary context
       
  1719 	secondaryContext.InitialiseContext(secondInitialiseContextStatus, secondDataChannelPk);
       
  1720 	User::WaitForRequest(secondInitialiseContextStatus);	
       
  1721 	ASSERT_EQUALS(KErrNone, secondInitialiseContextStatus.Int());
       
  1722 	ASSERT_TRUE(dataChannel.iPort == KFirstAllocatedContextName); 	
       
  1723 	ASSERT_TRUE(secondDataChannel->iChannelId == KSecondaryContextChannelId); // Now deprecated
       
  1724 				
       
  1725 	AssertMockLtsyStatusL();
       
  1726 	
       
  1727 	// Open QoS for secondaty context
       
  1728 	RPacketQoS secondaryPacketQoS;
       
  1729 	secondaryPacketQoS.OpenNewQoS(secondaryContext, secondaryContextId);
       
  1730 	CleanupClosePushL(secondaryPacketQoS);
       
  1731 	
       
  1732 	RPacketQoS::TQoSGPRSRequested* qosExpectedRequestedGPRSProfileSecondaryContext = new (ELeave) RPacketQoS::TQoSGPRSRequested();	
       
  1733 	qosExpectedRequestedGPRSProfileSecondaryContext->iMinMeanThroughput = RPacketQoS::EMeanThroughput500;
       
  1734 	
       
  1735 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSGPRSRequested> packetSetConfigGPRSDataSecondaryContext(secondaryContextId, *qosExpectedRequestedGPRSProfileSecondaryContext);
       
  1736 	data.Close();
       
  1737 	packetSetConfigGPRSDataSecondaryContext.SerialiseL(data);
       
  1738 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  1739 
       
  1740 	TMockLtsyData1<TInfoName> callbackSetPdpGPRSContextNameDataSecondaryContext(secondaryContextId);
       
  1741 	callbackSetPdpGPRSContextNameDataSecondaryContext.SerialiseL(data);
       
  1742 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  1743 	
       
  1744 	//Define qos params for secondaty context   
       
  1745 	RPacketQoS::TQoSGPRSRequested* qosGPRSRequestedProfilesecondaryPacket = new (ELeave) RPacketQoS::TQoSGPRSRequested();
       
  1746 	qosGPRSRequestedProfilesecondaryPacket->iMinMeanThroughput = RPacketQoS::EMeanThroughput500;
       
  1747 	TPckg<RPacketQoS::TQoSGPRSRequested> qosGPRSRequestedProfilePk(*qosGPRSRequestedProfilesecondaryPacket);    
       
  1748 	
       
  1749 	//Set QoS Params GPRS for secondaty context
       
  1750 	TRequestStatus setProfileParametersSt;
       
  1751 	secondaryPacketQoS.SetProfileParameters(setProfileParametersSt, qosGPRSRequestedProfilePk);
       
  1752 	User::WaitForRequest(setProfileParametersSt);
       
  1753 	ASSERT_EQUALS(KErrNone, setProfileParametersSt.Int());
       
  1754 	
       
  1755 	AssertMockLtsyStatusL();
       
  1756 		
       
  1757 	// Configure packet filter  secondary context	    	    
       
  1758     RPacketContext::TPacketFilterV2* packetFilterV2 = new (ELeave) RPacketContext::TPacketFilterV2();
       
  1759     packetFilterV2->iId = 1;
       
  1760     packetFilterV2->iEvaluationPrecedenceIndex = 100;
       
  1761     packetFilterV2->iDestPortMax = 4001;
       
  1762     packetFilterV2->iDestPortMin = 4000;        
       
  1763     packetFilterV2->iIPSecSPI = 1;    
       
  1764     packetFilterV2->iProtocolNumberOrNextHeader = 0;
       
  1765     packetFilterV2->iSrcAddr[12] = 0;
       
  1766     memcpy(&(packetFilterV2->iSrcAddr[0]), "200.12.13.19", 12);
       
  1767     packetFilterV2->iSrcAddrSubnetMask[13] = 0;
       
  1768     memcpy(&(packetFilterV2->iSrcAddrSubnetMask[0]), "255.255.255.0", 13);    
       
  1769     packetFilterV2->iSrcPortMin = 5000;
       
  1770     packetFilterV2->iSrcPortMax = 5001;
       
  1771     packetFilterV2->iTOSorTrafficClass = 0;    
       
  1772     RPacketContext::TPacketFilterV2Pckg packetFilterV2Pckg(*packetFilterV2);
       
  1773     CArrayFixFlat<RPacketContext::TPacketFilterV2>* filterTemporaryArray = new ( ELeave ) CArrayFixFlat<RPacketContext::TPacketFilterV2>( 1 );
       
  1774     CleanupStack::PushL(filterTemporaryArray);
       
  1775     filterTemporaryArray->AppendL( *packetFilterV2 );
       
  1776 
       
  1777 	TMockLtsyData2<TInfoName, CArrayFixFlat<RPacketContext::TPacketFilterV2>*> expectedAddFilterContextNameData(secondaryContextId, filterTemporaryArray);
       
  1778 	data.Close();
       
  1779 	expectedAddFilterContextNameData.SerialiseL(data);
       
  1780 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesAddPacketFilter::KLtsyDispatchPacketServicesAddPacketFilterApiId, data, KErrNone);
       
  1781 	
       
  1782 	TMockLtsyData1<TInfoName> callbackContextIdData(secondaryContextId);
       
  1783 	data.Close();
       
  1784 	callbackContextIdData.SerialiseL(data);
       
  1785 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextConfig::KLtsyDispatchPacketServicesSetPdpContextConfigApiId, KErrNone, data);
       
  1786 	
       
  1787 	TRequestStatus addPacketFilterStatus;
       
  1788 	
       
  1789 	// Add filter to secondary context
       
  1790     secondaryContext.AddPacketFilter(addPacketFilterStatus, packetFilterV2Pckg);	    	    
       
  1791 	User::WaitForRequest(addPacketFilterStatus);
       
  1792 	ASSERT_EQUALS(KErrNone, addPacketFilterStatus.Int());
       
  1793 	
       
  1794 	AssertMockLtsyStatusL();
       
  1795 						
       
  1796 	TMockLtsyData1<TInfoName> secondaryExpectedActivateContextNameData(secondaryContextId);
       
  1797 	data.Close();
       
  1798 	secondaryExpectedActivateContextNameData.SerialiseL(data);
       
  1799 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesActivatePdpContext::KLtsyDispatchPacketServicesActivatePdpContextApiId, data, KErrNone);
       
  1800 				
       
  1801 	TMockLtsyData3<TInfoName, RPacketContext::TGSNAddress, RPacketContext::TProtocolType>
       
  1802 	secondaryCompletedActivateContextNameData(secondaryContextId, setConfigGPRS->iAccessPointName, setConfigGPRS->iPdpType);
       
  1803 	data.Close();
       
  1804 	secondaryCompletedActivateContextNameData.SerialiseL(data);
       
  1805 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesActivatePdpContext::KLtsyDispatchPacketServicesActivatePdpContextApiId, KErrNone, data);
       
  1806 		
       
  1807 	RPacketContext::TContextConfigGPRS* setSecondaryConfigGPRSActiveNotifyConfigChanged  = new (ELeave)RPacketContext::TContextConfigGPRS();
       
  1808 	CleanupStack::PushL(setSecondaryConfigGPRSActiveNotifyConfigChanged);
       
  1809 	TPckg<RPacketContext::TContextConfigGPRS> pckgConfigGPRSNotifySecondaryConfigChanged(*setSecondaryConfigGPRSActiveNotifyConfigChanged);
       
  1810 	
       
  1811 	TRequestStatus secondaryContextConfigStatus;
       
  1812 	secondaryContext.NotifyConfigChanged(secondaryContextConfigStatus, pckgConfigGPRSNotifySecondaryConfigChanged);	
       
  1813 	secondaryContext.NotifyStatusChange(contextActivatingRequestStatus, contextStatus);
       
  1814 
       
  1815 	// Prepare context configuration for GPRS
       
  1816 	RPacketContext::TContextConfigGPRS* secondarySetConfigGPRSActive = new (ELeave)RPacketContext::TContextConfigGPRS();
       
  1817 	CleanupStack::PushL(secondarySetConfigGPRSActive);
       
  1818 
       
  1819 	secondarySetConfigGPRSActive->iAccessPointName.Copy(KPointNameGPRS);
       
  1820 	secondarySetConfigGPRSActive->iPdpType = RPacketContext::EPdpTypeIPv4;
       
  1821 	secondarySetConfigGPRSActive->iPdpCompression = 1;
       
  1822 	secondarySetConfigGPRSActive->iPdpAddress.Copy(KPdpAddGPRSActive);
       
  1823 
       
  1824 	TMockLtsyData5<TInfoName, RPacketContext::TGSNAddress, RPacketContext::TProtocolAddress, TUint, RPacketContext::TMiscProtocolBuffer>
       
  1825 					secondaryexpLtsyProfileChangedInd(secondaryContextId, secondarySetConfigGPRSActive->iAccessPointName,
       
  1826 					secondarySetConfigGPRSActive->iPdpAddress, secondarySetConfigGPRSActive->iPdpCompression, pcoBuffer);
       
  1827 	data.Close();
       
  1828 	secondaryexpLtsyProfileChangedInd.SerialiseL(data);
       
  1829 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyPdpContextConfigChangedIndId, KErrNone, data);
       
  1830 
       
  1831 	TRequestStatus secondaryActivateStatus;
       
  1832 	
       
  1833 	// Activate secondary context.	
       
  1834 	secondaryContext.Activate(secondaryActivateStatus);
       
  1835 	User::WaitForRequest(secondaryActivateStatus);
       
  1836 	ASSERT_EQUALS(KErrNone, secondaryActivateStatus.Int());
       
  1837 	ASSERT_EQUALS(RPacketContext::EStatusActivating, contextStatus);
       
  1838 	
       
  1839 	AssertMockLtsyStatusL();
       
  1840 
       
  1841 	RPacketContext::TContextConfigGPRS* secondarysetConfigGPRSActiveNotifyConfigChanged = new (ELeave)RPacketContext::TContextConfigGPRS();
       
  1842 	CleanupStack::PushL(secondarysetConfigGPRSActiveNotifyConfigChanged);
       
  1843 	TPckg<RPacketContext::TContextConfigGPRS> secondarypckgConfigGPRSNotifyConfigChanged(*secondarysetConfigGPRSActiveNotifyConfigChanged);
       
  1844 	
       
  1845 	secondaryContext.NotifyStatusChange(secondaryActivateStatus, contextStatus);
       
  1846 	
       
  1847 	User::WaitForRequest(secondaryActivateStatus);
       
  1848 	ASSERT_EQUALS(KErrNone, secondaryContextConfigStatus.Int());
       
  1849 	ASSERT_EQUALS(RPacketContext::EStatusActive, contextStatus);
       
  1850 
       
  1851 	AssertMockLtsyStatusL();
       
  1852 		
       
  1853 	TMockLtsyData1<TInfoName> deactivateSecondaryContextNameData(secondaryContextId);
       
  1854 	
       
  1855 	data.Close();
       
  1856 	deactivateSecondaryContextNameData.SerialiseL(data);
       
  1857 	
       
  1858 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesDeactivatePdpContext::KLtsyDispatchPacketServicesDeactivatePdpContextApiId, data, KErrNone);
       
  1859 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesDeactivatePdpContext::KLtsyDispatchPacketServicesDeactivatePdpContextApiId, KErrNone, data);
       
  1860 
       
  1861 	// Deactivate secondary context
       
  1862 	TRequestStatus deactivateContextStatus;
       
  1863 	secondaryContext.Deactivate(deactivateContextStatus);
       
  1864 	User::WaitForRequest(deactivateContextStatus);
       
  1865 	ASSERT_EQUALS(KErrNone, deactivateContextStatus.Int())
       
  1866 	
       
  1867 	AssertMockLtsyStatusL();
       
  1868 
       
  1869 	TMockLtsyData1<TInfoName> deactivateContextNameData(contextId);
       
  1870 	data.Close();
       
  1871 	deactivateContextNameData.SerialiseL(data);
       
  1872 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesDeactivatePdpContext::KLtsyDispatchPacketServicesDeactivatePdpContextApiId, data, KErrNone);
       
  1873 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesDeactivatePdpContext::KLtsyDispatchPacketServicesDeactivatePdpContextApiId, KErrNone, data);
       
  1874 					
       
  1875 	// Deactivate primary context
       
  1876 	packetContext.Deactivate(deactivateContextStatus);
       
  1877 	User::WaitForRequest(deactivateContextStatus);
       
  1878 	ASSERT_EQUALS(KErrNone, deactivateContextStatus.Int());
       
  1879 	
       
  1880 	AssertMockLtsyStatusL();
       
  1881 		
       
  1882 	DriverDeleteContextL(secondaryContextId);
       
  1883 	DriverDeleteContextL(contextId);
       
  1884 
       
  1885 	secondaryPacketQoS.Close();
       
  1886 	packetQoS.Close();
       
  1887 				
       
  1888 	secondaryContext.Close();
       
  1889 	packetContext.Close();
       
  1890 	packetService.Close();
       
  1891 
       
  1892 	// Let the mock-LTSY finish up before asserting.
       
  1893 	User::After(1000000);
       
  1894 	
       
  1895 	AssertMockLtsyStatusL();
       
  1896 
       
  1897 	CleanupStack::PopAndDestroy(13, this);
       
  1898 	}
       
  1899 
       
  1900 /**
       
  1901 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UC0007
       
  1902 @SYMComponent telephony_ctsy
       
  1903 @SYMTestCaseDesc Test support in CTSY for activation and modification of a secondary context with two filters and removal of the first filter. 
       
  1904 @SYMTestPriority High
       
  1905 @SYMTestActions Invokes RPacketContext::OpenNewContext(), RPacketContext::InitialiseContext(), RPacketContext::SetDefaultContextParams(), RPacketContext::OpenNewSecondaryContext(), RPacketContext::AddPacketFilter(), RPacketContext::ModifyActiveContext() for R97
       
  1906 @SYMTestExpectedResults Pass
       
  1907 @SYMTestType UT
       
  1908  */
       
  1909 void CCTsyPacketServicesFU::TestUseCase0007L()
       
  1910 	{	
       
  1911 	OpenEtelServerL(EUseExtendedError);
       
  1912 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1913 	OpenPhoneL();
       
  1914 		
       
  1915 	RPacketService packetService;
       
  1916 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  1917 	RPacketContext packetContext;
       
  1918 
       
  1919 	// Open the primary context
       
  1920 	TInfoName contextId;
       
  1921 	TInt err = packetContext.OpenNewContext(packetService, contextId);
       
  1922 	CleanupClosePushL(packetContext);
       
  1923 	ASSERT_EQUALS(KErrNone, err);
       
  1924 	
       
  1925 	TName qosName;
       
  1926 	RPacketQoS packetQoS;
       
  1927 	packetQoS.OpenNewQoS(packetContext, qosName);
       
  1928 	CleanupClosePushL(packetQoS);
       
  1929 
       
  1930 	AssertMockLtsyStatusL();
       
  1931 	
       
  1932 	// Prepare context configuration for GPRS
       
  1933 	RPacketContext::TContextConfigGPRS* setConfigGPRS = new (ELeave) RPacketContext::TContextConfigGPRS();
       
  1934 	CleanupStack::PushL(setConfigGPRS);
       
  1935 	setConfigGPRS->iAccessPointName.Copy(KPointNameGPRS);
       
  1936 	setConfigGPRS->iPdpType = RPacketContext::EPdpTypeIPv4;
       
  1937 	setConfigGPRS->iPdpAddress.Copy(KPdpAddGPRS);
       
  1938 	setConfigGPRS->iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns);
       
  1939 	setConfigGPRS->iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns);
       
  1940 	setConfigGPRS->iProtocolConfigOption.iAuthInfo.iProtocol = RPacketContext::EProtocolCHAP;
       
  1941 	setConfigGPRS->iProtocolConfigOption.iAuthInfo.iUsername.Copy(KUsername);
       
  1942 	setConfigGPRS->iProtocolConfigOption.iAuthInfo.iPassword.Copy(KPassword);
       
  1943 	setConfigGPRS->iProtocolConfigOption.iId = KRequestID;
       
  1944 	setConfigGPRS->iProtocolConfigOption.iMiscBuffer.Copy(KDummyMiscBuffer);
       
  1945 	TPckg<RPacketContext::TContextConfigGPRS> pckgConfigGPRS(*setConfigGPRS);
       
  1946 
       
  1947 	// Create the PCO buffer
       
  1948 	RPacketContext::TMiscProtocolBuffer pcoBuffer;
       
  1949 	pcoBuffer.Zero();
       
  1950 
       
  1951 	// Generate a PCO buffer
       
  1952 	PCOGeneratorL(setConfigGPRS->iProtocolConfigOption, pcoBuffer);
       
  1953 	setConfigGPRS->iProtocolConfigOption.iId = KRequestID;
       
  1954 	
       
  1955 	DriverInitialiseContextL();
       
  1956 		
       
  1957 	RPacketContext::TDataChannelV2* dataChannel = new (ELeave) RPacketContext::TDataChannelV2();
       
  1958 	RPacketContext::TDataChannelV2Pckg dataChannelPk(*dataChannel);
       
  1959 	TRequestStatus initialiseContextStatus;
       
  1960 
       
  1961 	// Initialise primary context
       
  1962 	packetContext.InitialiseContext(initialiseContextStatus,dataChannelPk);
       
  1963 	User::WaitForRequest(initialiseContextStatus);
       
  1964 	ASSERT_EQUALS(KErrNone, initialiseContextStatus.Int());
       
  1965 	ASSERT_TRUE(dataChannel->iPort == KFirstAllocatedContextName);	
       
  1966 	ASSERT_TRUE(dataChannel->iChannelId == KDefaultChannelId); // Now deprecated
       
  1967 	
       
  1968 	AssertMockLtsyStatusL();
       
  1969 	
       
  1970 	// Setting default GPRS context parameters. 
       
  1971 	RPacketContext::TContextConfigGPRS* expContextConfigGprs = new (ELeave) RPacketContext::TContextConfigGPRS();
       
  1972 	expContextConfigGprs->iAccessPointName = KDefaultAccessPoint;
       
  1973 	expContextConfigGprs->iPdpType = KDefaultPdpType;
       
  1974 
       
  1975 	TMockLtsyData1<RPacketContext::TContextConfigGPRS> expLtsyGprsData(*expContextConfigGprs);
       
  1976 	RBuf8 data;
       
  1977 	CleanupClosePushL(data);
       
  1978 	
       
  1979 	expLtsyGprsData.SerialiseL(data);
       
  1980 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetDefaultPdpContextGprsParams::KLtsyDispatchPacketServicesSetDefaultPdpContextGprsParamsApiId, data);
       
  1981 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetDefaultPdpContextGprsParams::KLtsyDispatchPacketServicesSetDefaultPdpContextGprsParamsApiId, KErrNone);
       
  1982 	
       
  1983 	RPacketContext::TContextConfigGPRS* defaultGprsContextConfig = new (ELeave) RPacketContext::TContextConfigGPRS();
       
  1984 	defaultGprsContextConfig->iAccessPointName = KDefaultAccessPoint;
       
  1985 	defaultGprsContextConfig->iPdpType = KDefaultPdpType;
       
  1986 	TPckg<RPacketContext::TContextConfigGPRS> defaultContextGprsConfigPckg(*defaultGprsContextConfig);
       
  1987 	TRequestStatus setDefaultContextParamsStatus;
       
  1988 	packetService.SetDefaultContextParams(setDefaultContextParamsStatus, defaultContextGprsConfigPckg);
       
  1989 	User::WaitForRequest(setDefaultContextParamsStatus);
       
  1990 
       
  1991     ASSERT_EQUALS(KErrNone, setDefaultContextParamsStatus.Int());
       
  1992     
       
  1993 	AssertMockLtsyStatusL();
       
  1994 		
       
  1995 	DriverSetConfigContextL(contextId, setConfigGPRS->iAccessPointName, setConfigGPRS->iPdpType, setConfigGPRS->iPdpAddress, pcoBuffer);
       
  1996 	
       
  1997 	// Set configuration for primary context
       
  1998 	TRequestStatus setConfigStatus;
       
  1999 	packetContext.SetConfig(setConfigStatus, pckgConfigGPRS);
       
  2000 	User::WaitForRequest(setConfigStatus);
       
  2001 	ASSERT_EQUALS(KErrNone, setConfigStatus.Int());
       
  2002 	
       
  2003 	AssertMockLtsyStatusL();		
       
  2004 	
       
  2005 	RPacketQoS::TQoSGPRSRequested* qosExpectedRequestedGPRSProfile = new (ELeave) RPacketQoS::TQoSGPRSRequested();
       
  2006     qosExpectedRequestedGPRSProfile->iReqPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  2007 	qosExpectedRequestedGPRSProfile->iMinPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  2008 	qosExpectedRequestedGPRSProfile->iReqDelay = RPacketQoS::EDelayClass1;
       
  2009 	qosExpectedRequestedGPRSProfile->iMinDelay = RPacketQoS::EUnspecifiedDelayClass;
       
  2010 	qosExpectedRequestedGPRSProfile->iReqReliability = RPacketQoS::EUnspecifiedReliabilityClass;
       
  2011 	qosExpectedRequestedGPRSProfile->iMinReliability = RPacketQoS::EReliabilityClass1;
       
  2012 	qosExpectedRequestedGPRSProfile->iReqPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  2013 	qosExpectedRequestedGPRSProfile->iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  2014 	qosExpectedRequestedGPRSProfile->iReqMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
       
  2015 	qosExpectedRequestedGPRSProfile->iMinMeanThroughput = RPacketQoS::EMeanThroughput500;
       
  2016 
       
  2017 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSGPRSRequested> packetSetConfigGPRSData(contextId, *qosExpectedRequestedGPRSProfile);
       
  2018 	data.Close();
       
  2019 	packetSetConfigGPRSData.SerialiseL(data);
       
  2020 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  2021 	TMockLtsyData1<TInfoName> callbackSetPdpGPRSContextNameData(contextId);
       
  2022 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  2023 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  2024 	
       
  2025 	//
       
  2026     // SetProfileParameters for GPRS Configurations
       
  2027     //
       
  2028 
       
  2029 	RPacketQoS::TQoSGPRSRequested* qosGPRSRequestedProfile = new (ELeave)RPacketQoS::TQoSGPRSRequested(); 
       
  2030 	qosGPRSRequestedProfile->iReqPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  2031 	qosGPRSRequestedProfile->iMinPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  2032 	qosGPRSRequestedProfile->iReqDelay = RPacketQoS::EDelayClass1;
       
  2033 	qosGPRSRequestedProfile->iMinDelay = RPacketQoS::EUnspecifiedDelayClass;
       
  2034 	qosGPRSRequestedProfile->iReqReliability =  RPacketQoS::EUnspecifiedReliabilityClass;
       
  2035 	qosGPRSRequestedProfile->iMinReliability = RPacketQoS::EReliabilityClass1;
       
  2036 	qosGPRSRequestedProfile->iReqPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  2037 	qosGPRSRequestedProfile->iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  2038 	qosGPRSRequestedProfile->iReqMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
       
  2039 	qosGPRSRequestedProfile->iMinMeanThroughput = RPacketQoS::EMeanThroughput500;
       
  2040 	TPckg< RPacketQoS::TQoSGPRSRequested > profilePckgGPRS(*qosGPRSRequestedProfile);
       
  2041 	
       
  2042 	TRequestStatus notifyProfileChangeStatus;
       
  2043 	RPacketQoS::TQoSGPRSNegotiated profile;
       
  2044 	TPckg<RPacketQoS::TQoSGPRSNegotiated> qosGPRSNegotiatedProfilePk(profile);
       
  2045 	packetQoS.NotifyProfileChanged(notifyProfileChangeStatus, qosGPRSNegotiatedProfilePk);
       
  2046 
       
  2047 	TRequestStatus requestStatusGPRS;
       
  2048 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  2049 	User::WaitForRequest(requestStatusGPRS);
       
  2050 	
       
  2051 	AssertMockLtsyStatusL();
       
  2052 	
       
  2053 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  2054 	
       
  2055 	TRequestStatus contextConfigStatus;
       
  2056 	RPacketContext::TContextConfigGPRS* setConfigGPRSActiveNotifyConfigChanged = new (ELeave) RPacketContext::TContextConfigGPRS();
       
  2057 	CleanupStack::PushL(setConfigGPRSActiveNotifyConfigChanged);
       
  2058 	TPckg<RPacketContext::TContextConfigGPRS> pckgConfigGPRSNotifyConfigChanged(*setConfigGPRSActiveNotifyConfigChanged);
       
  2059 	packetContext.NotifyConfigChanged(contextConfigStatus, pckgConfigGPRSNotifyConfigChanged);
       
  2060 		
       
  2061 	TRequestStatus contextActivatingRequestStatus;
       
  2062 	RPacketContext::TContextStatus contextStatus;
       
  2063 	packetContext.NotifyStatusChange(contextActivatingRequestStatus, contextStatus);
       
  2064 
       
  2065 	TMockLtsyData1<TInfoName> expectedActivateContextNameData(contextId);
       
  2066 	data.Close();
       
  2067 	expectedActivateContextNameData.SerialiseL(data);
       
  2068 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesActivatePdpContext::KLtsyDispatchPacketServicesActivatePdpContextApiId, data, KErrNone);
       
  2069 				
       
  2070 	TMockLtsyData3<TInfoName, RPacketContext::TGSNAddress, RPacketContext::TProtocolType>
       
  2071 		completedActivateContextNameData(contextId, setConfigGPRS->iAccessPointName, setConfigGPRS->iPdpType);
       
  2072 	data.Close();
       
  2073 	completedActivateContextNameData.SerialiseL(data);
       
  2074 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesActivatePdpContext::KLtsyDispatchPacketServicesActivatePdpContextApiId, KErrNone, data);
       
  2075 	
       
  2076 	RPacketQoS::TQoSGPRSNegotiated completedProfile;
       
  2077 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSGPRSNegotiated>
       
  2078 					expLtsyQosProfileChangedInd(contextId, completedProfile);
       
  2079 	data.Close();
       
  2080 	expLtsyQosProfileChangedInd.SerialiseL(data);
       
  2081 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  2082 		
       
  2083 	// Prepare context configuration for GPRS
       
  2084 	RPacketContext::TContextConfigGPRS* setConfigGPRSActive = new (ELeave)RPacketContext::TContextConfigGPRS();
       
  2085 	setConfigGPRSActive->iAccessPointName.Copy(KPointNameGPRS);
       
  2086 	setConfigGPRSActive->iPdpType = RPacketContext::EPdpTypeIPv4;
       
  2087 	setConfigGPRSActive->iPdpCompression = 0;
       
  2088 	setConfigGPRSActive->iPdpAddress.Copy(KPdpAddGPRSActive);
       
  2089 
       
  2090 	TMockLtsyData5<TInfoName, RPacketContext::TGSNAddress, RPacketContext::TProtocolAddress, TUint, RPacketContext::TMiscProtocolBuffer>
       
  2091 					expLtsyProfileChangedInd(contextId, setConfigGPRSActive->iAccessPointName,
       
  2092 					setConfigGPRSActive->iPdpAddress, setConfigGPRSActive->iPdpCompression, pcoBuffer);
       
  2093 	data.Close();
       
  2094 	expLtsyProfileChangedInd.SerialiseL(data);
       
  2095 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyPdpContextConfigChangedIndId, KErrNone, data);
       
  2096 
       
  2097 	// Activate primary context
       
  2098 	TRequestStatus activateStatus;
       
  2099 	packetContext.Activate(activateStatus);
       
  2100 	User::WaitForRequest(activateStatus);
       
  2101 	ASSERT_EQUALS(KErrNone, activateStatus.Int());
       
  2102 	ASSERT_EQUALS(RPacketContext::EStatusActivating, contextStatus);
       
  2103 	
       
  2104 	packetContext.NotifyStatusChange(contextActivatingRequestStatus, contextStatus);
       
  2105 		
       
  2106 	User::WaitForRequest(contextActivatingRequestStatus);	
       
  2107 	User::WaitForRequest(contextConfigStatus);	
       
  2108 	ASSERT_EQUALS(KErrNone, contextConfigStatus.Int());
       
  2109 	ASSERT_EQUALS(RPacketContext::EStatusActive, contextStatus);
       
  2110 		
       
  2111 	AssertMockLtsyStatusL();
       
  2112 	
       
  2113 	//Open Secondary Packet Context
       
  2114 	TInfoName secondaryContextId;
       
  2115 	RPacketContext secondaryContext;	
       
  2116 	err = secondaryContext.OpenNewSecondaryContext(packetService, contextId, secondaryContextId);
       
  2117 	CleanupClosePushL(secondaryContext);
       
  2118 	ASSERT_EQUALS(KErrNone, err);
       
  2119 	
       
  2120 	AssertMockLtsyStatusL();
       
  2121 				
       
  2122 	DriverInitialiseContextL(contextId, secondaryContextId);
       
  2123 
       
  2124 	RPacketContext::TDataChannelV2*  secondDataChannel = new (ELeave) RPacketContext::TDataChannelV2();
       
  2125 	RPacketContext::TDataChannelV2Pckg* secondDataChannelPk = new (ELeave) RPacketContext::TDataChannelV2Pckg (*secondDataChannel);
       
  2126 	TRequestStatus secondInitialiseContextStatus;
       
  2127 	
       
  2128 	// Initialise secondary context
       
  2129 	secondaryContext.InitialiseContext(secondInitialiseContextStatus, *secondDataChannelPk);
       
  2130 	User::WaitForRequest(secondInitialiseContextStatus);	
       
  2131 	ASSERT_EQUALS(KErrNone, secondInitialiseContextStatus.Int());
       
  2132 	ASSERT_TRUE(dataChannel->iPort == KFirstAllocatedContextName);	
       
  2133 	ASSERT_TRUE(secondDataChannel->iChannelId == KSecondaryContextChannelId); // Now deprecated
       
  2134 				
       
  2135 	AssertMockLtsyStatusL();
       
  2136 	
       
  2137 	// Open QoS for secondaty context
       
  2138 	RPacketQoS secondaryPacketQoS;
       
  2139 	secondaryPacketQoS.OpenNewQoS(secondaryContext, secondaryContextId);
       
  2140 	CleanupClosePushL(secondaryPacketQoS);
       
  2141 	
       
  2142 	RPacketQoS::TQoSGPRSRequested* qosExpectedRequestedGPRSProfileSecondaryContext = new (ELeave) RPacketQoS::TQoSGPRSRequested();	
       
  2143 	qosExpectedRequestedGPRSProfileSecondaryContext->iMinMeanThroughput = RPacketQoS::EMeanThroughput500;	
       
  2144 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSGPRSRequested> packetSetConfigGPRSDataSecondaryContext(secondaryContextId, *qosExpectedRequestedGPRSProfileSecondaryContext);
       
  2145 	data.Close();
       
  2146 	packetSetConfigGPRSDataSecondaryContext.SerialiseL(data);
       
  2147 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  2148 
       
  2149 	TMockLtsyData1<TInfoName> callbackSetPdpGPRSContextNameDataSecondaryContext(secondaryContextId);
       
  2150 	callbackSetPdpGPRSContextNameDataSecondaryContext.SerialiseL(data);
       
  2151 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  2152 	
       
  2153 	// Define QoS params for secondaty context   
       
  2154 	RPacketQoS::TQoSGPRSRequested qosGPRSRequestedProfilesecondaryPacket;
       
  2155 	qosGPRSRequestedProfilesecondaryPacket.iMinMeanThroughput = RPacketQoS::EMeanThroughput500;
       
  2156 	TPckg<RPacketQoS::TQoSGPRSRequested> qosGPRSRequestedProfilePk(qosGPRSRequestedProfilesecondaryPacket);    
       
  2157 	
       
  2158 	// Set QoS Params GPRS for secondaty context
       
  2159 	TRequestStatus setProfileParametersSt;
       
  2160 	secondaryPacketQoS.SetProfileParameters(setProfileParametersSt, qosGPRSRequestedProfilePk);
       
  2161 	User::WaitForRequest(setProfileParametersSt);
       
  2162 	ASSERT_EQUALS(KErrNone, setProfileParametersSt.Int());
       
  2163 	
       
  2164 	AssertMockLtsyStatusL();
       
  2165 		
       
  2166     RPacketContext::TPacketFilterV2* packetFilterV2 = new (ELeave) RPacketContext::TPacketFilterV2();
       
  2167     CleanupStack::PushL(packetFilterV2);
       
  2168     packetFilterV2->iId = 1;
       
  2169     packetFilterV2->iEvaluationPrecedenceIndex = 100;
       
  2170     packetFilterV2->iDestPortMax = 4001;
       
  2171     packetFilterV2->iDestPortMin = 4000;    
       
  2172     RPacketContext::TPacketFilterV2Pckg packetFilterV2Pckg(*packetFilterV2);    
       
  2173     CArrayFixFlat<RPacketContext::TPacketFilterV2>* filterTemporaryArray = new ( ELeave ) CArrayFixFlat<RPacketContext::TPacketFilterV2>( 1 );
       
  2174     CleanupStack::PushL(filterTemporaryArray);
       
  2175     filterTemporaryArray->AppendL( *packetFilterV2 );
       
  2176     
       
  2177 	TMockLtsyData2<TInfoName, CArrayFixFlat<RPacketContext::TPacketFilterV2>*> expectedAddFilterContextNameData(secondaryContextId, filterTemporaryArray);
       
  2178 	data.Close();
       
  2179 	expectedAddFilterContextNameData.SerialiseL(data);
       
  2180 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesAddPacketFilter::KLtsyDispatchPacketServicesAddPacketFilterApiId, data, KErrNone);
       
  2181 	
       
  2182 	TMockLtsyData1<TInfoName> callbackContextIdData(secondaryContextId);
       
  2183 	data.Close();
       
  2184 	callbackContextIdData.SerialiseL(data);
       
  2185 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextConfig::KLtsyDispatchPacketServicesSetPdpContextConfigApiId, KErrNone, data);
       
  2186 
       
  2187 	// Add filter to secondary filter
       
  2188 	TRequestStatus addPacketFilterStatus;
       
  2189     secondaryContext.AddPacketFilter(addPacketFilterStatus, packetFilterV2Pckg);	    	    
       
  2190 	User::WaitForRequest(addPacketFilterStatus);
       
  2191 	ASSERT_EQUALS(KErrNone, addPacketFilterStatus.Int());
       
  2192 		
       
  2193 	AssertMockLtsyStatusL();
       
  2194 
       
  2195 	// Prepare second filter
       
  2196 	packetFilterV2->iId = 2;
       
  2197 	filterTemporaryArray->AppendL(*packetFilterV2);
       
  2198 	
       
  2199 	TMockLtsyData2<TInfoName, CArrayFixFlat<RPacketContext::TPacketFilterV2>*> expectedAddSecondFilterContextNameData(secondaryContextId, filterTemporaryArray);
       
  2200 	data.Close();
       
  2201 	expectedAddSecondFilterContextNameData.SerialiseL(data);
       
  2202 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesAddPacketFilter::KLtsyDispatchPacketServicesAddPacketFilterApiId, data, KErrNone);
       
  2203 	
       
  2204 	TMockLtsyData1<TInfoName> callbackSecondContextIdData(secondaryContextId);
       
  2205 	data.Close();
       
  2206 	callbackSecondContextIdData.SerialiseL(data);
       
  2207 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextConfig::KLtsyDispatchPacketServicesSetPdpContextConfigApiId, KErrNone, data);
       
  2208 	
       
  2209 	// Add a second filter to the secondary filter
       
  2210     secondaryContext.AddPacketFilter(addPacketFilterStatus, packetFilterV2Pckg);	    	    
       
  2211 	User::WaitForRequest(addPacketFilterStatus);
       
  2212 	ASSERT_EQUALS(KErrNone, addPacketFilterStatus.Int());
       
  2213 	
       
  2214 	AssertMockLtsyStatusL();
       
  2215 		
       
  2216 	TMockLtsyData1<TInfoName> secondaryExpectedActivateContextNameData(secondaryContextId);
       
  2217 	data.Close();
       
  2218 	secondaryExpectedActivateContextNameData.SerialiseL(data);
       
  2219 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesActivatePdpContext::KLtsyDispatchPacketServicesActivatePdpContextApiId, data, KErrNone);				
       
  2220 	TMockLtsyData3<TInfoName, RPacketContext::TGSNAddress, RPacketContext::TProtocolType>
       
  2221 	secondaryCompletedActivateContextNameData(secondaryContextId, setConfigGPRS->iAccessPointName, setConfigGPRS->iPdpType);
       
  2222 	data.Close();
       
  2223 	secondaryCompletedActivateContextNameData.SerialiseL(data);
       
  2224 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesActivatePdpContext::KLtsyDispatchPacketServicesActivatePdpContextApiId, KErrNone, data);
       
  2225 
       
  2226 	RPacketContext::TContextConfigGPRS* setSecondaryConfigGPRSActiveNotifyConfigChanged = new (ELeave)RPacketContext::TContextConfigGPRS();
       
  2227 	CleanupStack::PushL(setSecondaryConfigGPRSActiveNotifyConfigChanged);
       
  2228 	TPckg<RPacketContext::TContextConfigGPRS> pckgConfigGPRSNotifySecondaryConfigChanged(*setSecondaryConfigGPRSActiveNotifyConfigChanged);
       
  2229 	
       
  2230 	TRequestStatus secondaryContextConfigStatus;
       
  2231 	secondaryContext.NotifyConfigChanged(secondaryContextConfigStatus, pckgConfigGPRSNotifySecondaryConfigChanged);
       
  2232 	
       
  2233 	TRequestStatus secondaryContextActivatingRequestStatus;
       
  2234 	RPacketContext::TContextStatus secondaryContextStatus;
       
  2235 	secondaryContext.NotifyStatusChange(secondaryContextActivatingRequestStatus, secondaryContextStatus);
       
  2236 		
       
  2237 	// Prepare context configuration for GPRS
       
  2238 	RPacketContext::TContextConfigGPRS* secondarySetConfigGPRSActive = new (ELeave)RPacketContext::TContextConfigGPRS();
       
  2239 	CleanupStack::PushL(secondarySetConfigGPRSActive);
       
  2240 	secondarySetConfigGPRSActive->iAccessPointName.Copy(KPointNameGPRS);
       
  2241 	secondarySetConfigGPRSActive->iPdpType = RPacketContext::EPdpTypeIPv4;
       
  2242 	secondarySetConfigGPRSActive->iPdpCompression = 1;
       
  2243 	secondarySetConfigGPRSActive->iPdpAddress.Copy(KPdpAddGPRSActive);
       
  2244 
       
  2245 	TMockLtsyData5<TInfoName, RPacketContext::TGSNAddress, RPacketContext::TProtocolAddress, TUint, RPacketContext::TMiscProtocolBuffer>
       
  2246 					secondaryexpLtsyProfileChangedInd(secondaryContextId, secondarySetConfigGPRSActive->iAccessPointName,
       
  2247 					secondarySetConfigGPRSActive->iPdpAddress, secondarySetConfigGPRSActive->iPdpCompression, pcoBuffer);
       
  2248 	data.Close();
       
  2249 	secondaryexpLtsyProfileChangedInd.SerialiseL(data);
       
  2250 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyPdpContextConfigChangedIndId, KErrNone, data);
       
  2251 	
       
  2252 	// Activate secondary context.
       
  2253 	TRequestStatus secondaryActivateStatus;
       
  2254 	secondaryContext.Activate(secondaryActivateStatus);
       
  2255 	User::WaitForRequest(secondaryActivateStatus);	
       
  2256 	ASSERT_EQUALS(RPacketContext::EStatusActivating, secondaryContextStatus);
       
  2257 	
       
  2258 	AssertMockLtsyStatusL();
       
  2259 	
       
  2260 	secondaryContext.NotifyStatusChange(secondaryContextActivatingRequestStatus, secondaryContextStatus);	
       
  2261 	User::WaitForRequest(secondaryContextActivatingRequestStatus);
       
  2262 	ASSERT_EQUALS(KErrNone, secondaryContextConfigStatus.Int());
       
  2263 	ASSERT_EQUALS(RPacketContext::EStatusActive, secondaryContextStatus);
       
  2264 	
       
  2265 	AssertMockLtsyStatusL();
       
  2266 
       
  2267 	// ModifyActiveContext pass test
       
  2268 	TInt8 KRejectionCodePass = 0;
       
  2269 	TInt8 KRejectionCodeFail = 1;
       
  2270 	
       
  2271 	TMockLtsyData1<TInfoName>
       
  2272 	modifyActiveContextNameData(secondaryContextId);
       
  2273 	data.Close();
       
  2274 	modifyActiveContextNameData.SerialiseL(data);
       
  2275 
       
  2276 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesModifyActivePdpContext::KLtsyDispatchPacketServicesModifyActivePdpContextApiId, data, KErrNone);
       
  2277 
       
  2278 	TMockLtsyData2<TInfoName, TInt8> completeModifyActiveContextData(secondaryContextId, KRejectionCodePass); // Context name and rejection code
       
  2279 	data.Close();
       
  2280 	completeModifyActiveContextData.SerialiseL(data);
       
  2281 
       
  2282 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesModifyActivePdpContext::KLtsyDispatchPacketServicesModifyActivePdpContextApiId, KErrNone, data);
       
  2283 
       
  2284 	// Request modification, modification should be successful 
       
  2285 	TRequestStatus modifyActiveContextStatus;
       
  2286 	secondaryContext.ModifyActiveContext(modifyActiveContextStatus);
       
  2287 	User::WaitForRequest(modifyActiveContextStatus);
       
  2288 	ASSERT_EQUALS(KErrNone, modifyActiveContextStatus.Int());
       
  2289 	
       
  2290 	AssertMockLtsyStatusL();
       
  2291 	
       
  2292 	TMockLtsyData1<TInfoName>
       
  2293 	failedModifyActiveContextNameData(secondaryContextId);
       
  2294 	data.Close();
       
  2295 	failedModifyActiveContextNameData.SerialiseL(data);
       
  2296 
       
  2297 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesModifyActivePdpContext::KLtsyDispatchPacketServicesModifyActivePdpContextApiId, data, KErrNone);
       
  2298 	TMockLtsyData2<TInfoName,  TInt8 >
       
  2299 	completeFailedModifyActiveContextData(secondaryContextId, KRejectionCodeFail); // Context name and rejection code
       
  2300 	data.Close();
       
  2301 	completeFailedModifyActiveContextData.SerialiseL(data);
       
  2302 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesModifyActivePdpContext::KLtsyDispatchPacketServicesModifyActivePdpContextApiId, KErrGeneral, data);
       
  2303 
       
  2304 	// Request second modification, should fail 
       
  2305 	secondaryContext.ModifyActiveContext(modifyActiveContextStatus);
       
  2306 	User::WaitForRequest(modifyActiveContextStatus);
       
  2307 	ASSERT_EQUALS(KErrGeneral, modifyActiveContextStatus.Int());
       
  2308 	
       
  2309 	AssertMockLtsyStatusL();
       
  2310 	
       
  2311 	// Remove packet filter
       
  2312 	TInt filterId = 2;	
       
  2313 	TMockLtsyData2<TInfoName, TInt > expectedRemoveSecondFilterContextNameData(secondaryContextId, filterId);
       
  2314 	data.Close();
       
  2315 	expectedRemoveSecondFilterContextNameData.SerialiseL(data);
       
  2316 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesRemovePacketFilter::KLtsyDispatchPacketServicesRemovePacketFilterApiId, data, KErrNone);
       
  2317 	
       
  2318 	TMockLtsyData1<TInfoName> callbackRemoveFilterData(secondaryContextId);
       
  2319 	data.Close();
       
  2320 	callbackRemoveFilterData.SerialiseL(data);
       
  2321 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextConfig::KLtsyDispatchPacketServicesSetPdpContextConfigApiId, KErrNone, data);
       
  2322 	
       
  2323 	//-------------------------------------------------------------------------
       
  2324 	// TEST Successful completion request of
       
  2325 	// RPacketContext::ModifyActiveContext with removal of first filter 
       
  2326  	//-------------------------------------------------------------------------		
       
  2327 	TRequestStatus removeFilterRequestStatus;	
       
  2328 	secondaryContext.RemovePacketFilter(removeFilterRequestStatus, filterId);
       
  2329 	User::WaitForRequest(removeFilterRequestStatus);
       
  2330 	ASSERT_EQUALS(KErrNone, removeFilterRequestStatus.Int());	
       
  2331 	AssertMockLtsyStatusL();		
       
  2332 	
       
  2333 	TMockLtsyData1<TInfoName> removeFilterModifyActiveContextNameData(secondaryContextId);
       
  2334 	data.Close();
       
  2335 	removeFilterModifyActiveContextNameData.SerialiseL(data);
       
  2336 
       
  2337 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesModifyActivePdpContext::KLtsyDispatchPacketServicesModifyActivePdpContextApiId, data, KErrNone);
       
  2338 
       
  2339 	TMockLtsyData2<TInfoName,  TInt8 >	
       
  2340 	completeRemoveFilterModifyActiveContextData(secondaryContextId, KRejectionCodePass); // Context name and rejection code
       
  2341 	data.Close();
       
  2342 	completeRemoveFilterModifyActiveContextData.SerialiseL(data);
       
  2343 
       
  2344 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesModifyActivePdpContext::KLtsyDispatchPacketServicesModifyActivePdpContextApiId, KErrNone, data);
       
  2345 	
       
  2346 	secondaryContext.ModifyActiveContext(modifyActiveContextStatus);
       
  2347 	User::WaitForRequest(modifyActiveContextStatus);
       
  2348 	ASSERT_EQUALS(KErrNone, modifyActiveContextStatus.Int());
       
  2349     	 
       
  2350 	AssertMockLtsyStatusL();
       
  2351 			
       
  2352 	DriverDeleteContextL(contextId);
       
  2353 	DriverDeleteContextL(secondaryContextId);
       
  2354 	
       
  2355 	secondaryContext.Close();
       
  2356 	packetContext.Close();
       
  2357 		
       
  2358 	packetQoS.Close();
       
  2359 	packetService.Close();
       
  2360 	secondaryPacketQoS.Close();
       
  2361 	
       
  2362 	// Let the mock-LTSY finish up before asserting.
       
  2363 	User::After(1000000);
       
  2364 	
       
  2365 	AssertMockLtsyStatusL();
       
  2366 	
       
  2367 	CleanupStack::PopAndDestroy(13, this); // secondarySetConfigGPRSActive, setSecondaryConfigGPRSActiveNotifyConfigChanged, secondarysetConfigGPRSActiveNotifyConfigChanged, 
       
  2368 											//filterTemporaryArray, packetFilterV2, secondaryPacketQoS, secondaryContext, setConfigGPRSActive, setConfigGPRSActiveNotifyConfigChanged
       
  2369 											//data, setConfigGPRS, packetQoS, packetContext, packetService, this
       
  2370 	}
       
  2371 
       
  2372 //
       
  2373 // Unit Tests
       
  2374 //
       
  2375 
       
  2376 /**
       
  2377 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN0001
       
  2378 @SYMComponent telephony_ctsy
       
  2379 @SYMTestCaseDesc Test support in CTSY for SetDefaultContextParams
       
  2380 @SYMTestPriority High
       
  2381 @SYMTestActions Invokes SetDefaultContextParams only for GPRS, R99 and CDMA
       
  2382 @SYMTestExpectedResults Pass
       
  2383 @SYMTestType UT
       
  2384  */
       
  2385 
       
  2386 void CCTsyPacketServicesFU::TestUnit0001L()
       
  2387 	{
       
  2388 	OpenEtelServerL(EUseExtendedError);
       
  2389 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2390 	OpenPhoneL();
       
  2391 
       
  2392 	RPacketService packetService;
       
  2393 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  2394 
       
  2395 	RBuf8 data;
       
  2396 	CleanupClosePushL(data);
       
  2397 
       
  2398 	RPacketContext::TContextConfigGPRS expContextConfigGprs;
       
  2399 	expContextConfigGprs.iAccessPointName = KDefaultAccessPoint;
       
  2400 	expContextConfigGprs.iPdpType = KDefaultPdpType;
       
  2401 
       
  2402 	TMockLtsyData1<RPacketContext::TContextConfigGPRS> expLtsyGprsData(expContextConfigGprs);
       
  2403 	data.Close();
       
  2404 	expLtsyGprsData.SerialiseL(data);
       
  2405 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetDefaultPdpContextGprsParams::KLtsyDispatchPacketServicesSetDefaultPdpContextGprsParamsApiId, data);
       
  2406 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetDefaultPdpContextGprsParams::KLtsyDispatchPacketServicesSetDefaultPdpContextGprsParamsApiId, KErrNone);
       
  2407 
       
  2408 	/* Client side test */
       
  2409 	RPacketContext::TContextConfigGPRS defaultGprsContextConfig;
       
  2410 	defaultGprsContextConfig.iAccessPointName = KDefaultAccessPoint;
       
  2411 	defaultGprsContextConfig.iPdpType = KDefaultPdpType;
       
  2412 	TPckg<RPacketContext::TContextConfigGPRS> defaultContextGprsConfigPckg(defaultGprsContextConfig);
       
  2413 	TRequestStatus setDefaultContextParamsStatus;
       
  2414 	packetService.SetDefaultContextParams(setDefaultContextParamsStatus, defaultContextGprsConfigPckg);
       
  2415 	User::WaitForRequest(setDefaultContextParamsStatus);
       
  2416 
       
  2417     ASSERT_EQUALS(KErrNone, setDefaultContextParamsStatus.Int());
       
  2418 
       
  2419 	RPacketContext::TContextConfigR99_R4 expContextConfigR99R4;
       
  2420 	expContextConfigGprs.iAccessPointName = KDefaultAccessPoint;
       
  2421 	expContextConfigGprs.iPdpType = KDefaultPdpType;
       
  2422 
       
  2423 	TMockLtsyData1<RPacketContext::TContextConfigR99_R4> expLtsyR99R4Data(expContextConfigR99R4);
       
  2424 	data.Close();
       
  2425 	expLtsyR99R4Data.SerialiseL(data);
       
  2426 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetDefaultPdpContextR99R4Params::KLtsyDispatchPacketServicesSetDefaultPdpContextR99R4ParamsApiId, data);
       
  2427 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetDefaultPdpContextR99R4Params::KLtsyDispatchPacketServicesSetDefaultPdpContextR99R4ParamsApiId, KErrNone);
       
  2428 
       
  2429 	/* Client side test */
       
  2430 	RPacketContext::TContextConfigR99_R4 defaultR99R4ContextConfig;
       
  2431 	defaultR99R4ContextConfig.iAccessPointName = KDefaultAccessPoint;
       
  2432 	defaultR99R4ContextConfig.iPdpType = KDefaultPdpType;
       
  2433 	TPckg<RPacketContext::TContextConfigR99_R4> defaultContextR99R4ConfigPckg(defaultR99R4ContextConfig);
       
  2434 	packetService.SetDefaultContextParams(setDefaultContextParamsStatus, defaultContextR99R4ConfigPckg);
       
  2435 	User::WaitForRequest(setDefaultContextParamsStatus);
       
  2436 
       
  2437     ASSERT_EQUALS(KErrNone, setDefaultContextParamsStatus.Int());
       
  2438 
       
  2439 	RPacketContext::TContextConfigCDMA expContextConfigCDMA;
       
  2440 	expContextConfigCDMA.iServiceOption = KDefaultServiceOption;
       
  2441 	expContextConfigCDMA.iProtocolType = KDefaultPdpType;
       
  2442 
       
  2443 	TMockLtsyData1<RPacketContext::TContextConfigCDMA> expLtsyCDMAData(expContextConfigCDMA);
       
  2444 	data.Close();
       
  2445 	expLtsyCDMAData.SerialiseL(data);
       
  2446 
       
  2447 	/* Client side test */
       
  2448 	RPacketContext::TContextConfigCDMA defaultCDMAContextConfig;
       
  2449 	defaultCDMAContextConfig.iServiceOption = KDefaultServiceOption;
       
  2450 	defaultCDMAContextConfig.iProtocolType = KDefaultPdpType;
       
  2451 	TPckg<RPacketContext::TContextConfigCDMA> defaultContextCDMAConfigPckg(defaultCDMAContextConfig);
       
  2452 	packetService.SetDefaultContextParams(setDefaultContextParamsStatus, defaultContextCDMAConfigPckg);
       
  2453 	User::WaitForRequest(setDefaultContextParamsStatus);
       
  2454 
       
  2455     ASSERT_EQUALS(KErrArgument, setDefaultContextParamsStatus.Int());
       
  2456 
       
  2457 	AssertMockLtsyStatusL();
       
  2458 	CleanupStack::PopAndDestroy(3, this); // data, packetService, this
       
  2459 	}
       
  2460 
       
  2461 /**
       
  2462 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN0002
       
  2463 @SYMComponent telephony_ctsy
       
  2464 @SYMTestCaseDesc Test support in CTSY for InitialiseContext with port
       
  2465 @SYMTestPriority High
       
  2466 @SYMTestActions Invokes InitialiseContext only, successfully obtaining the port
       
  2467 @SYMTestExpectedResults Pass
       
  2468 @SYMTestType UT
       
  2469  */
       
  2470 void CCTsyPacketServicesFU::TestUnit0002L()
       
  2471 	{
       
  2472 	OpenEtelServerL(EUseExtendedError);
       
  2473 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2474 	OpenPhoneL();
       
  2475 
       
  2476 	RPacketService packetService;
       
  2477 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  2478 
       
  2479 	RBuf8 data;
       
  2480 	CleanupClosePushL(data);
       
  2481 
       
  2482 	//Open a New Packet Context
       
  2483 	RPacketContext packetContext;
       
  2484 	CleanupClosePushL(packetContext);
       
  2485 	TName contextName;
       
  2486 	TInt err = packetContext.OpenNewContext(packetService,contextName);
       
  2487 
       
  2488 	ASSERT_EQUALS(KErrNone, err);
       
  2489 
       
  2490 	TInfoName primaryContext;
       
  2491 	TInfoName secondaryContext;
       
  2492 	primaryContext.Copy(KFirstAllocatedContextName);
       
  2493 	secondaryContext.Copy(KDefaultContextName);
       
  2494 
       
  2495  	//-------------------------------------------------------------------------
       
  2496 	// TEST A: failure to dispatch request to LTSY
       
  2497  	//-------------------------------------------------------------------------
       
  2498 	TMockLtsyData2<TInfoName, TInfoName> expLtsyContextNamesData2(primaryContext, secondaryContext);
       
  2499 	data.Close();
       
  2500 	expLtsyContextNamesData2.SerialiseL(data);
       
  2501 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesInitialisePdpContext::KLtsyDispatchPacketServicesInitialisePdpContextApiId, data, KErrNotSupported);
       
  2502 
       
  2503 	//Client side test
       
  2504 	RPacketContext::TDataChannelV2 dataChannel;
       
  2505 	RPacketContext::TDataChannelV2Pckg dataChannelPk(dataChannel);
       
  2506 	TRequestStatus initialiseContextStatus;
       
  2507 
       
  2508 	packetContext.InitialiseContext(initialiseContextStatus,dataChannelPk);
       
  2509 	User::WaitForRequest(initialiseContextStatus);
       
  2510 
       
  2511     ASSERT_EQUALS(KErrNotSupported, initialiseContextStatus.Int());
       
  2512 
       
  2513 	AssertMockLtsyStatusL();
       
  2514 	//-------------------------------------------------------------------------
       
  2515 	// TEST B: failure on completion of pending request from LTSY->CTSY
       
  2516  	//-------------------------------------------------------------------------
       
  2517 
       
  2518 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesInitialisePdpContext::KLtsyDispatchPacketServicesInitialisePdpContextApiId, data, KErrNone);
       
  2519 
       
  2520 	TDesC* contextNamePtr = &primaryContext;
       
  2521 	TDesC* channelIdPtr = const_cast<TDesC*>(&KDefaultChannelId);
       
  2522 	TMockLtsyData2<TDesC*, TDesC*> expLtsyContextNameAndChannelData(contextNamePtr, channelIdPtr);
       
  2523 	data.Close();
       
  2524 	expLtsyContextNameAndChannelData.SerialiseL(data);
       
  2525 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesInitialisePdpContext::KLtsyDispatchPacketServicesInitialisePdpContextApiId, KErrNotSupported, data);
       
  2526 
       
  2527 	//Client side test
       
  2528 	packetContext.InitialiseContext(initialiseContextStatus,dataChannelPk);
       
  2529 	User::WaitForRequest(initialiseContextStatus);
       
  2530 
       
  2531     ASSERT_EQUALS(KErrNotSupported, initialiseContextStatus.Int());
       
  2532 	AssertMockLtsyStatusL();
       
  2533 
       
  2534  	//-------------------------------------------------------------------------
       
  2535 	// TEST C: Successful completion request of
       
  2536 	// RPacketContext::InitialiseContext
       
  2537  	//-------------------------------------------------------------------------
       
  2538 
       
  2539 	TMockLtsyData2<TInfoName, TInfoName> expLtsyContextNamesData3(primaryContext, secondaryContext);
       
  2540 	data.Close();
       
  2541 	expLtsyContextNamesData3.SerialiseL(data);
       
  2542 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesInitialisePdpContext::KLtsyDispatchPacketServicesInitialisePdpContextApiId, data);
       
  2543 
       
  2544 	TMockLtsyData2<TDesC*, TDesC*> expLtsyContextNameAndChannelData2(contextNamePtr, channelIdPtr);
       
  2545 	data.Close();
       
  2546 	expLtsyContextNameAndChannelData2.SerialiseL(data);
       
  2547 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesInitialisePdpContext::KLtsyDispatchPacketServicesInitialisePdpContextApiId, KErrNone, data);
       
  2548 
       
  2549 	//Client side test
       
  2550 	packetContext.InitialiseContext(initialiseContextStatus,dataChannelPk);
       
  2551 	User::WaitForRequest(initialiseContextStatus);
       
  2552 
       
  2553     ASSERT_EQUALS(KErrNone, initialiseContextStatus.Int());
       
  2554 	ASSERT_TRUE(dataChannel.iPort == KFirstAllocatedContextName); 
       
  2555     ASSERT_TRUE(dataChannel.iChannelId == KDefaultChannelId); // Now deprecated
       
  2556 
       
  2557 	AssertMockLtsyStatusL();
       
  2558  	//-------------------------------------------------------------------------
       
  2559 	// TEST E: Unsolicited completion of RPacketContext::InitialiseContext
       
  2560 	// from LTSY.
       
  2561  	//-------------------------------------------------------------------------
       
  2562 
       
  2563 	TRequestStatus terminatedStatus;
       
  2564 	iMockLTSY.NotifyTerminated(terminatedStatus);
       
  2565 
       
  2566 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesInitialisePdpContext::KLtsyDispatchPacketServicesInitialisePdpContextApiId, KErrNone, data);
       
  2567 
       
  2568 	//Client side test
       
  2569 	User::WaitForRequest(terminatedStatus);
       
  2570     ASSERT_EQUALS(KErrNone, initialiseContextStatus.Int());
       
  2571 
       
  2572 	DriverDeleteContextL(primaryContext);
       
  2573 
       
  2574 	packetContext.Close();
       
  2575 	AssertMockLtsyStatusL();
       
  2576 
       
  2577  	//-------------------------------------------------------------------------
       
  2578 	// TEST F: Coverage test(s) for RPacketContext::InitialiseContext
       
  2579  	//-------------------------------------------------------------------------
       
  2580 
       
  2581     // Open two contexts and attempt to issue multiple initialise context requests
       
  2582 
       
  2583 	//Open a New Packet Context
       
  2584 	CleanupClosePushL(packetContext);
       
  2585 	err = packetContext.OpenNewContext(packetService,contextName);
       
  2586 	ASSERT_EQUALS(KErrNone, err);
       
  2587 
       
  2588     //Open a New Packet Context 2
       
  2589 	RPacketContext packetContext2;
       
  2590 	CleanupClosePushL(packetContext2);
       
  2591 	err = packetContext2.OpenNewContext(packetService,contextName);
       
  2592 	ASSERT_EQUALS(KErrNone, err);
       
  2593 
       
  2594 	TInfoName primaryContext2;
       
  2595 	primaryContext.Copy(KSecondAllocatedContextName);
       
  2596 	primaryContext2.Copy(KThirdAllocatedContextName);
       
  2597 
       
  2598 	TMockLtsyData2<TInfoName, TInfoName> expLtsyContextNamesData4(primaryContext, secondaryContext);
       
  2599 	data.Close();
       
  2600 	expLtsyContextNamesData4.SerialiseL(data);
       
  2601 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesInitialisePdpContext::KLtsyDispatchPacketServicesInitialisePdpContextApiId, data);
       
  2602 
       
  2603 	packetContext.InitialiseContext(initialiseContextStatus,dataChannelPk);
       
  2604 
       
  2605 	TRequestStatus initialiseContextStatus2;
       
  2606 
       
  2607 	/* This request is queued by ETEL as being a duplicate and does not reach the C-TSY at this point */
       
  2608 	packetContext2.InitialiseContext(initialiseContextStatus2,dataChannelPk);
       
  2609 
       
  2610 	TMockLtsyData2<TDesC*, TDesC*> expLtsyContextNameAndChannelData3(contextNamePtr, channelIdPtr);
       
  2611 	data.Close();
       
  2612 	expLtsyContextNameAndChannelData3.SerialiseL(data);
       
  2613 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesInitialisePdpContext::KLtsyDispatchPacketServicesInitialisePdpContextApiId, KErrNone, data);
       
  2614 
       
  2615 	TMockLtsyData2<TInfoName, TInfoName> expLtsyContextNamesData5(primaryContext2, secondaryContext);
       
  2616 	data.Close();
       
  2617 	expLtsyContextNamesData5.SerialiseL(data);
       
  2618 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesInitialisePdpContext::KLtsyDispatchPacketServicesInitialisePdpContextApiId, data);
       
  2619 
       
  2620 	User::WaitForRequest(initialiseContextStatus);
       
  2621 
       
  2622 	contextNamePtr = &primaryContext2;
       
  2623 	TMockLtsyData2<TDesC*, TDesC*> expLtsyContextNameAndChannelData4(contextNamePtr, channelIdPtr);
       
  2624 	data.Close();
       
  2625 	expLtsyContextNameAndChannelData4.SerialiseL(data);
       
  2626 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesInitialisePdpContext::KLtsyDispatchPacketServicesInitialisePdpContextApiId, KErrNone, data);
       
  2627 
       
  2628 	User::WaitForRequest(initialiseContextStatus2);
       
  2629 
       
  2630 	ASSERT_EQUALS(KErrNone, initialiseContextStatus.Int());
       
  2631 	ASSERT_EQUALS(KErrNone, initialiseContextStatus2.Int());
       
  2632 
       
  2633 	DriverDeleteContextL(primaryContext2);
       
  2634 	packetContext2.Close();
       
  2635 
       
  2636 	DriverDeleteContextL(primaryContext);
       
  2637 	packetContext.Close();
       
  2638 
       
  2639 	// Let the mock-LTSY finish up before asserting.
       
  2640 	User::After(1000000);
       
  2641 	
       
  2642 	AssertMockLtsyStatusL();
       
  2643 	CleanupStack::PopAndDestroy(6, this); // packetContext2, packetContext, packetContext, data, packetService, this
       
  2644 	}
       
  2645 
       
  2646 /**
       
  2647 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN0003
       
  2648 @SYMComponent telephony_ctsy
       
  2649 @SYMTestCaseDesc Test support in CTSY for InitialiseContext with port
       
  2650 @SYMTestPriority High
       
  2651 @SYMTestActions Invokes InitialiseContext only, allows it to timeout
       
  2652 @SYMTestExpectedResults Pass
       
  2653 @SYMTestType UT
       
  2654  */
       
  2655 void CCTsyPacketServicesFU::TestUnit0003L()
       
  2656 	{
       
  2657 	OpenEtelServerL(EUseExtendedError);
       
  2658 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2659 	OpenPhoneL();
       
  2660 
       
  2661 	RPacketService packetService;
       
  2662 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  2663 
       
  2664 	RBuf8 data;
       
  2665 	CleanupClosePushL(data);
       
  2666 
       
  2667 	//Open a New Packet Context
       
  2668 	RPacketContext packetContext;
       
  2669 	CleanupClosePushL(packetContext);
       
  2670 	TName contextName;
       
  2671 	TInt err = packetContext.OpenNewContext(packetService,contextName);
       
  2672 
       
  2673 	ASSERT_EQUALS(KErrNone, err);
       
  2674 
       
  2675 	TInfoName primaryContext;
       
  2676 	TInfoName secondaryContext;
       
  2677 	primaryContext.Copy(KFirstAllocatedContextName);
       
  2678 	secondaryContext.Copy(KDefaultContextName);
       
  2679 
       
  2680 	//-------------------------------------------------------------------------
       
  2681 	// TEST: timeout on completion of pending request from LTSY->CTSY
       
  2682  	//-------------------------------------------------------------------------
       
  2683 	TMockLtsyData2<TInfoName, TInfoName> expLtsyContextNamesData2(primaryContext, secondaryContext);
       
  2684 	data.Close();
       
  2685 	expLtsyContextNamesData2.SerialiseL(data);
       
  2686 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesInitialisePdpContext::KLtsyDispatchPacketServicesInitialisePdpContextApiId, data);
       
  2687 
       
  2688 	RPacketContext::TDataChannelV2 dataChannel;
       
  2689 	RPacketContext::TDataChannelV2Pckg dataChannelPk(dataChannel);
       
  2690 	TRequestStatus initialiseContextStatus;
       
  2691 
       
  2692 	//Deliberately leave out the Complete in order to induce a timeout
       
  2693 
       
  2694 	//Client side test
       
  2695 	packetContext.InitialiseContext(initialiseContextStatus,dataChannelPk);
       
  2696 	User::WaitForRequest(initialiseContextStatus);
       
  2697 
       
  2698     ASSERT_EQUALS(KErrTimedOut, initialiseContextStatus.Int());
       
  2699 
       
  2700     DriverDeleteContextL(primaryContext);
       
  2701 	packetContext.Close();
       
  2702 
       
  2703 	// Let the mock-LTSY finish up before asserting.
       
  2704 	User::After(1000000);
       
  2705 	
       
  2706 	AssertMockLtsyStatusL();
       
  2707 	CleanupStack::PopAndDestroy(4, this); // packetContext, data, packetService, this
       
  2708 	}
       
  2709 
       
  2710 /**
       
  2711 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN0004
       
  2712 @SYMComponent telephony_ctsy
       
  2713 @SYMTestCaseDesc Test support in CTSY for open the packet service when packet service status is set to EStatusUnattached
       
  2714 @SYMTestPriority High
       
  2715 @SYMTestActions Invokes RPacketService::Open()
       
  2716 @SYMTestExpectedResults Pass
       
  2717 @SYMTestType UT
       
  2718  */
       
  2719 void CCTsyPacketServicesFU::TestUnit0004L()
       
  2720 	{
       
  2721 	OpenEtelServerL(EUseExtendedError);
       
  2722 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2723 	OpenPhoneL();
       
  2724 
       
  2725 	// client side test
       
  2726 	RPacketService packetService;
       
  2727 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  2728 
       
  2729 	RPacketService::TStatus getStatus;
       
  2730  	ASSERT_EQUALS(KErrNone, packetService.GetStatus(getStatus));
       
  2731  	ASSERT_EQUALS(RPacketService::EStatusUnattached, getStatus);
       
  2732 
       
  2733 	packetService.Close();
       
  2734 
       
  2735 	// Let the mock-LTSY finish up before asserting.
       
  2736 	User::After(1000000);
       
  2737 	
       
  2738 	AssertMockLtsyStatusL();
       
  2739 	CleanupStack::PopAndDestroy(2, this); // packetService, this
       
  2740 	}
       
  2741 
       
  2742 /**
       
  2743 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN0005
       
  2744 @SYMComponent telephony_ctsy
       
  2745 @SYMTestCaseDesc Test support in CTSY for open the packet service when packet service status is set to EStatusAttached.
       
  2746 @SYMTestPriority High
       
  2747 @SYMTestActions Invokes RPacketService::Open()
       
  2748 @SYMTestExpectedResults Pass
       
  2749 @SYMTestType UT
       
  2750  */
       
  2751 void CCTsyPacketServicesFU::TestUnit0005L()
       
  2752 	{
       
  2753 	OpenEtelServerL(EUseExtendedError);
       
  2754 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2755 	OpenPhoneL();
       
  2756 
       
  2757 	// client side test
       
  2758 	RPacketService packetService;
       
  2759 	OpenPacketServiceLC(packetService,RPacketService::EStatusAttached);
       
  2760 	
       
  2761 	RPacketService::TStatus getStatus;
       
  2762  	ASSERT_EQUALS(KErrNone, packetService.GetStatus(getStatus));
       
  2763  	ASSERT_EQUALS(RPacketService::EStatusAttached, getStatus);
       
  2764 
       
  2765 	packetService.Close();
       
  2766 
       
  2767 	// Let the mock-LTSY finish up before asserting.
       
  2768 	User::After(1000000);
       
  2769 	
       
  2770 	AssertMockLtsyStatusL();
       
  2771 	CleanupStack::PopAndDestroy(2, this); // packetService, this
       
  2772 	}
       
  2773 
       
  2774 
       
  2775 /**
       
  2776 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN0006
       
  2777 @SYMComponent telephony_ctsy
       
  2778 @SYMTestCaseDesc Test support in CTSY for configuration settings using R99/R4
       
  2779 @SYMTestPriority High
       
  2780 @SYMTestActions SetConfig for R99R4
       
  2781 @SYMTestExpectedResults Pass
       
  2782 @SYMTestType UT
       
  2783  */
       
  2784 void CCTsyPacketServicesFU::TestUnit0006L()
       
  2785 	{
       
  2786 	OpenEtelServerL(EUseExtendedError);
       
  2787 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2788 	OpenPhoneL();
       
  2789 	// client side test
       
  2790 	RPacketService packetService;
       
  2791 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  2792 
       
  2793 	// Prepare context configuration
       
  2794 	RPacketContext::TContextConfigR99_R4 setConfig99;
       
  2795 	setConfig99.iAccessPointName.Copy(KPointName99);
       
  2796 	setConfig99.iPdpType = RPacketContext::EPdpTypeIPv4;
       
  2797 	setConfig99.iPdpAddress.Copy(KPdpAdd99);
       
  2798 	// PCO Configurations
       
  2799 	setConfig99.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns99ForUN0006);
       
  2800 	setConfig99.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns99);
       
  2801 	setConfig99.iProtocolConfigOption.iAuthInfo.iProtocol = RPacketContext::EProtocolCHAP;
       
  2802 	setConfig99.iProtocolConfigOption.iAuthInfo.iUsername.Copy(KLongUsername);
       
  2803 	setConfig99.iProtocolConfigOption.iAuthInfo.iPassword.Copy(KPassword);
       
  2804 	setConfig99.iProtocolConfigOption.iId = KRequestID;
       
  2805 	RPacketContext::TMiscProtocolBuffer miscBuffer;
       
  2806 	miscBuffer.SetLength(KMaxMiscBufferSize);
       
  2807 	miscBuffer.FillZ();
       
  2808 	TPtr8 miscPtr(miscBuffer.LeftTPtr(miscBuffer.MaxLength()));
       
  2809 	miscPtr.SetLength(0);
       
  2810 
       
  2811 	// TLV struct to store the Misc buffer:
       
  2812 	TTlvStruct<RPacketContext::TPcoId, RPacketContext::TPcoItemDataLength> tlv(miscPtr,0);
       
  2813 
       
  2814     const TUint16 XId=1;
       
  2815     const TUint16 YId=10;
       
  2816 
       
  2817     RPacketContext::TPcoId pcoIdX(XId);
       
  2818     RPacketContext::TPcoId pcoIdY(YId);
       
  2819 
       
  2820     //  BufferX
       
  2821     TBuf8<KAppendableBufferSize> appendableBufferX(_L8("xxx"));
       
  2822     appendableBufferX.SetLength(KAppendableBufferSize);
       
  2823     TPtr8 appendablePtrX(const_cast<TUint8*>(appendableBufferX.Ptr()),appendableBufferX.Length(),appendableBufferX.Length());
       
  2824     //  BufferY
       
  2825     TBuf8<KAppendableBufferSize> appendableBufferY(_L8("yyy"));
       
  2826 	appendableBufferY.SetLength(KAppendableBufferSize);
       
  2827 	TPtr8 appendablePtrY(const_cast<TUint8*>(appendableBufferY.Ptr()),appendableBufferY.Length(),appendableBufferY.Length());
       
  2828 
       
  2829 	//  Append 3 Items to the misc buffer -  X + Y + X
       
  2830 	tlv.AppendItemL(pcoIdX,appendablePtrX);
       
  2831 	tlv.AppendItemL(pcoIdY,appendablePtrY);
       
  2832 	tlv.AppendItemL(pcoIdX,appendablePtrX);
       
  2833 
       
  2834 	setConfig99.iProtocolConfigOption.iMiscBuffer.Copy(miscBuffer);
       
  2835 	setConfig99.iProtocolConfigOption.iMiscBuffer.SetLength(miscBuffer.Length());
       
  2836 
       
  2837 	TPckg<RPacketContext::TContextConfigR99_R4> pckgConfig(setConfig99);
       
  2838 	//
       
  2839 
       
  2840 	DriverInitialiseContextL();
       
  2841 
       
  2842 	RBuf8 data;
       
  2843 	CleanupClosePushL(data);
       
  2844 
       
  2845 	TInfoName contextId;
       
  2846 	contextId.Copy(KFirstAllocatedContextName);
       
  2847 	RPacketContext::TGSNAddress accessPointName;
       
  2848 	accessPointName.Copy(KPointName99);
       
  2849 	RPacketContext::TProtocolType pdpType = RPacketContext::EPdpTypeIPv4;
       
  2850 	RPacketContext::TProtocolAddress pdpAddress;
       
  2851 	pdpAddress.Copy(KPdpAdd99);
       
  2852 
       
  2853 	// Create the PCO buffer
       
  2854 	RPacketContext::TMiscProtocolBuffer pcoBuffer;
       
  2855 	pcoBuffer.Zero();
       
  2856 
       
  2857 	// Generate a PCO buffer out of the packet service configuration
       
  2858 	PCOGeneratorL(setConfig99.iProtocolConfigOption, pcoBuffer);
       
  2859 	setConfig99.iProtocolConfigOption.iId = KRequestID;
       
  2860 
       
  2861 	TMockLtsyData5<TInfoName,RPacketContext::TGSNAddress, RPacketContext::TProtocolType, RPacketContext::TProtocolAddress, RPacketContext::TMiscProtocolBuffer>
       
  2862 					packetSetConfigData(contextId, accessPointName, pdpType, pdpAddress, pcoBuffer);
       
  2863 	data.Close();
       
  2864 	packetSetConfigData.SerialiseL(data);
       
  2865 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextConfig::KLtsyDispatchPacketServicesSetPdpContextConfigApiId, data, KErrNone);
       
  2866 
       
  2867 	// Indicate that the context name is due to comeback from the SetConfig callback
       
  2868 	TMockLtsyData1<TInfoName> callbackContextIdData(contextId);
       
  2869 	data.Close();
       
  2870 	callbackContextIdData.SerialiseL(data);
       
  2871 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextConfig::KLtsyDispatchPacketServicesSetPdpContextConfigApiId, KErrNone, data);
       
  2872 
       
  2873 	DriverDeleteContextL(contextId);
       
  2874 
       
  2875 	//
       
  2876 
       
  2877 	RPacketContext packetContext;
       
  2878 
       
  2879 	// Open a new context
       
  2880 	packetContext.OpenNewContext(packetService, contextId);
       
  2881 	CleanupClosePushL(packetContext);
       
  2882 
       
  2883 	//Client side test
       
  2884 	RPacketContext::TDataChannelV2 dataChannel;
       
  2885 	RPacketContext::TDataChannelV2Pckg dataChannelPk(dataChannel);
       
  2886 	TRequestStatus initialiseContextStatus;
       
  2887 
       
  2888 	packetContext.InitialiseContext(initialiseContextStatus,dataChannelPk);
       
  2889 	User::WaitForRequest(initialiseContextStatus);
       
  2890 	ASSERT_EQUALS(KErrNone, initialiseContextStatus.Int());
       
  2891 	ASSERT_TRUE(dataChannel.iPort == KFirstAllocatedContextName);	
       
  2892 	ASSERT_TRUE(dataChannel.iChannelId == KDefaultChannelId); // Now deprecated
       
  2893 
       
  2894 	TRequestStatus setConfigStatus;
       
  2895 	packetContext.SetConfig(setConfigStatus, pckgConfig);
       
  2896 
       
  2897 	User::WaitForRequest(setConfigStatus);
       
  2898 	ASSERT_EQUALS(KErrNone, setConfigStatus.Int());
       
  2899 
       
  2900 	packetContext.Close();
       
  2901 	packetService.Close();
       
  2902 
       
  2903 	// Let the mock-LTSY finish up before asserting.
       
  2904 	User::After(1000000);
       
  2905 	
       
  2906 	AssertMockLtsyStatusL();
       
  2907 	CleanupStack::PopAndDestroy(4, this); // data, packetService, packetContext, this
       
  2908 	}
       
  2909 
       
  2910 /**
       
  2911 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN0007
       
  2912 @SYMComponent telephony_ctsy
       
  2913 @SYMTestCaseDesc Test support in CTSY for configuration settings using R5
       
  2914 @SYMTestPriority High
       
  2915 @SYMTestActions SetConfig for R5
       
  2916 @SYMTestExpectedResults Pass
       
  2917 @SYMTestType UT
       
  2918  */
       
  2919 void CCTsyPacketServicesFU::TestUnit0007L()
       
  2920 	{
       
  2921 	OpenEtelServerL(EUseExtendedError);
       
  2922 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2923 	OpenPhoneL();
       
  2924 	// client side test
       
  2925 	RPacketService packetService;
       
  2926 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  2927 
       
  2928 
       
  2929 	// Prepare context configuration
       
  2930 	RPacketContext::TContextConfig_R5 setConfigR5;
       
  2931 	setConfigR5.iAccessPointName.Copy(KPointName99);
       
  2932 	setConfigR5.iPdpType = RPacketContext::EPdpTypeIPv4;
       
  2933 	setConfigR5.iPdpAddress.Copy(KPdpAdd99);
       
  2934 	// PCO Configurations
       
  2935 	setConfigR5.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns99);
       
  2936 	setConfigR5.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns99);
       
  2937 	setConfigR5.iProtocolConfigOption.iAuthInfo.iProtocol = RPacketContext::EProtocolCHAP;
       
  2938 	setConfigR5.iProtocolConfigOption.iAuthInfo.iUsername.Copy(KUsername);
       
  2939 	setConfigR5.iProtocolConfigOption.iAuthInfo.iPassword.Copy(KPassword);
       
  2940 	setConfigR5.iProtocolConfigOption.iId = KRequestID;
       
  2941 	RPacketContext::TMiscProtocolBuffer miscBuffer;
       
  2942 	miscBuffer.SetLength(KMaxMiscBufferSize);
       
  2943 	miscBuffer.FillZ();
       
  2944 	TPtr8 miscPtr(miscBuffer.LeftTPtr(miscBuffer.MaxLength()));
       
  2945 	miscPtr.SetLength(0);
       
  2946 
       
  2947 	// TLV struct to store the Misc buffer:
       
  2948 	TTlvStruct<RPacketContext::TPcoId, RPacketContext::TPcoItemDataLength> tlv(miscPtr,0);
       
  2949 
       
  2950     const TUint16 XId=1;
       
  2951     const TUint16 YId=10;
       
  2952 
       
  2953     RPacketContext::TPcoId pcoIdX(XId);
       
  2954     RPacketContext::TPcoId pcoIdY(YId);
       
  2955 
       
  2956     //  BufferX
       
  2957     TBuf8<KAppendableBufferSize> appendableBufferX(_L8("xxx"));
       
  2958     appendableBufferX.SetLength(KAppendableBufferSize);
       
  2959     TPtr8 appendablePtrX(const_cast<TUint8*>(appendableBufferX.Ptr()),appendableBufferX.Length(),appendableBufferX.Length());
       
  2960     //  BufferY
       
  2961     TBuf8<KAppendableBufferSize> appendableBufferY(_L8("yyy"));
       
  2962 	appendableBufferY.SetLength(KAppendableBufferSize);
       
  2963 	TPtr8 appendablePtrY(const_cast<TUint8*>(appendableBufferY.Ptr()),appendableBufferY.Length(),appendableBufferY.Length());
       
  2964 
       
  2965 	//  Append 3 Items to the misc buffer -  X + Y + X
       
  2966 	tlv.AppendItemL(pcoIdX,appendablePtrX);
       
  2967 	tlv.AppendItemL(pcoIdY,appendablePtrY);
       
  2968 	tlv.AppendItemL(pcoIdX,appendablePtrX);
       
  2969 
       
  2970 	setConfigR5.iProtocolConfigOption.iMiscBuffer.Copy(miscBuffer);
       
  2971 	setConfigR5.iProtocolConfigOption.iMiscBuffer.SetLength(miscBuffer.Length());
       
  2972 
       
  2973 	TPckg<RPacketContext::TContextConfig_R5> pckgConfig(setConfigR5);
       
  2974 
       
  2975 	//
       
  2976 
       
  2977 	DriverInitialiseContextL();
       
  2978 
       
  2979 	RBuf8 data;
       
  2980 	CleanupClosePushL(data);
       
  2981 
       
  2982 	TInfoName contextId;
       
  2983 	contextId.Copy(KFirstAllocatedContextName);
       
  2984 	RPacketContext::TGSNAddress accessPointName;
       
  2985 	accessPointName.Copy(KPointName99);
       
  2986 	RPacketContext::TProtocolType pdpType = RPacketContext::EPdpTypeIPv4;
       
  2987 	RPacketContext::TProtocolAddress pdpAddress;
       
  2988 	pdpAddress.Copy(KPdpAdd99);
       
  2989 
       
  2990 	// Create the PCO buffer
       
  2991 	RPacketContext::TMiscProtocolBuffer pcoBuffer;
       
  2992 	pcoBuffer.Zero();
       
  2993 
       
  2994 	// Generate a PCO buffer
       
  2995 	PCOGeneratorL(setConfigR5.iProtocolConfigOption, pcoBuffer);
       
  2996 	setConfigR5.iProtocolConfigOption.iId = KRequestID;
       
  2997 
       
  2998 	TMockLtsyData5<TInfoName,RPacketContext::TGSNAddress, RPacketContext::TProtocolType, RPacketContext::TProtocolAddress, RPacketContext::TMiscProtocolBuffer>
       
  2999 					packetSetConfigData(contextId, accessPointName, pdpType, pdpAddress, pcoBuffer);
       
  3000 	data.Close();
       
  3001 	packetSetConfigData.SerialiseL(data);
       
  3002 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextConfig::KLtsyDispatchPacketServicesSetPdpContextConfigApiId, data, KErrNone);
       
  3003 
       
  3004 	// Indicate that the context name is due to comeback from the SetConfig callback
       
  3005 	TMockLtsyData1<TInfoName> callbackContextIdData(contextId);
       
  3006 	data.Close();
       
  3007 	callbackContextIdData.SerialiseL(data);
       
  3008 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextConfig::KLtsyDispatchPacketServicesSetPdpContextConfigApiId, KErrNone, data);
       
  3009 
       
  3010 	DriverDeleteContextL(contextId);
       
  3011 
       
  3012 	//
       
  3013 
       
  3014 	RPacketContext packetContext;
       
  3015 
       
  3016 	// Open a new context
       
  3017 	packetContext.OpenNewContext(packetService, contextId);
       
  3018 	CleanupClosePushL(packetContext);
       
  3019 
       
  3020 	//Client side test
       
  3021 	RPacketContext::TDataChannelV2 dataChannel;
       
  3022 	RPacketContext::TDataChannelV2Pckg dataChannelPk(dataChannel);
       
  3023 	TRequestStatus initialiseContextStatus;
       
  3024 
       
  3025 	packetContext.InitialiseContext(initialiseContextStatus,dataChannelPk);
       
  3026 	User::WaitForRequest(initialiseContextStatus);
       
  3027 	ASSERT_EQUALS(KErrNone, initialiseContextStatus.Int());
       
  3028 	ASSERT_TRUE(dataChannel.iPort == KFirstAllocatedContextName);	
       
  3029 	ASSERT_TRUE(dataChannel.iChannelId == KDefaultChannelId); // Now deprecated
       
  3030 
       
  3031 	TRequestStatus setConfigStatus;
       
  3032 	packetContext.SetConfig(setConfigStatus, pckgConfig);
       
  3033 
       
  3034 	User::WaitForRequest(setConfigStatus);
       
  3035 	ASSERT_EQUALS(KErrNone, setConfigStatus.Int());
       
  3036 
       
  3037 	packetContext.Close();
       
  3038 	packetService.Close();
       
  3039 
       
  3040 	// Let the mock-LTSY finish up before asserting.
       
  3041 	User::After(1000000);
       
  3042 	
       
  3043 	AssertMockLtsyStatusL();
       
  3044 	CleanupStack::PopAndDestroy(4, this); // data, packetService, packetContext, this
       
  3045 	}
       
  3046 
       
  3047 /**
       
  3048 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN0008
       
  3049 @SYMComponent telephony_ctsy
       
  3050 @SYMTestCaseDesc Test support in CTSY for QoS profile parameters
       
  3051 @SYMTestPriority High
       
  3052 @SYMTestActions Invokes RPacketQoS::SetProfileParameters() only for GPRS, R99 and R5
       
  3053 @SYMTestExpectedResults Pass
       
  3054 @SYMTestType UT
       
  3055  */
       
  3056 void CCTsyPacketServicesFU::TestUnit0008L()
       
  3057 	{
       
  3058 
       
  3059 	OpenEtelServerL(EUseExtendedError);
       
  3060 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3061 	OpenPhoneL();
       
  3062 	
       
  3063 	RPacketService packetService;
       
  3064 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  3065 
       
  3066 	RBuf8 data;
       
  3067 	CleanupClosePushL(data);
       
  3068 
       
  3069 	TInfoName contextId;
       
  3070 	contextId.Copy(KFirstAllocatedContextName);
       
  3071 
       
  3072 	//
       
  3073 
       
  3074 	DriverInitialiseContextL();
       
  3075 
       
  3076 	// GPRS Configuration
       
  3077 	RPacketQoS::TQoSGPRSRequested qosExpectedRequestedGPRSProfile;
       
  3078 	qosExpectedRequestedGPRSProfile.iReqPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  3079 	qosExpectedRequestedGPRSProfile.iMinPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  3080 	qosExpectedRequestedGPRSProfile.iReqDelay = RPacketQoS::EUnspecifiedDelayClass;
       
  3081 	qosExpectedRequestedGPRSProfile.iMinDelay = RPacketQoS::EUnspecifiedDelayClass;
       
  3082 	qosExpectedRequestedGPRSProfile.iReqReliability = RPacketQoS::EUnspecifiedReliabilityClass;
       
  3083 	qosExpectedRequestedGPRSProfile.iMinReliability = RPacketQoS::EUnspecifiedReliabilityClass;
       
  3084 	qosExpectedRequestedGPRSProfile.iReqPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  3085 	qosExpectedRequestedGPRSProfile.iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  3086 	qosExpectedRequestedGPRSProfile.iReqMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
       
  3087 	qosExpectedRequestedGPRSProfile.iMinMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
       
  3088 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSGPRSRequested> packetSetConfigGPRSData(contextId,
       
  3089 																				qosExpectedRequestedGPRSProfile);
       
  3090 	data.Close();
       
  3091 	packetSetConfigGPRSData.SerialiseL(data);
       
  3092 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  3093 
       
  3094 	TMockLtsyData1<TInfoName> callbackSetPdpGPRSContextNameData(contextId);
       
  3095 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  3096 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  3097 
       
  3098 	RPacketQoS::TQoSGPRSNegotiated completedProfileGPRS;
       
  3099 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSGPRSNegotiated> expLtsyQosProfileGPRSChangedInd(contextId, completedProfileGPRS);
       
  3100 	data.Close();
       
  3101 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  3102 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);
       
  3103 	
       
  3104 	// R99_R4 Configuration
       
  3105 	RPacketQoS::TQoSR99_R4Requested expectedPacketR99_R4Profile;
       
  3106 	expectedPacketR99_R4Profile.iMinTrafficClass = RPacketQoS::ETrafficClassUnspecified;
       
  3107 	expectedPacketR99_R4Profile.iMinDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
       
  3108 	expectedPacketR99_R4Profile.iMinDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
       
  3109 	expectedPacketR99_R4Profile.iMaxBER = RPacketQoS::EBERUnspecified;
       
  3110 	expectedPacketR99_R4Profile.iMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
       
  3111 	expectedPacketR99_R4Profile.iMinTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
       
  3112 	expectedPacketR99_R4Profile.iReqTrafficClass = RPacketQoS::ETrafficClassUnspecified;
       
  3113 	expectedPacketR99_R4Profile.iReqDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
       
  3114 	expectedPacketR99_R4Profile.iReqDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
       
  3115 	expectedPacketR99_R4Profile.iReqBER = RPacketQoS::EBERUnspecified;
       
  3116 	expectedPacketR99_R4Profile.iReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
       
  3117 	expectedPacketR99_R4Profile.iReqTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
       
  3118 	expectedPacketR99_R4Profile.iMaxTransferDelay = 0;
       
  3119 	expectedPacketR99_R4Profile.iMinAcceptableMaxRate.iDownlinkRate = 0;
       
  3120 	expectedPacketR99_R4Profile.iMinAcceptableMaxRate.iUplinkRate = 0;
       
  3121 	expectedPacketR99_R4Profile.iMinAcceptableMaxSDUSize = 0;
       
  3122 	expectedPacketR99_R4Profile.iMinGuaranteedRate.iDownlinkRate = 0;
       
  3123 	expectedPacketR99_R4Profile.iMinGuaranteedRate.iUplinkRate = 0;
       
  3124 	expectedPacketR99_R4Profile.iReqGuaranteedRate.iDownlinkRate = 0;
       
  3125 	expectedPacketR99_R4Profile.iReqGuaranteedRate.iUplinkRate = 0;
       
  3126 	expectedPacketR99_R4Profile.iReqMaxRate.iDownlinkRate = 0;
       
  3127 	expectedPacketR99_R4Profile.iReqMaxRate.iUplinkRate = 0;
       
  3128 	expectedPacketR99_R4Profile.iReqMaxSDUSize = 0;
       
  3129 	expectedPacketR99_R4Profile.iReqTransferDelay = 0;
       
  3130 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSR99_R4Requested> packetSetConfigR99_R4Data(contextId,
       
  3131 																					expectedPacketR99_R4Profile);
       
  3132 	data.Close();
       
  3133 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  3134 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  3135 
       
  3136 	TMockLtsyData1<TInfoName> callbackSetPdpR99_R4ContextNameData(contextId);
       
  3137 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  3138 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  3139 	
       
  3140 	RPacketQoS::TQoSR99_R4Negotiated completedProfileR99;
       
  3141 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSR99_R4Negotiated> expLtsyQosProfileR99ChangedInd(contextId, completedProfileR99);
       
  3142 	data.Close();
       
  3143 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  3144 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);
       
  3145 
       
  3146 	// R5 Configuration
       
  3147 	RPacketQoS::TQoSR5Requested expectedPacketR5Profile;
       
  3148 	expectedPacketR5Profile.iSignallingIndication = EFalse;
       
  3149 	expectedPacketR5Profile.iSourceStatisticsDescriptor = RPacketQoS::ESourceStatisticsDescriptorUnknown;
       
  3150 	expectedPacketR5Profile.iMaxBER = RPacketQoS::EBERUnspecified;
       
  3151 	expectedPacketR5Profile.iMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
       
  3152 	expectedPacketR5Profile.iMinDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
       
  3153 	expectedPacketR5Profile.iMinDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
       
  3154 	expectedPacketR5Profile.iMinTrafficClass = RPacketQoS::ETrafficClassUnspecified;
       
  3155 	expectedPacketR5Profile.iMinTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
       
  3156 	expectedPacketR5Profile.iReqBER = RPacketQoS::EBERUnspecified;
       
  3157 	expectedPacketR5Profile.iReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
       
  3158 	expectedPacketR5Profile.iReqDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
       
  3159 	expectedPacketR5Profile.iReqDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
       
  3160 	expectedPacketR5Profile.iReqTrafficClass = RPacketQoS::ETrafficClassUnspecified;
       
  3161 	expectedPacketR5Profile.iReqTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
       
  3162 
       
  3163 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSR5Requested> packetSetConfigR5Data(contextId, expectedPacketR5Profile);
       
  3164 	data.Close();
       
  3165 	packetSetConfigR5Data.SerialiseL(data);
       
  3166 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR5::KLtsyDispatchPacketServicesSetPdpContextQosR5ApiId, data, KErrNone);
       
  3167 
       
  3168 	TMockLtsyData1<TInfoName> callbackSetPdpR5ContextNameData(contextId);
       
  3169 	callbackSetPdpR5ContextNameData.SerialiseL(data);
       
  3170 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR5::KLtsyDispatchPacketServicesSetPdpContextQosR5ApiId, KErrNone, data);
       
  3171 	
       
  3172 	RPacketQoS::TQoSR5Negotiated completedProfileR5;
       
  3173 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSR5Negotiated> expLtsyQosProfileR5ChangedInd(contextId, completedProfileR5);
       
  3174 	data.Close();
       
  3175 	expLtsyQosProfileR5ChangedInd.SerialiseL(data);
       
  3176 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);
       
  3177 
       
  3178 	DriverDeleteContextL(contextId);
       
  3179 
       
  3180 	//
       
  3181 
       
  3182 	// client side test
       
  3183 	RPacketContext packetContext;
       
  3184 
       
  3185 	// Open a new context
       
  3186 	TInt err = packetContext.OpenNewContext(packetService, contextId);
       
  3187 	CleanupClosePushL(packetContext);
       
  3188 	ASSERT_EQUALS(KErrNone, err);
       
  3189 
       
  3190 	RPacketContext::TDataChannelV2 dataChannel;
       
  3191 	RPacketContext::TDataChannelV2Pckg dataChannelPk(dataChannel);
       
  3192 	TRequestStatus initialiseContextStatus;
       
  3193 
       
  3194 	packetContext.InitialiseContext(initialiseContextStatus,dataChannelPk);
       
  3195 	User::WaitForRequest(initialiseContextStatus);
       
  3196 	ASSERT_EQUALS(KErrNone, initialiseContextStatus.Int());
       
  3197 	ASSERT_TRUE(dataChannel.iPort == KFirstAllocatedContextName);
       
  3198 	ASSERT_TRUE(dataChannel.iChannelId == KDefaultChannelId); // Now depreciated
       
  3199 
       
  3200 	TName qosName;
       
  3201 	RPacketQoS packetQoS;
       
  3202 	packetQoS.OpenNewQoS(packetContext, qosName);
       
  3203 	CleanupClosePushL(packetQoS);
       
  3204 
       
  3205 	//
       
  3206     // SetProfileParameters for GPRS Configurations
       
  3207     //
       
  3208 
       
  3209 	RPacketQoS::TQoSGPRSRequested qosGPRSRequestedProfile;
       
  3210 	qosGPRSRequestedProfile.iReqPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  3211 	qosGPRSRequestedProfile.iMinPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  3212 	qosGPRSRequestedProfile.iReqDelay = RPacketQoS::EUnspecifiedDelayClass;
       
  3213 	qosGPRSRequestedProfile.iMinDelay = RPacketQoS::EUnspecifiedDelayClass;
       
  3214 	qosGPRSRequestedProfile.iReqReliability = RPacketQoS::EUnspecifiedReliabilityClass;
       
  3215 	qosGPRSRequestedProfile.iMinReliability = RPacketQoS::EUnspecifiedReliabilityClass;
       
  3216 	qosGPRSRequestedProfile.iReqPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  3217 	qosGPRSRequestedProfile.iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  3218 	qosGPRSRequestedProfile.iReqMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
       
  3219 	qosGPRSRequestedProfile.iMinMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
       
  3220     TPckg<RPacketQoS::TQoSGPRSRequested> profilePckgGPRS(qosGPRSRequestedProfile);
       
  3221 
       
  3222     TRequestStatus notifyGPRSChangeStatus;
       
  3223 	RPacketQoS::TQoSGPRSNegotiated profileGPRS;
       
  3224 	TPckg<RPacketQoS::TQoSGPRSNegotiated> qosGPRSNegotiatedProfilePk(profileGPRS);
       
  3225 	packetQoS.NotifyProfileChanged(notifyGPRSChangeStatus, qosGPRSNegotiatedProfilePk);
       
  3226     
       
  3227 	TRequestStatus requestStatusGPRS;
       
  3228 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  3229 	User::WaitForRequest(requestStatusGPRS);
       
  3230 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  3231 	
       
  3232 	// Complete NotifyProfileChanged
       
  3233 	User::WaitForRequest(notifyGPRSChangeStatus);
       
  3234 	ASSERT_EQUALS(KErrNone, notifyGPRSChangeStatus.Int());
       
  3235 
       
  3236 	//
       
  3237     // SetProfileParameters for R99R4 Configurations
       
  3238     //
       
  3239 
       
  3240 	RPacketQoS::TQoSR99_R4Requested packetR99_R4;
       
  3241 	packetR99_R4.iMinTrafficClass = RPacketQoS::ETrafficClassUnspecified;
       
  3242 	packetR99_R4.iMinDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
       
  3243 	packetR99_R4.iMinDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
       
  3244 	packetR99_R4.iMaxBER = RPacketQoS::EBERUnspecified;
       
  3245 	packetR99_R4.iMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
       
  3246 	packetR99_R4.iMinTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
       
  3247 	packetR99_R4.iReqTrafficClass = RPacketQoS::ETrafficClassUnspecified;
       
  3248 	packetR99_R4.iReqDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
       
  3249 	packetR99_R4.iReqDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
       
  3250 	packetR99_R4.iReqBER = RPacketQoS::EBERUnspecified;
       
  3251 	packetR99_R4.iReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
       
  3252 	packetR99_R4.iReqTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
       
  3253 	packetR99_R4.iMaxTransferDelay = 0;
       
  3254 	packetR99_R4.iMinAcceptableMaxRate.iDownlinkRate = 0;
       
  3255 	packetR99_R4.iMinAcceptableMaxRate.iUplinkRate = 0;
       
  3256 	packetR99_R4.iMinAcceptableMaxSDUSize = 0;
       
  3257 	packetR99_R4.iMinGuaranteedRate.iDownlinkRate = 0;
       
  3258 	packetR99_R4.iMinGuaranteedRate.iUplinkRate = 0;
       
  3259 	packetR99_R4.iReqGuaranteedRate.iDownlinkRate = 0;
       
  3260 	packetR99_R4.iReqGuaranteedRate.iUplinkRate = 0;
       
  3261 	packetR99_R4.iReqMaxRate.iDownlinkRate = 0;
       
  3262 	packetR99_R4.iReqMaxRate.iUplinkRate = 0;
       
  3263 	packetR99_R4.iReqMaxSDUSize = 0;
       
  3264 	packetR99_R4.iReqTransferDelay = 0;
       
  3265 	TPckg< RPacketQoS::TQoSR99_R4Requested > profilePckgR99_R4(packetR99_R4);
       
  3266 	
       
  3267 	TRequestStatus notifyR99ChangeStatus;
       
  3268 	RPacketQoS::TQoSR99_R4Negotiated profileR99;
       
  3269 	TPckg<RPacketQoS::TQoSR99_R4Negotiated> qos99NegotiatedProfilePk(profileR99);
       
  3270 	packetQoS.NotifyProfileChanged(notifyR99ChangeStatus, qos99NegotiatedProfilePk);
       
  3271 		
       
  3272 	TRequestStatus requestStatusR99_R4;
       
  3273 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  3274 	User::WaitForRequest(requestStatusR99_R4);
       
  3275 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());
       
  3276 	
       
  3277 	// Complete NotifyProfileChanged
       
  3278 	User::WaitForRequest(notifyR99ChangeStatus);
       
  3279 	ASSERT_EQUALS(KErrNone, notifyR99ChangeStatus.Int());
       
  3280 
       
  3281 	//
       
  3282     // SetProfileParameters for R5 Configurations
       
  3283     //
       
  3284 
       
  3285 	RPacketQoS::TQoSR5Requested packetR5;
       
  3286 	packetR5.iSignallingIndication = EFalse;
       
  3287 	packetR5.iSourceStatisticsDescriptor = RPacketQoS::ESourceStatisticsDescriptorUnknown;
       
  3288 	packetR5.iMaxBER = RPacketQoS::EBERUnspecified;
       
  3289 	packetR5.iMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
       
  3290 	packetR5.iMinDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
       
  3291 	packetR5.iMinDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
       
  3292 	packetR5.iMinTrafficClass = RPacketQoS::ETrafficClassUnspecified;
       
  3293 	packetR5.iMinTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
       
  3294 	packetR5.iReqBER = RPacketQoS::EBERUnspecified;
       
  3295 	packetR5.iReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
       
  3296 	packetR5.iReqDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
       
  3297 	packetR5.iReqDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
       
  3298 	packetR5.iReqTrafficClass = RPacketQoS::ETrafficClassUnspecified;
       
  3299 	packetR5.iReqTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
       
  3300 	TPckg< RPacketQoS::TQoSR5Requested > profilePckgR5(packetR5);
       
  3301 
       
  3302 	TRequestStatus notifyR5ChangeStatus;
       
  3303 	RPacketQoS::TQoSR5Negotiated profileR5;
       
  3304 	TPckg<RPacketQoS::TQoSR5Negotiated> qosR5NegotiatedProfilePk(profileR5);
       
  3305 	packetQoS.NotifyProfileChanged(notifyR5ChangeStatus, qosR5NegotiatedProfilePk);
       
  3306 	
       
  3307 	TRequestStatus requestStatusR5;
       
  3308 	packetQoS.SetProfileParameters(requestStatusR5, profilePckgR5);
       
  3309 	User::WaitForRequest(requestStatusR5);
       
  3310 	ASSERT_EQUALS(KErrNone, requestStatusR5.Int());
       
  3311 	
       
  3312 	// Complete NotifyProfileChanged
       
  3313 	User::WaitForRequest(notifyR5ChangeStatus);
       
  3314 	ASSERT_EQUALS(KErrNone, notifyR5ChangeStatus.Int());
       
  3315 
       
  3316 	packetQoS.Close();
       
  3317 	packetContext.Close();
       
  3318 	packetService.Close();
       
  3319 
       
  3320 	// Let the mock-LTSY finish up before asserting.
       
  3321 	User::After(1000000);
       
  3322 	
       
  3323 	AssertMockLtsyStatusL();
       
  3324 	CleanupStack::PopAndDestroy(5, this); // data, packetService, packetContext, this
       
  3325 	}
       
  3326 
       
  3327 /**
       
  3328 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN0009 
       
  3329 @SYMComponent telephony_ctsy
       
  3330 @SYMTestCaseDesc Test support in CTSY for RPacketService::RejectActivationRequest
       
  3331 @SYMTestPriority High
       
  3332 @SYMTestActions Invokes RPacketService::RejectActivationRequest()
       
  3333 @SYMTestExpectedResults Pass
       
  3334 @SYMTestType UT
       
  3335  */
       
  3336 void CCTsyPacketServicesFU::TestUnit0009L()
       
  3337 	{
       
  3338 	OpenEtelServerL(EUseExtendedError);
       
  3339 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3340 	OpenPhoneL();
       
  3341 
       
  3342 	RPacketService packetService;
       
  3343 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  3344 
       
  3345 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesRejectNetworkInitiatedContextActivationRequest::KLtsyDispatchPacketServicesRejectNetworkInitiatedContextActivationRequestApiId);
       
  3346 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesRejectNetworkInitiatedContextActivationRequest::KLtsyDispatchPacketServicesRejectNetworkInitiatedContextActivationRequestApiId, KErrNone);
       
  3347 
       
  3348 	TRequestStatus requestStatus;
       
  3349 	packetService.RejectActivationRequest(requestStatus);
       
  3350 
       
  3351 	User::WaitForRequest(requestStatus);
       
  3352 	ASSERT_EQUALS(KErrNone, requestStatus.Int());
       
  3353 
       
  3354 	packetService.Close();
       
  3355 	
       
  3356 	// Let the mock-LTSY finish up before asserting.
       
  3357 	User::After(1000000);
       
  3358 	
       
  3359 	AssertMockLtsyStatusL();
       
  3360 	CleanupStack::PopAndDestroy(2, this);
       
  3361 	}
       
  3362 
       
  3363 /**
       
  3364 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00010
       
  3365 @SYMComponent telephony_ctsy
       
  3366 @SYMTestCaseDesc Test support in CTSY for notification of transfer capability.
       
  3367 @SYMTestPriority High
       
  3368 @SYMTestActions Invokes RPacketContext::NotifyDynamicCapsChange()
       
  3369 @SYMTestExpectedResults Pass
       
  3370 @SYMTestType UT
       
  3371  */
       
  3372 void CCTsyPacketServicesFU::TestUnit00010L()
       
  3373 	{
       
  3374 	OpenEtelServerL(EUseExtendedError);
       
  3375 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3376 	OpenPhoneL();
       
  3377 	RBuf8 data;
       
  3378 	CleanupClosePushL(data);
       
  3379 
       
  3380 	RPacketService packetService;
       
  3381 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  3382 
       
  3383 
       
  3384 	TDynamicTransferCapsFlags transferCaps = KCapsHSDPA;
       
  3385   	TMockLtsyData1< TDynamicTransferCapsFlags > ltsyData(transferCaps);
       
  3386   	ltsyData.SerialiseL(data);
       
  3387 
       
  3388 
       
  3389 	TInfoName contextId;
       
  3390 	contextId.Copy(KFirstAllocatedContextName);
       
  3391 
       
  3392 	//
       
  3393 	// client side test
       
  3394 	
       
  3395 	//send request
       
  3396 	TRequestStatus requestStatus;
       
  3397 	RPacketService::TDynamicCapsFlags dynamicCapsFlags;
       
  3398 
       
  3399 	// Required as changes to transfer capability changes the dynamic capabilities
       
  3400 	packetService.NotifyDynamicCapsChange(requestStatus, dynamicCapsFlags);
       
  3401 	// Issue the Complete...
       
  3402 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyRatTransferCapsChangeIndId, KErrNone, data);
       
  3403 	
       
  3404 	User::WaitForRequest(requestStatus);
       
  3405 
       
  3406 	//expected dynamic caps according to transferCaps being KCapsHSDPA
       
  3407 	RPacketService::TDynamicCapsFlags dynamicCaps;
       
  3408 	dynamicCaps = 0;
       
  3409       dynamicCaps |= RPacketService::KCapsHSDPA;
       
  3410 
       
  3411 	ASSERT_EQUALS(KErrNone, requestStatus.Int());
       
  3412 	ASSERT_EQUALS(dynamicCapsFlags, dynamicCaps);
       
  3413 	
       
  3414 	packetService.Close();
       
  3415 	
       
  3416 	// Let the mock-LTSY finish up before asserting.
       
  3417 	User::After(1000000);
       
  3418 	
       
  3419 	AssertMockLtsyStatusL();
       
  3420 	CleanupStack::PopAndDestroy(3, this);
       
  3421 	}
       
  3422 
       
  3423 /**
       
  3424 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00011A
       
  3425 @SYMComponent telephony_ctsy
       
  3426 @SYMTestCaseDesc Test support in CTSY for NotifyContextActivationRequested GPRS
       
  3427 @SYMTestPriority High
       
  3428 @SYMTestActions Invokes NotifyContextActivationRequested
       
  3429 @SYMTestExpectedResults Pass
       
  3430 @SYMTestType UT
       
  3431  */
       
  3432 void CCTsyPacketServicesFU::TestUnit00011AL()
       
  3433 	{
       
  3434 	OpenEtelServerL(EUseExtendedError);
       
  3435 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3436 	OpenPhoneL();
       
  3437 
       
  3438 	RPacketService packetService;
       
  3439 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  3440 
       
  3441 	RBuf8 data;
       
  3442 	CleanupClosePushL(data);
       
  3443 
       
  3444   	//-------------------------------------------------------------------------
       
  3445 	// TEST A: Successful completion request of
       
  3446 	// RPacketService::NotifyContextActivationRequested
       
  3447  	//-------------------------------------------------------------------------
       
  3448 	
       
  3449 	// GPRS test
       
  3450 	RPacketContext::TContextConfigGPRS contextConfigGPRS;
       
  3451 	contextConfigGPRS.iPdpType = RPacketContext::EPdpTypeIPv6;
       
  3452 	contextConfigGPRS.iPdpAddress.Copy(KAddress);
       
  3453 	contextConfigGPRS.iAccessPointName.Copy(KAPN);
       
  3454 	
       
  3455 	TMockLtsyData1 <RPacketContext::TContextConfigGPRS> ltsyData(contextConfigGPRS);
       
  3456 	data.Close();
       
  3457 	ltsyData.SerialiseL(data);
       
  3458 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyNetworkInitiatedContextActivationRequestIndId, KErrNone, data);
       
  3459 
       
  3460 	TRequestStatus requestStatus;
       
  3461 	RPacketContext::TContextConfigGPRS getContextParam;
       
  3462 	TPckg<RPacketContext::TContextConfigGPRS> pckgParam(getContextParam);
       
  3463 	packetService.NotifyContextActivationRequested(requestStatus, pckgParam);
       
  3464 	User::WaitForRequest(requestStatus);
       
  3465 
       
  3466 	ASSERT_EQUALS(KErrNone, requestStatus.Int());
       
  3467 	ASSERT_EQUALS(getContextParam.iPdpType, contextConfigGPRS.iPdpType);
       
  3468 	ASSERT_EQUALS(getContextParam.iPdpAddress, contextConfigGPRS.iPdpAddress);
       
  3469 	ASSERT_EQUALS(getContextParam.iAccessPointName, contextConfigGPRS.iAccessPointName);
       
  3470 
       
  3471 	
       
  3472 	AssertMockLtsyStatusL();
       
  3473 	CleanupStack::PopAndDestroy(3, this); // data, packetService, this
       
  3474 	}
       
  3475 
       
  3476 /**
       
  3477 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00011B
       
  3478 @SYMComponent telephony_ctsy
       
  3479 @SYMTestCaseDesc Test support in CTSY for NotifyContextActivationRequested R99_R4
       
  3480 @SYMTestPriority High
       
  3481 @SYMTestActions Invokes NotifyContextActivationRequested
       
  3482 @SYMTestExpectedResults Pass
       
  3483 @SYMTestType UT
       
  3484  */
       
  3485 void CCTsyPacketServicesFU::TestUnit00011BL()
       
  3486 	{
       
  3487 	OpenEtelServerL(EUseExtendedError);
       
  3488 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3489 	OpenPhoneL();
       
  3490 
       
  3491 	RPacketService packetService;
       
  3492 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  3493 
       
  3494 	RBuf8 data;
       
  3495 	CleanupClosePushL(data);
       
  3496 
       
  3497   	//-------------------------------------------------------------------------
       
  3498 	// TEST A: Successful completion request of
       
  3499 	// RPacketService::NotifyContextActivationRequested
       
  3500  	//-------------------------------------------------------------------------
       
  3501 	
       
  3502 	// R99_R4 test 
       
  3503 	RPacketContext::TContextConfigR99_R4 contextConfigR99;
       
  3504 	contextConfigR99.iAccessPointName.Copy(KPointName99);
       
  3505 	contextConfigR99.iPdpType = RPacketContext::EPdpTypeIPv4;
       
  3506 	contextConfigR99.iPdpAddress.Copy(KPdpAdd99);
       
  3507 	contextConfigR99.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns);
       
  3508 	contextConfigR99.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns);
       
  3509 	contextConfigR99.iProtocolConfigOption.iAuthInfo.iProtocol = RPacketContext::EProtocolCHAP;
       
  3510 	contextConfigR99.iProtocolConfigOption.iAuthInfo.iUsername.Copy(KUsername);
       
  3511 	contextConfigR99.iProtocolConfigOption.iAuthInfo.iPassword.Copy(KPassword);
       
  3512 	contextConfigR99.iProtocolConfigOption.iId = KRequestID;
       
  3513 	
       
  3514 	TMockLtsyData1 <RPacketContext::TContextConfigR99_R4> ltsyData(contextConfigR99);
       
  3515 	data.Close();
       
  3516 	ltsyData.SerialiseL(data);
       
  3517 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyNetworkInitiatedContextActivationRequestIndId, KErrNone, data);
       
  3518 
       
  3519 	TRequestStatus requestStatus;
       
  3520 	RPacketContext::TContextConfigR99_R4 getContextParam;
       
  3521 	TPckg<RPacketContext::TContextConfigR99_R4> pckgParam(getContextParam);
       
  3522 	packetService.NotifyContextActivationRequested(requestStatus, pckgParam);
       
  3523 	User::WaitForRequest(requestStatus);
       
  3524 
       
  3525 	ASSERT_EQUALS(KErrNone, requestStatus.Int());
       
  3526 	ASSERT_EQUALS(getContextParam.iPdpType, contextConfigR99.iPdpType);
       
  3527 	ASSERT_EQUALS(getContextParam.iPdpAddress, contextConfigR99.iPdpAddress);
       
  3528 	ASSERT_EQUALS(getContextParam.iAccessPointName, contextConfigR99.iAccessPointName);
       
  3529 
       
  3530 	ASSERT_EQUALS(getContextParam.iProtocolConfigOption.iDnsAddresses.iPrimaryDns, contextConfigR99.iProtocolConfigOption.iDnsAddresses.iPrimaryDns);	
       
  3531 	ASSERT_EQUALS(getContextParam.iProtocolConfigOption.iDnsAddresses.iSecondaryDns, contextConfigR99.iProtocolConfigOption.iDnsAddresses.iSecondaryDns);	
       
  3532 	ASSERT_EQUALS(getContextParam.iProtocolConfigOption.iAuthInfo.iProtocol, contextConfigR99.iProtocolConfigOption.iAuthInfo.iProtocol);
       
  3533 	ASSERT_EQUALS(getContextParam.iProtocolConfigOption.iAuthInfo.iUsername, contextConfigR99.iProtocolConfigOption.iAuthInfo.iUsername);	
       
  3534 	ASSERT_EQUALS(getContextParam.iProtocolConfigOption.iAuthInfo.iPassword, contextConfigR99.iProtocolConfigOption.iAuthInfo.iPassword);
       
  3535 	ASSERT_EQUALS(getContextParam.iProtocolConfigOption.iId, contextConfigR99.iProtocolConfigOption.iId);
       
  3536 	
       
  3537 	AssertMockLtsyStatusL();
       
  3538 	CleanupStack::PopAndDestroy(3, this); // data, packetService, this
       
  3539 	}
       
  3540 
       
  3541 /**
       
  3542 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00011C
       
  3543 @SYMComponent telephony_ctsy
       
  3544 @SYMTestCaseDesc Test support in CTSY for NotifyContextActivationRequested R5
       
  3545 @SYMTestPriority High
       
  3546 @SYMTestActions Invokes NotifyContextActivationRequested
       
  3547 @SYMTestExpectedResults Pass
       
  3548 @SYMTestType UT
       
  3549  */
       
  3550 void CCTsyPacketServicesFU::TestUnit00011CL()
       
  3551 	{
       
  3552 	OpenEtelServerL(EUseExtendedError);
       
  3553 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3554 	OpenPhoneL();
       
  3555 
       
  3556 	RPacketService packetService;
       
  3557 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  3558 
       
  3559 	RBuf8 data;
       
  3560 	CleanupClosePushL(data);
       
  3561 
       
  3562   	//-------------------------------------------------------------------------
       
  3563 	// TEST A: Successful completion request of
       
  3564 	// RPacketService::NotifyContextActivationRequested
       
  3565  	//-------------------------------------------------------------------------
       
  3566 	
       
  3567 	// R5 test 
       
  3568 	
       
  3569 	RPacketContext::TContextConfig_R5 contextConfigR5;
       
  3570 	contextConfigR5.iAccessPointName.Copy(KPointName99);
       
  3571 	contextConfigR5.iPdpType = RPacketContext::EPdpTypeIPv4;
       
  3572 	contextConfigR5.iPdpAddress.Copy(KPdpAdd99);
       
  3573 	// PCO Configurations
       
  3574 	contextConfigR5.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns99);
       
  3575 	contextConfigR5.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns99);
       
  3576 	contextConfigR5.iProtocolConfigOption.iAuthInfo.iProtocol = RPacketContext::EProtocolCHAP;
       
  3577 	contextConfigR5.iProtocolConfigOption.iAuthInfo.iUsername.Copy(KUsername);
       
  3578 	contextConfigR5.iProtocolConfigOption.iAuthInfo.iPassword.Copy(KPassword);
       
  3579 	contextConfigR5.iProtocolConfigOption.iId = KRequestID;
       
  3580 	RPacketContext::TMiscProtocolBuffer miscBuffer;
       
  3581 	miscBuffer.SetLength(KMaxMiscBufferSize);
       
  3582 	miscBuffer.FillZ();
       
  3583 	TPtr8 miscPtr(miscBuffer.LeftTPtr(miscBuffer.MaxLength()));
       
  3584 	miscPtr.SetLength(0);
       
  3585 
       
  3586 	// TLV struct to store the Misc buffer:
       
  3587 	TTlvStruct<RPacketContext::TPcoId, RPacketContext::TPcoItemDataLength> tlv(miscPtr,0);
       
  3588 
       
  3589     const TUint16 XId=1;
       
  3590     const TUint16 YId=10;
       
  3591 
       
  3592     RPacketContext::TPcoId pcoIdX(XId);
       
  3593     RPacketContext::TPcoId pcoIdY(YId);
       
  3594 
       
  3595     //  BufferX
       
  3596     TBuf8<KAppendableBufferSize> appendableBufferX(_L8("xxx"));
       
  3597     appendableBufferX.SetLength(KAppendableBufferSize);
       
  3598     TPtr8 appendablePtrX(const_cast<TUint8*>(appendableBufferX.Ptr()),appendableBufferX.Length(),appendableBufferX.Length());
       
  3599     //  BufferY
       
  3600     TBuf8<KAppendableBufferSize> appendableBufferY(_L8("yyy"));
       
  3601 	appendableBufferY.SetLength(KAppendableBufferSize);
       
  3602 	TPtr8 appendablePtrY(const_cast<TUint8*>(appendableBufferY.Ptr()),appendableBufferY.Length(),appendableBufferY.Length());
       
  3603 
       
  3604 	//  Append 3 Items to the misc buffer -  X + Y + X
       
  3605 	tlv.AppendItemL(pcoIdX,appendablePtrX);
       
  3606 	tlv.AppendItemL(pcoIdY,appendablePtrY);
       
  3607 	tlv.AppendItemL(pcoIdX,appendablePtrX);
       
  3608 
       
  3609 	contextConfigR5.iProtocolConfigOption.iMiscBuffer.Copy(miscBuffer);
       
  3610 	contextConfigR5.iProtocolConfigOption.iMiscBuffer.SetLength(miscBuffer.Length());
       
  3611 	
       
  3612 	TMockLtsyData1 <RPacketContext::TContextConfig_R5> ltsyData(contextConfigR5);
       
  3613 	data.Close();
       
  3614 	ltsyData.SerialiseL(data);
       
  3615 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyNetworkInitiatedContextActivationRequestIndId, KErrNone, data);
       
  3616 
       
  3617 	TRequestStatus requestStatus;
       
  3618 	RPacketContext::TContextConfig_R5 getContextParam;
       
  3619 	TPckg<RPacketContext::TContextConfig_R5> pckgParam(getContextParam);
       
  3620 	packetService.NotifyContextActivationRequested(requestStatus, pckgParam);
       
  3621 	User::WaitForRequest(requestStatus);
       
  3622 
       
  3623 	ASSERT_EQUALS(KErrNone, requestStatus.Int());
       
  3624 	ASSERT_EQUALS(getContextParam.iPdpType, contextConfigR5.iPdpType);
       
  3625 	ASSERT_EQUALS(getContextParam.iPdpAddress, contextConfigR5.iPdpAddress);
       
  3626 	ASSERT_EQUALS(getContextParam.iAccessPointName, contextConfigR5.iAccessPointName);
       
  3627 
       
  3628 	ASSERT_EQUALS(getContextParam.iProtocolConfigOption.iDnsAddresses.iPrimaryDns, contextConfigR5.iProtocolConfigOption.iDnsAddresses.iPrimaryDns);	
       
  3629 	ASSERT_EQUALS(getContextParam.iProtocolConfigOption.iDnsAddresses.iSecondaryDns, contextConfigR5.iProtocolConfigOption.iDnsAddresses.iSecondaryDns);	
       
  3630 	ASSERT_EQUALS(getContextParam.iProtocolConfigOption.iAuthInfo.iProtocol, contextConfigR5.iProtocolConfigOption.iAuthInfo.iProtocol);
       
  3631 	ASSERT_EQUALS(getContextParam.iProtocolConfigOption.iAuthInfo.iUsername, contextConfigR5.iProtocolConfigOption.iAuthInfo.iUsername);	
       
  3632 	ASSERT_EQUALS(getContextParam.iProtocolConfigOption.iAuthInfo.iPassword, contextConfigR5.iProtocolConfigOption.iAuthInfo.iPassword);
       
  3633 	ASSERT_EQUALS(getContextParam.iProtocolConfigOption.iId, contextConfigR5.iProtocolConfigOption.iId);
       
  3634 	ASSERT_EQUALS(getContextParam.iProtocolConfigOption.iMiscBuffer, contextConfigR5.iProtocolConfigOption.iMiscBuffer);
       
  3635 		
       
  3636 	
       
  3637 	AssertMockLtsyStatusL();
       
  3638 	CleanupStack::PopAndDestroy(3, this); // data, packetService, this
       
  3639 	}
       
  3640 
       
  3641 
       
  3642 /**
       
  3643 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00012
       
  3644 @SYMComponent telephony_ctsy
       
  3645 @SYMTestCaseDesc Test support in CTSY for NotifyMSClassChange
       
  3646 @SYMTestPriority High
       
  3647 @SYMTestActions Invokes NotifyMSClassChange
       
  3648 @SYMTestExpectedResults Pass
       
  3649 @SYMTestType UT
       
  3650  */
       
  3651 void CCTsyPacketServicesFU::TestUnit00012L()
       
  3652 	{
       
  3653 	OpenEtelServerL(EUseExtendedError);
       
  3654 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3655 	OpenPhoneL();
       
  3656 
       
  3657 	RPacketService packetService;
       
  3658 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  3659 	
       
  3660 	RBuf8 data;
       
  3661 	CleanupClosePushL(data);
       
  3662 
       
  3663   	//pack context param for completion into data
       
  3664 	RPacketService::TMSClass tMSclassReturn = RPacketService::EMSClassDualMode;
       
  3665 	TMockLtsyData1<RPacketService::TMSClass> expLtsyMSClassChangeInd(tMSclassReturn);
       
  3666 	data.Close();
       
  3667 	expLtsyMSClassChangeInd.SerialiseL(data);
       
  3668 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyPacketMsClassChangeIndId, KErrNone, data);
       
  3669 
       
  3670 	//-------------------------------------------------------------------------
       
  3671 	// TEST: Notify MS Class Change
       
  3672  	//-------------------------------------------------------------------------
       
  3673 	TRequestStatus notifyMSClassChangeStatus;
       
  3674 	RPacketService::TMSClass tMSClass;
       
  3675 	packetService.NotifyMSClassChange(notifyMSClassChangeStatus, tMSClass);
       
  3676 	User::WaitForRequest(notifyMSClassChangeStatus);
       
  3677 
       
  3678 	ASSERT_EQUALS(tMSclassReturn, tMSClass);
       
  3679 	ASSERT_EQUALS(KErrNone, notifyMSClassChangeStatus.Int());
       
  3680 
       
  3681 	AssertMockLtsyStatusL();
       
  3682 	CleanupStack::PopAndDestroy(3, this); // data, this
       
  3683 
       
  3684 	}
       
  3685 
       
  3686 /**
       
  3687 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00013
       
  3688 @SYMComponent telephony_ctsy
       
  3689 @SYMTestCaseDesc Test support in CTSY for NotifyDynamicCapsChange
       
  3690 @SYMTestPriority High
       
  3691 @SYMTestActions Invokes NotifyDynamicCapsChange
       
  3692 @SYMTestExpectedResults Pass
       
  3693 @SYMTestType UT
       
  3694  */
       
  3695 void CCTsyPacketServicesFU::TestUnit00013L()
       
  3696 	{
       
  3697 	OpenEtelServerL(EUseExtendedError);
       
  3698 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3699 	OpenPhoneL();
       
  3700 
       
  3701 	RPacketService packetService;
       
  3702 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  3703 
       
  3704 	RBuf8 data;
       
  3705 	CleanupClosePushL(data);
       
  3706 
       
  3707   	//pack context param for completion into data
       
  3708 	TBool gprsIsSupportedOnCell;
       
  3709 	TBool csServicesIsSupportedOnCell;
       
  3710 	TMockLtsyData2<TBool, TBool> expLtsyDynamicCapsFlags(gprsIsSupportedOnCell, csServicesIsSupportedOnCell);
       
  3711 	data.Close();
       
  3712 	expLtsyDynamicCapsFlags.SerialiseL(data);
       
  3713 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyPacketDynamicCapsChangeIndId, KErrNone, data);
       
  3714 
       
  3715 	//-------------------------------------------------------------------------
       
  3716 	// TEST: Notify Dynamic Caps Change
       
  3717  	//-------------------------------------------------------------------------
       
  3718 
       
  3719 	TRequestStatus notifyDynamicCapsChangeStatus;
       
  3720 	RPacketService::TDynamicCapsFlags dynamicCapsFlags;
       
  3721 	packetService.NotifyDynamicCapsChange(notifyDynamicCapsChangeStatus, dynamicCapsFlags);
       
  3722 	User::WaitForRequest(notifyDynamicCapsChangeStatus);
       
  3723 
       
  3724 	//expected dynamic caps according to the set gprsIsSupportedOnCell and csServicesIsSupportedOnCell
       
  3725 	//and the initial state of the CTSY
       
  3726 	RPacketService::TDynamicCapsFlags dynamicCaps;
       
  3727 	dynamicCaps = 0;
       
  3728 	dynamicCaps |= RPacketService::KCapsManualAttach;
       
  3729 	dynamicCaps &= ~( RPacketService::KCapsSMSTransfer |
       
  3730 						RPacketService::KCapsManualDetach |
       
  3731 						RPacketService::KCapsRxContextActivationReq );
       
  3732 	dynamicCaps |= RPacketService::KCapsRxCSCall;
       
  3733 
       
  3734 	ASSERT_EQUALS(dynamicCapsFlags, dynamicCaps);
       
  3735 	ASSERT_EQUALS(KErrNone, notifyDynamicCapsChangeStatus.Int());
       
  3736 
       
  3737 	AssertMockLtsyStatusL();
       
  3738 	CleanupStack::PopAndDestroy(3, this); // data, this
       
  3739 
       
  3740 	}
       
  3741 
       
  3742 /**
       
  3743 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00014
       
  3744 @SYMComponent telephony_ctsy
       
  3745 @SYMTestCaseDesc Test support in CTSY for NotifyChangeOfNtwkRegStatus
       
  3746 @SYMTestPriority High
       
  3747 @SYMTestActions Invokes NotifyChangeOfNtwkRegStatus
       
  3748 @SYMTestExpectedResults Pass
       
  3749 @SYMTestType UT
       
  3750  */
       
  3751 void CCTsyPacketServicesFU::TestUnit00014L()
       
  3752 	{
       
  3753 	OpenEtelServerL(EUseExtendedError);
       
  3754 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3755 	OpenPhoneL();
       
  3756 
       
  3757 	RPacketService packetService;
       
  3758 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  3759 
       
  3760 	RBuf8 data;
       
  3761 	CleanupClosePushL(data);
       
  3762 
       
  3763 	RPacketService::TRegistrationStatus registrationStatusReturn;
       
  3764 	registrationStatusReturn = RPacketService::ENotRegisteredAndNotAvailable;
       
  3765 	TMockLtsyData1<RPacketService::TRegistrationStatus> expLtsyRegistrationStatus(registrationStatusReturn);
       
  3766 	data.Close();
       
  3767 	expLtsyRegistrationStatus.SerialiseL(data);
       
  3768 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyPacketNetworkRegistrationStatusIndId, KErrNone, data);
       
  3769 
       
  3770 	//-------------------------------------------------------------------------
       
  3771 	// TEST: notify change of network registration status
       
  3772  	//-------------------------------------------------------------------------
       
  3773 	TRequestStatus notifyChangeOfNtwkRegStatusStatus;
       
  3774 	RPacketService::TRegistrationStatus registrationStatus;
       
  3775 	packetService.NotifyChangeOfNtwkRegStatus(notifyChangeOfNtwkRegStatusStatus, registrationStatus);
       
  3776 
       
  3777 	User::WaitForRequest(notifyChangeOfNtwkRegStatusStatus);
       
  3778 
       
  3779 	ASSERT_EQUALS(registrationStatus, registrationStatusReturn);
       
  3780 	ASSERT_EQUALS(KErrNone, notifyChangeOfNtwkRegStatusStatus.Int());
       
  3781 
       
  3782 	AssertMockLtsyStatusL();
       
  3783 	CleanupStack::PopAndDestroy(3, this); // data, this
       
  3784 
       
  3785 	}
       
  3786 
       
  3787 /**
       
  3788 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00015
       
  3789 @SYMComponent telephony_ctsy
       
  3790 @SYMTestCaseDesc Test support in CTSY for NotifyContextAdded
       
  3791 @SYMTestPriority High
       
  3792 @SYMTestActions Invokes NotifyContextAdded
       
  3793 @SYMTestExpectedResults Pass
       
  3794 @SYMTestType UT
       
  3795  */
       
  3796 void CCTsyPacketServicesFU::TestUnit00015L()
       
  3797 	{
       
  3798 	OpenEtelServerL(EUseExtendedError);
       
  3799 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3800 	OpenPhoneL();
       
  3801 
       
  3802 	RPacketService packetService;
       
  3803 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  3804 	RBuf8 data;
       
  3805 	CleanupClosePushL(data);
       
  3806 
       
  3807 	//-------------------------------------------------------------------------
       
  3808 	// TEST: open a new context and notify a new context was added
       
  3809  	//-------------------------------------------------------------------------
       
  3810 
       
  3811 	RPacketContext packetContext;
       
  3812 	TRequestStatus notifyContextAddedStatus;
       
  3813 	TName contextNameNotify;
       
  3814 	packetService.NotifyContextAdded(notifyContextAddedStatus, contextNameNotify);
       
  3815 
       
  3816 	//open a context and get a context name
       
  3817 	TName contextName;
       
  3818 	TInt err = packetContext.OpenNewContext(packetService, contextName);
       
  3819 	ASSERT_EQUALS(KErrNone, err);
       
  3820 
       
  3821 	//complete the context added notification
       
  3822 	TMockLtsyData1<TName> expLtsyContextNameData2(contextName);
       
  3823 	data.Close();
       
  3824 	expLtsyContextNameData2.SerialiseL(data);
       
  3825 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyPdpContextAddedIndId, KErrNone, data);
       
  3826 	User::WaitForRequest(notifyContextAddedStatus);
       
  3827 
       
  3828 	ASSERT_EQUALS(contextName, contextNameNotify);
       
  3829 	ASSERT_EQUALS(KErrNone, notifyContextAddedStatus.Int());
       
  3830 
       
  3831 	DriverDeleteContextL(contextName);
       
  3832 	packetContext.Close();
       
  3833 
       
  3834 	// Let the mock-LTSY finish up before asserting.
       
  3835 	User::After(1000000);
       
  3836 	
       
  3837 	AssertMockLtsyStatusL();
       
  3838 	CleanupStack::PopAndDestroy(3, this); // data, this
       
  3839 	}
       
  3840 
       
  3841 
       
  3842 /**
       
  3843 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00016
       
  3844 @SYMComponent telephony_ctsy
       
  3845 @SYMTestCaseDesc Test support in CTSY for NotifyStatusChange
       
  3846 @SYMTestPriority High
       
  3847 @SYMTestActions Invokes NotifyStatusChange
       
  3848 @SYMTestExpectedResults Pass
       
  3849 @SYMTestType UT
       
  3850  */
       
  3851 void CCTsyPacketServicesFU::TestUnit00016L()
       
  3852 	{
       
  3853 	OpenEtelServerL(EUseExtendedError);
       
  3854 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3855 	OpenPhoneL();
       
  3856 
       
  3857 	RPacketService packetService;
       
  3858 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  3859 
       
  3860 	RBuf8 data;
       
  3861 	CleanupClosePushL(data);
       
  3862 
       
  3863 	//open a context and get a context name
       
  3864 	TInfoName contextName;
       
  3865 
       
  3866 	RPacketContext packetContext;
       
  3867 	TInt err = packetContext.OpenNewContext(packetService, contextName);
       
  3868 	ASSERT_EQUALS(KErrNone, err);
       
  3869 
       
  3870 	//--------------------------------------------------------------------------------
       
  3871 	// TEST: open a new context and notify context status changed without reject cause
       
  3872 	//--------------------------------------------------------------------------------
       
  3873 
       
  3874 	TRequestStatus notifyContextStatusChangeStatus;
       
  3875 	RPacketContext::TContextStatus contextStatusNotify;
       
  3876 	packetContext.NotifyStatusChange(notifyContextStatusChangeStatus, contextStatusNotify);
       
  3877 
       
  3878 	//complete the context status change notification
       
  3879 	TContextMisc contextMiscReturn;
       
  3880 	contextMiscReturn.iStatus = RPacketContext::EStatusActive;
       
  3881 
       
  3882 	TMockLtsyData2<TInfoName, TContextMisc> expLtsyContextNameData(contextName, contextMiscReturn);
       
  3883 	data.Close();
       
  3884 	expLtsyContextNameData.SerialiseL(data);
       
  3885 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyPdpContextStatusChangeIndId, KErrNone, data);
       
  3886 	User::WaitForRequest(notifyContextStatusChangeStatus);
       
  3887 
       
  3888 	ASSERT_EQUALS(contextStatusNotify, contextMiscReturn.iStatus);
       
  3889 	ASSERT_EQUALS(KErrNone, notifyContextStatusChangeStatus.Int());
       
  3890 
       
  3891 	//--------------------------------------------------------------------------------
       
  3892 	// TEST: notify context status changed with reject cause
       
  3893 	//--------------------------------------------------------------------------------
       
  3894 
       
  3895 	TRequestStatus notifyContextStatusChangeStatus2;
       
  3896 	RPacketContext::TContextStatus contextStatusNotify2;
       
  3897 	packetContext.NotifyStatusChange(notifyContextStatusChangeStatus2, contextStatusNotify2);
       
  3898 
       
  3899 	//complete the context status change notification
       
  3900 	_LIT8(KRejectCode, "1");
       
  3901 	TContextMisc contextMiscReturn2;
       
  3902 	contextMiscReturn2.iStatus = RPacketContext::EStatusInactive;
       
  3903 	contextMiscReturn2.iRejectionCause.Copy(KRejectCode);
       
  3904 
       
  3905 	TMockLtsyData2<TInfoName, TContextMisc> expLtsyContextNameData2(contextName, contextMiscReturn2);
       
  3906 	data.Close();
       
  3907 	expLtsyContextNameData2.SerialiseL(data);
       
  3908 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyPdpContextStatusChangeIndId, KErrNone, data);
       
  3909 	User::WaitForRequest(notifyContextStatusChangeStatus2);
       
  3910 
       
  3911 	ASSERT_EQUALS(contextStatusNotify2, contextMiscReturn2.iStatus);
       
  3912 	ASSERT_EQUALS(KErrNone, notifyContextStatusChangeStatus2.Int());
       
  3913 
       
  3914 
       
  3915 	//close context
       
  3916 	DriverDeleteContextL(contextName);
       
  3917 	packetContext.Close();
       
  3918 
       
  3919 	// Let the mock-LTSY finish up before asserting.
       
  3920 	User::After(1000000);
       
  3921 	
       
  3922 	AssertMockLtsyStatusL();
       
  3923 	CleanupStack::PopAndDestroy(3, this); // data, this
       
  3924 
       
  3925 	}
       
  3926 /**
       
  3927 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00017
       
  3928 @SYMComponent telephony_ctsy
       
  3929 @SYMTestCaseDesc Test support in CTSY for getting the network registration status
       
  3930 @SYMTestPriority High
       
  3931 @SYMTestActions Invokes RPacketService::GetNtwkRegStatus
       
  3932 @SYMTestExpectedResults Pass
       
  3933 @SYMTestType UT
       
  3934  */
       
  3935 void CCTsyPacketServicesFU::TestUnit00017L()
       
  3936 	{
       
  3937 	OpenEtelServerL(EUseExtendedError);
       
  3938 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3939 	OpenPhoneL();
       
  3940 
       
  3941 	RBuf8 data;
       
  3942 	CleanupClosePushL(data);
       
  3943 
       
  3944 	RPacketService packetService;
       
  3945 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  3946 	
       
  3947 	//-------------------------------------------------------------------------
       
  3948 	// TEST: get the current network status
       
  3949  	//-------------------------------------------------------------------------
       
  3950 
       
  3951 	RPacketService::TRegistrationStatus registrationStatusReturn;
       
  3952 	registrationStatusReturn = RPacketService::ERegisteredRoaming;
       
  3953 	TMockLtsyData1<RPacketService::TRegistrationStatus> completeRegistrationStatus(registrationStatusReturn);
       
  3954 	data.Close();
       
  3955 	completeRegistrationStatus.SerialiseL(data);
       
  3956 
       
  3957 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesGetPacketNetworkRegistrationStatus::KLtsyDispatchPacketServicesGetPacketNetworkRegistrationStatusApiId, KErrNone);
       
  3958 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesGetPacketNetworkRegistrationStatus::KLtsyDispatchPacketServicesGetPacketNetworkRegistrationStatusApiId, KErrNone, data);
       
  3959 
       
  3960 	TRequestStatus getNetworkStatus;
       
  3961 	RPacketService::TRegistrationStatus registrationStatus;
       
  3962 
       
  3963 	packetService.GetNtwkRegStatus(getNetworkStatus, registrationStatus);
       
  3964 	User::WaitForRequest(getNetworkStatus);
       
  3965 
       
  3966 	ASSERT_EQUALS(registrationStatusReturn, registrationStatus);
       
  3967 	ASSERT_EQUALS(KErrNone, getNetworkStatus.Int());
       
  3968 
       
  3969 	AssertMockLtsyStatusL();
       
  3970 	CleanupStack::PopAndDestroy(3, this); // data, this
       
  3971 	}
       
  3972 
       
  3973 /**
       
  3974 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00018
       
  3975 @SYMComponent telephony_ctsy
       
  3976 @SYMTestCaseDesc Test support in CTSY for NotifyConnectionSpeedChange
       
  3977 @SYMTestPriority High
       
  3978 @SYMTestActions Invokes NotifyConnectionSpeedChange
       
  3979 @SYMTestExpectedResults Pass
       
  3980 @SYMTestType UT
       
  3981  */
       
  3982 void CCTsyPacketServicesFU::TestUnit00018L()
       
  3983 	{
       
  3984 	OpenEtelServerL(EUseExtendedError);
       
  3985 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3986 	OpenPhoneL();
       
  3987 
       
  3988 	RPacketService packetService;
       
  3989 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  3990 
       
  3991 	RBuf8 data;
       
  3992 	CleanupClosePushL(data);
       
  3993 
       
  3994 	RPacketContext packetContext;
       
  3995 	CleanupClosePushL(packetContext);
       
  3996 
       
  3997 	//open a context and get a context name
       
  3998 	TInfoName contextName;
       
  3999 	TInt err = packetContext.OpenNewContext(packetService, contextName);
       
  4000 	ASSERT_EQUALS(KErrNone, err);
       
  4001 
       
  4002 	//---------------------------------------------------------------------
       
  4003 	// TEST: open a new context and notify context connection speed change
       
  4004 	//---------------------------------------------------------------------
       
  4005 
       
  4006 	TRequestStatus notifyContextConnectionSpeedChangeStatus;
       
  4007 	TUint contextConnectionSpeedNotify;
       
  4008 	
       
  4009 	packetContext.NotifyConnectionSpeedChange(notifyContextConnectionSpeedChangeStatus, contextConnectionSpeedNotify);
       
  4010 	
       
  4011 	//complete the context connection speed change notification
       
  4012 	TUint contextConnectionSpeedReturn = 1234569;
       
  4013 	TMockLtsyData2<TInfoName, TUint> expLtsyContextNameData(contextName, contextConnectionSpeedReturn);
       
  4014 	data.Close();
       
  4015 	expLtsyContextNameData.SerialiseL(data);
       
  4016 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyPdpContextConnectionSpeedChangeIndId, KErrNone, data);
       
  4017 	
       
  4018 	User::WaitForRequest(notifyContextConnectionSpeedChangeStatus);
       
  4019 
       
  4020 	ASSERT_EQUALS(contextConnectionSpeedNotify, contextConnectionSpeedReturn);
       
  4021 	ASSERT_EQUALS(KErrNone, notifyContextConnectionSpeedChangeStatus.Int());
       
  4022 
       
  4023 	//close context
       
  4024 	DriverDeleteContextL(contextName);
       
  4025 	packetContext.Close();
       
  4026 	packetService.Close();
       
  4027 
       
  4028 	// Let the mock-LTSY finish up before asserting.
       
  4029 	User::After(1000000);
       
  4030 	
       
  4031 	AssertMockLtsyStatusL();
       
  4032 	CleanupStack::PopAndDestroy(4, this); // packetService, packetContext, data, this
       
  4033 	}
       
  4034 
       
  4035 /**
       
  4036 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00019
       
  4037 @SYMComponent telephony_ctsy
       
  4038 @SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::InitialiseContext, RPacketMbmsContext::NotifyConfigChanged
       
  4039 @SYMTestPriority High
       
  4040 @SYMTestActions Invokes InitialiseContext, NotifyConfigChanged
       
  4041 @SYMTestExpectedResults Pass
       
  4042 @SYMTestType UT
       
  4043  */
       
  4044 void CCTsyPacketServicesFU::TestUnit00019L()
       
  4045 	{
       
  4046 	OpenEtelServerL(EUseExtendedError);
       
  4047 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  4048 	OpenPhoneL();
       
  4049 
       
  4050 	TRequestStatus reqStatus;
       
  4051 	
       
  4052 	RBuf8 data;
       
  4053 	CleanupClosePushL(data);
       
  4054 	
       
  4055 	RPacketService packetService;
       
  4056 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  4057 	
       
  4058 	// Open new Mbms context - complete with KErrNone
       
  4059 	TInfoName contextName1;
       
  4060 	RPacketMbmsContext packetContext1;
       
  4061 	_LIT(KCHANNEL1,"CHANNEL1");
       
  4062 	OpenInitialiseMbmsContextLC(packetService,packetContext1,contextName1,KCHANNEL1,KErrNone);
       
  4063 	
       
  4064 	// Open new Mbms context - complete with KErrNone (demonstrates each new context causes the initialise IPCs)
       
  4065 	TInfoName contextName2;
       
  4066 	RPacketMbmsContext packetContext2;
       
  4067 	_LIT(KCHANNEL2,"CHANNEL2");
       
  4068 	OpenInitialiseMbmsContextLC(packetService,packetContext2,contextName2,KCHANNEL2,KErrNone);
       
  4069 	
       
  4070 	// Open new Mbms context - complete with KErrGeneral 
       
  4071 	TInfoName contextName3;
       
  4072 	RPacketMbmsContext packetContext3;
       
  4073 	_LIT(KCHANNEL3,"CHANNEL3");
       
  4074 	OpenInitialiseMbmsContextLC(packetService,packetContext3,contextName3,KCHANNEL3,KErrGeneral);
       
  4075 
       
  4076 	//test a NotifyConfigChanged - KErrNone case
       
  4077 	TDesC* contextNamePtr = &contextName1;
       
  4078 	RPacketMbmsContext::TContextConfigMbmsV1 compContextConfig;
       
  4079 	compContextConfig.iTmgi.SetMCC(1);
       
  4080 	compContextConfig.iTmgi.SetMNC(2);
       
  4081 	compContextConfig.iTmgi.SetServiceId(3);
       
  4082 	compContextConfig.iMbmsAccessBearer = E2GBearer;
       
  4083 	compContextConfig.iMbmsServicePriority = EMbmsMediumServicePriority;
       
  4084 	compContextConfig.iMbmsServiceMode = KBroadcast;
       
  4085 	compContextConfig.iMbmsSessionFlag = EFalse;
       
  4086 	TMockLtsyData2<TDesC*, RPacketMbmsContext::TContextConfigMbmsV1> contextConfigCompData(contextNamePtr,compContextConfig);
       
  4087 	contextConfigCompData.SerialiseL(data);
       
  4088 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyMbmsContextConfigChangedIndId, KErrNone, data);
       
  4089 	data.Close();
       
  4090 	
       
  4091 	RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;	
       
  4092 	RPacketMbmsContext::TContextConfigMbmsV1Pckg contextConfigPckg(contextConfig);
       
  4093 	packetContext1.NotifyConfigChanged(reqStatus,contextConfigPckg);
       
  4094 	User::WaitForRequest(reqStatus);
       
  4095 	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
       
  4096 	ASSERT_EQUALS(compContextConfig.iTmgi.GetMCC(),contextConfig.iTmgi.GetMCC());
       
  4097 	ASSERT_EQUALS(compContextConfig.iTmgi.GetMNC(),contextConfig.iTmgi.GetMNC());
       
  4098 	ASSERT_EQUALS(compContextConfig.iTmgi.GetServiceId(),contextConfig.iTmgi.GetServiceId());
       
  4099 	ASSERT_EQUALS(compContextConfig.iMbmsAccessBearer,contextConfig.iMbmsAccessBearer);
       
  4100 	ASSERT_EQUALS(compContextConfig.iMbmsServicePriority,contextConfig.iMbmsServicePriority);
       
  4101 	ASSERT_EQUALS(compContextConfig.iMbmsServiceMode,contextConfig.iMbmsServiceMode);
       
  4102 	ASSERT_EQUALS(compContextConfig.iMbmsSessionFlag,contextConfig.iMbmsSessionFlag);
       
  4103 
       
  4104 	AssertMockLtsyStatusL();
       
  4105 	
       
  4106 	//test a NotifyConfigChanged - KErrGeneral case
       
  4107 	contextConfigCompData.SerialiseL(data);
       
  4108 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyMbmsContextConfigChangedIndId, KErrGeneral, data);
       
  4109 	data.Close();
       
  4110 	
       
  4111 	packetContext1.NotifyConfigChanged(reqStatus,contextConfigPckg);
       
  4112 	User::WaitForRequest(reqStatus);
       
  4113 	ASSERT_EQUALS(reqStatus.Int(), KErrGeneral);
       
  4114 
       
  4115 	AssertMockLtsyStatusL();
       
  4116 	
       
  4117 	CleanupStack::PopAndDestroy(&packetContext3);
       
  4118 	CleanupStack::PopAndDestroy(&packetContext2);
       
  4119 	CleanupStack::PopAndDestroy(&packetContext1);
       
  4120 	CleanupStack::PopAndDestroy(&packetService);
       
  4121 	CleanupStack::PopAndDestroy(2, this); // data, this
       
  4122 	}
       
  4123 
       
  4124 /**
       
  4125 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00020
       
  4126 @SYMComponent telephony_ctsy
       
  4127 @SYMTestCaseDesc Test support in CTSY for RPacketService::GetMbmsNetworkServiceStatus RPacketService::NotifyMbmsNetworkServiceStatusChange
       
  4128 @SYMTestPriority High
       
  4129 @SYMTestActions Invokes GetMbmsNetworkServiceStatus, NotifyMbmsNetworkServiceStatusChange
       
  4130 @SYMTestExpectedResults Pass
       
  4131 @SYMTestType UT
       
  4132  */
       
  4133 void CCTsyPacketServicesFU::TestUnit00020L()
       
  4134 	{
       
  4135 	OpenEtelServerL(EUseExtendedError);
       
  4136 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  4137 	OpenPhoneL();
       
  4138 
       
  4139 	TRequestStatus reqStatus;
       
  4140 	
       
  4141 	RBuf8 data;
       
  4142 	CleanupClosePushL(data);
       
  4143 	
       
  4144 	RPacketService packetService;
       
  4145 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  4146 
       
  4147 	TBool attemptAttach = ETrue; //in
       
  4148 	
       
  4149 	//test the get with a KErrNone comp
       
  4150 	TMockLtsyData1<TBool> getMbmsNetworkServiceStatusExpData(attemptAttach);
       
  4151 	getMbmsNetworkServiceStatusExpData.SerialiseL(data);
       
  4152 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesGetMbmsNetworkServiceStatus::KLtsyDispatchPacketServicesGetMbmsNetworkServiceStatusApiId,data);
       
  4153 	data.Close();
       
  4154 	
       
  4155 	TMbmsNetworkServiceStatus mbmsNetworkServiceStatusReturn = EMbmsSupported;
       
  4156 	TMockLtsyData1<TMbmsNetworkServiceStatus> getMbmsNetworkServiceStatusCompData(mbmsNetworkServiceStatusReturn);
       
  4157 	getMbmsNetworkServiceStatusCompData.SerialiseL(data);
       
  4158 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesGetMbmsNetworkServiceStatus::KLtsyDispatchPacketServicesGetMbmsNetworkServiceStatusApiId, KErrNone, data);
       
  4159 	data.Close();
       
  4160 
       
  4161 	TMbmsNetworkServiceStatus mbmsNetworkServiceStatus = EMbmsSupportUnknown;; //out
       
  4162 	packetService.GetMbmsNetworkServiceStatus(reqStatus,attemptAttach,mbmsNetworkServiceStatus);
       
  4163 	User::WaitForRequest(reqStatus);
       
  4164 	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
       
  4165 	ASSERT_EQUALS(mbmsNetworkServiceStatus, mbmsNetworkServiceStatusReturn);
       
  4166 	AssertMockLtsyStatusL();
       
  4167 	
       
  4168 	//result is now cached (a call will not cause an LTSY call)
       
  4169 	mbmsNetworkServiceStatus = EMbmsSupportUnknown;
       
  4170 	packetService.GetMbmsNetworkServiceStatus(reqStatus,attemptAttach,mbmsNetworkServiceStatus);
       
  4171 	User::WaitForRequest(reqStatus);
       
  4172 	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
       
  4173 	ASSERT_EQUALS(mbmsNetworkServiceStatus, mbmsNetworkServiceStatusReturn);
       
  4174 	AssertMockLtsyStatusL();
       
  4175 
       
  4176 	//update the cache via notifier - KErrNone case
       
  4177 	mbmsNetworkServiceStatusReturn = EMbmsNotSupported;
       
  4178 	getMbmsNetworkServiceStatusCompData.SerialiseL(data);
       
  4179 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyMbmsNetworkServiceStatusChangeIndId, KErrNone, data);
       
  4180 	data.Close();
       
  4181 	mbmsNetworkServiceStatus = EMbmsSupportUnknown;
       
  4182 	packetService.NotifyMbmsNetworkServiceStatusChange(reqStatus,mbmsNetworkServiceStatus);
       
  4183 	User::WaitForRequest(reqStatus);
       
  4184 	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
       
  4185 	ASSERT_EQUALS(mbmsNetworkServiceStatusReturn, mbmsNetworkServiceStatus);
       
  4186 	AssertMockLtsyStatusL();
       
  4187 
       
  4188 	//a cached get (should return notified status)
       
  4189 	mbmsNetworkServiceStatus = EMbmsSupportUnknown;
       
  4190 	packetService.GetMbmsNetworkServiceStatus(reqStatus,attemptAttach,mbmsNetworkServiceStatus);
       
  4191 	User::WaitForRequest(reqStatus);
       
  4192 	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
       
  4193 	ASSERT_EQUALS(mbmsNetworkServiceStatus, mbmsNetworkServiceStatusReturn);
       
  4194 	AssertMockLtsyStatusL();
       
  4195 
       
  4196 	
       
  4197 	//update the cache via notifier - KErrGeneral case
       
  4198 	mbmsNetworkServiceStatusReturn = EMbmsSupported;
       
  4199 	getMbmsNetworkServiceStatusCompData.SerialiseL(data);
       
  4200 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyMbmsNetworkServiceStatusChangeIndId, KErrGeneral, data);
       
  4201 	data.Close();
       
  4202 	mbmsNetworkServiceStatus = EMbmsSupportUnknown;
       
  4203 	packetService.NotifyMbmsNetworkServiceStatusChange(reqStatus,mbmsNetworkServiceStatus);
       
  4204 	User::WaitForRequest(reqStatus);
       
  4205 	ASSERT_EQUALS(reqStatus.Int(), KErrGeneral);
       
  4206 	ASSERT_EQUALS(EMbmsSupportUnknown, mbmsNetworkServiceStatus);
       
  4207 	AssertMockLtsyStatusL();
       
  4208 	
       
  4209 	
       
  4210 			
       
  4211 	// we need to close packetservice and re-open so we can test the error cases as to null the cache
       
  4212 	CleanupStack::PopAndDestroy(&packetService);
       
  4213 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  4214 	
       
  4215 	//test the get with a KErrGeneral comp
       
  4216 	getMbmsNetworkServiceStatusExpData.SerialiseL(data);
       
  4217 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesGetMbmsNetworkServiceStatus::KLtsyDispatchPacketServicesGetMbmsNetworkServiceStatusApiId,data);
       
  4218 	data.Close();
       
  4219 	
       
  4220 	getMbmsNetworkServiceStatusCompData.SerialiseL(data);
       
  4221 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesGetMbmsNetworkServiceStatus::KLtsyDispatchPacketServicesGetMbmsNetworkServiceStatusApiId, KErrGeneral, data);
       
  4222 	data.Close();
       
  4223 	
       
  4224 	mbmsNetworkServiceStatus = EMbmsSupportUnknown;
       
  4225 	packetService.GetMbmsNetworkServiceStatus(reqStatus,attemptAttach,mbmsNetworkServiceStatus);
       
  4226 	User::WaitForRequest(reqStatus);
       
  4227 	ASSERT_EQUALS(reqStatus.Int(), KErrGeneral);
       
  4228 	ASSERT_EQUALS(mbmsNetworkServiceStatus, EMbmsSupportUnknown);
       
  4229 	AssertMockLtsyStatusL();
       
  4230 	
       
  4231 	CleanupStack::PopAndDestroy(&packetService);
       
  4232 	CleanupStack::PopAndDestroy(&data);
       
  4233 	CleanupStack::PopAndDestroy(this);
       
  4234 	}
       
  4235 
       
  4236 
       
  4237 /**
       
  4238 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00021
       
  4239 @SYMComponent telephony_ctsy
       
  4240 @SYMTestCaseDesc Test support in CTSY for RPacketService::UpdateMbmsMonitorServiceListL, RPacketService::NotifyMbmsServiceAvailabilityChange
       
  4241 @SYMTestPriority High
       
  4242 @SYMTestActions Invokes UpdateMbmsMonitorServiceListL, NotifyMbmsServiceAvailabilityChange, CRetrievePcktMbmsMonitoredServices
       
  4243 @SYMTestExpectedResults Pass
       
  4244 @SYMTestType UT
       
  4245  */
       
  4246 void CCTsyPacketServicesFU::TestUnit00021L()
       
  4247 	{
       
  4248 	OpenEtelServerL(EUseExtendedError);
       
  4249 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  4250 	OpenPhoneL();
       
  4251 
       
  4252 	TRequestStatus reqStatus;
       
  4253 	TRequestStatus notifyReqStatus;
       
  4254 	
       
  4255 	RBuf8 data;
       
  4256 	CleanupClosePushL(data);
       
  4257 	
       
  4258 	RPacketService packetService;
       
  4259 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  4260 	
       
  4261 	CGetMbmsMonitorServiceListAO* getMbmsMonitorServiceListAO = CGetMbmsMonitorServiceListAO::NewLC(packetService);
       
  4262 	
       
  4263 	RPacketService::TMbmsServiceAvailabilityV1 entry1; 
       
  4264 	entry1.iTmgi.SetMCC(1);
       
  4265 	entry1.iTmgi.SetMNC(1);
       
  4266 	entry1.iTmgi.SetServiceId(1);
       
  4267 	entry1.iMbmsAccessBearer = E2GBearer;
       
  4268 	entry1.iMbmsAvailabilityStatus = EMbmsUnavailable;
       
  4269 	entry1.iMbmsServiceMode = KBroadcast;
       
  4270 	
       
  4271 	RPacketService::TMbmsServiceAvailabilityV1 entry2; 
       
  4272 	entry2.iTmgi.SetMCC(2);
       
  4273 	entry2.iTmgi.SetMNC(2);
       
  4274 	entry2.iTmgi.SetServiceId(2);
       
  4275 	entry2.iMbmsAccessBearer = E3GBearer;
       
  4276 	entry2.iMbmsAvailabilityStatus = EMbmsAvailable;
       
  4277 	entry2.iMbmsServiceMode = KSelectedBroadcast;
       
  4278 	
       
  4279 	CPcktMbmsMonitoredServiceList* nullList = CPcktMbmsMonitoredServiceList ::NewL();
       
  4280 	CleanupStack::PushL(nullList);
       
  4281 	
       
  4282 	CPcktMbmsMonitoredServiceList* list = CPcktMbmsMonitoredServiceList ::NewL();
       
  4283 	CleanupStack::PushL(list);
       
  4284 
       
  4285 	list->AddEntryL(entry1);
       
  4286 	list->AddEntryL(entry2);
       
  4287 	
       
  4288 	RArray<TUint> serviceIds;
       
  4289 	CleanupClosePushL(serviceIds);
       
  4290 	
       
  4291 	//add entries (KErrNone complete case)
       
  4292 	TMbmsAction action = EAddEntries;
       
  4293 	CPcktMbmsMonitoredServiceList* serviceList = nullList;
       
  4294 	CPcktMbmsMonitoredServiceList* changeList = list;
       
  4295 	
       
  4296 	TMockLtsyData3<TMbmsAction, CPcktMbmsMonitoredServiceList*, CPcktMbmsMonitoredServiceList*> updateMbmsMonitorServiceListExpData(action,serviceList,changeList);
       
  4297 	updateMbmsMonitorServiceListExpData.SerialiseL(data);
       
  4298 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesUpdateMbmsMonitorServiceList::KLtsyDispatchPacketServicesUpdateMbmsMonitorServiceListApiId,data);
       
  4299 	data.Close();
       
  4300 
       
  4301 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesUpdateMbmsMonitorServiceList::KLtsyDispatchPacketServicesUpdateMbmsMonitorServiceListApiId, KErrNone);
       
  4302 	
       
  4303 	packetService.UpdateMbmsMonitorServiceListL(reqStatus,action,list);
       
  4304 	packetService.NotifyMbmsServiceAvailabilityChange(notifyReqStatus);
       
  4305 	User::WaitForRequest(reqStatus);
       
  4306 	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
       
  4307 	User::WaitForRequest(notifyReqStatus);
       
  4308 	ASSERT_EQUALS(notifyReqStatus.Int(), KErrNone);
       
  4309 	AssertMockLtsyStatusL();
       
  4310 
       
  4311 	//check the results
       
  4312 	getMbmsMonitorServiceListAO->TestRetrieveL();
       
  4313 	ASSERT_EQUALS(getMbmsMonitorServiceListAO->CheckResultsL(*list), static_cast<TBool>(ETrue));
       
  4314 		
       
  4315 	
       
  4316 	//remove entries (KErrNone complete case)
       
  4317 	action = ERemoveEntries;
       
  4318 	serviceList = list;
       
  4319 	changeList = list;
       
  4320 
       
  4321 	updateMbmsMonitorServiceListExpData.SerialiseL(data);
       
  4322 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesUpdateMbmsMonitorServiceList::KLtsyDispatchPacketServicesUpdateMbmsMonitorServiceListApiId,data);
       
  4323 	data.Close();
       
  4324 
       
  4325 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesUpdateMbmsMonitorServiceList::KLtsyDispatchPacketServicesUpdateMbmsMonitorServiceListApiId, KErrNone);
       
  4326 
       
  4327 	packetService.UpdateMbmsMonitorServiceListL(reqStatus,action,list);
       
  4328 	packetService.NotifyMbmsServiceAvailabilityChange(notifyReqStatus);
       
  4329 	User::WaitForRequest(reqStatus);
       
  4330 	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
       
  4331 	User::WaitForRequest(notifyReqStatus);
       
  4332 	ASSERT_EQUALS(notifyReqStatus.Int(), KErrNone);
       
  4333 	AssertMockLtsyStatusL();
       
  4334 
       
  4335 	//check the results
       
  4336 	getMbmsMonitorServiceListAO->TestRetrieveL();
       
  4337 	ASSERT_EQUALS(getMbmsMonitorServiceListAO->CheckResultsL(*nullList), static_cast<TBool>(ETrue));
       
  4338 
       
  4339 	
       
  4340 	//add entries (KErrMbmsImpreciseServiceEntries complete case)
       
  4341 	action = EAddEntries;
       
  4342 	serviceList = nullList;
       
  4343 	changeList = list;
       
  4344 	
       
  4345 	updateMbmsMonitorServiceListExpData.SerialiseL(data);
       
  4346 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesUpdateMbmsMonitorServiceList::KLtsyDispatchPacketServicesUpdateMbmsMonitorServiceListApiId,data);
       
  4347 	data.Close();
       
  4348 
       
  4349 	serviceIds.AppendL(1);
       
  4350 	TMockLtsyData1<RArray<TUint> > updateMbmsMonitorServiceListCompData(serviceIds);
       
  4351 	updateMbmsMonitorServiceListCompData.SerialiseL(data);
       
  4352 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesUpdateMbmsMonitorServiceList::KLtsyDispatchPacketServicesUpdateMbmsMonitorServiceListApiId, KErrMbmsImpreciseServiceEntries, data);
       
  4353 	data.Close();
       
  4354 	
       
  4355 	packetService.UpdateMbmsMonitorServiceListL(reqStatus,action,list);
       
  4356 	//can't do a NotifyMbmsServiceAvailabilityChange as not completed in the error case
       
  4357 	User::WaitForRequest(reqStatus);
       
  4358 	ASSERT_EQUALS(reqStatus.Int(), KErrMbmsImpreciseServiceEntries);
       
  4359 	AssertMockLtsyStatusL();
       
  4360 
       
  4361 	
       
  4362 	//check the results
       
  4363 	getMbmsMonitorServiceListAO->TestRetrieveL();
       
  4364 	list->DeleteEntryL(0); //remove entry in serviceId error list
       
  4365 	ASSERT_EQUALS(getMbmsMonitorServiceListAO->CheckResultsL(*list), static_cast<TBool>(ETrue));
       
  4366 	
       
  4367 	
       
  4368 	//test the service change to unavailable
       
  4369 	packetService.NotifyMbmsServiceAvailabilityChange(reqStatus);
       
  4370 
       
  4371 	//all services are unavailable
       
  4372 	serviceIds.Reset();
       
  4373 	TMockLtsyData1<RArray<TUint> > notifyMbmsServiceAvailabilityChangeCompData(serviceIds);
       
  4374 	notifyMbmsServiceAvailabilityChangeCompData.SerialiseL(data);
       
  4375 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyMbmsServiceAvailabilityChangeIndId, KErrNone, data);
       
  4376 	data.Close();
       
  4377 
       
  4378 	User::WaitForRequest(reqStatus);
       
  4379 	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
       
  4380 	AssertMockLtsyStatusL();
       
  4381 		
       
  4382 	//check the results
       
  4383 	getMbmsMonitorServiceListAO->TestRetrieveL();
       
  4384 	//update the test data
       
  4385 	entry2.iMbmsAvailabilityStatus = EMbmsUnavailable;
       
  4386 	list->ChangeEntryL(0,entry2);
       
  4387 	ASSERT_EQUALS(getMbmsMonitorServiceListAO->CheckResultsL(*list), static_cast<TBool>(ETrue));
       
  4388 	
       
  4389 	
       
  4390 	//test the service change to available
       
  4391 	packetService.NotifyMbmsServiceAvailabilityChange(reqStatus);
       
  4392 
       
  4393 	//services 1 is available
       
  4394 	serviceIds.Reset();
       
  4395 	serviceIds.AppendL(entry2.iTmgi.GetServiceId());
       
  4396 	notifyMbmsServiceAvailabilityChangeCompData.SerialiseL(data);
       
  4397 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyMbmsServiceAvailabilityChangeIndId, KErrNone, data);
       
  4398 	data.Close();
       
  4399 
       
  4400 	User::WaitForRequest(reqStatus);
       
  4401 	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
       
  4402 	AssertMockLtsyStatusL();
       
  4403 		
       
  4404 	//check the results
       
  4405 	getMbmsMonitorServiceListAO->TestRetrieveL();
       
  4406 	//update the test data
       
  4407 	entry2.iMbmsAvailabilityStatus = EMbmsAvailable;
       
  4408 	list->ChangeEntryL(0,entry2);
       
  4409 	ASSERT_EQUALS(getMbmsMonitorServiceListAO->CheckResultsL(*list), static_cast<TBool>(ETrue));
       
  4410 
       
  4411 	
       
  4412 	//test the service change to unavailable (error case)
       
  4413 	packetService.NotifyMbmsServiceAvailabilityChange(reqStatus);
       
  4414 
       
  4415 	//services 1 is unavailable
       
  4416 	serviceIds.Reset();
       
  4417 	notifyMbmsServiceAvailabilityChangeCompData.SerialiseL(data);
       
  4418 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyMbmsServiceAvailabilityChangeIndId, KErrGeneral, data);
       
  4419 	data.Close();
       
  4420 
       
  4421 	User::WaitForRequest(reqStatus);
       
  4422 	ASSERT_EQUALS(reqStatus.Int(), KErrGeneral);
       
  4423 	AssertMockLtsyStatusL();
       
  4424 		
       
  4425 	//check the results (no change)
       
  4426 	getMbmsMonitorServiceListAO->TestRetrieveL();
       
  4427 	ASSERT_EQUALS(getMbmsMonitorServiceListAO->CheckResultsL(*list), static_cast<TBool>(ETrue));
       
  4428 
       
  4429 	
       
  4430 	//test cancel for code coverage (CTSY test)
       
  4431 	getMbmsMonitorServiceListAO->TestCancel();	
       
  4432 	
       
  4433 	//check #ifdef defect fix of PopAndDestroy when iMBMSMonitoredList is null
       
  4434 	packetService.Close();
       
  4435 	RPacketService packetService2;
       
  4436 	OpenPacketServiceLC(packetService2,RPacketService::EStatusUnattached);
       
  4437 	
       
  4438 	packetService2.NotifyMbmsServiceAvailabilityChange(reqStatus);
       
  4439 
       
  4440 	//services 1 is available
       
  4441 	serviceIds.Reset();
       
  4442 	notifyMbmsServiceAvailabilityChangeCompData.SerialiseL(data);
       
  4443 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyMbmsServiceAvailabilityChangeIndId, KErrNone, data);
       
  4444 	data.Close();
       
  4445 
       
  4446 	User::WaitForRequest(reqStatus);
       
  4447 	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
       
  4448 	AssertMockLtsyStatusL();
       
  4449 
       
  4450 
       
  4451 	CleanupStack::PopAndDestroy(&packetService2);
       
  4452 	CleanupStack::PopAndDestroy(&serviceIds);
       
  4453 	CleanupStack::PopAndDestroy(list);
       
  4454 	CleanupStack::PopAndDestroy(nullList);
       
  4455 	CleanupStack::PopAndDestroy(getMbmsMonitorServiceListAO);
       
  4456 	CleanupStack::PopAndDestroy(&packetService);
       
  4457 	CleanupStack::PopAndDestroy(&data);
       
  4458 	CleanupStack::PopAndDestroy(this);
       
  4459 	}
       
  4460 
       
  4461 /**
       
  4462 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00022
       
  4463 @SYMComponent telephony_ctsy
       
  4464 @SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::UpdateMbmsSessionList
       
  4465 @SYMTestPriority High
       
  4466 @SYMTestActions Invokes UpdateMbmsSessionList
       
  4467 @SYMTestExpectedResults Pass
       
  4468 @SYMTestType UT
       
  4469  */
       
  4470 void CCTsyPacketServicesFU::TestUnit00022L()
       
  4471 	{
       
  4472 	OpenEtelServerL(EUseExtendedError);
       
  4473 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  4474 	OpenPhoneL();
       
  4475 
       
  4476 	TRequestStatus reqStatus;
       
  4477 	
       
  4478 	RBuf8 data;
       
  4479 	CleanupClosePushL(data);
       
  4480 	
       
  4481 	RPacketService packetService;
       
  4482 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  4483 
       
  4484 	// Open new Mbms context
       
  4485 	TInfoName contextName;
       
  4486 	RPacketMbmsContext packetMbmsContext;
       
  4487 	_LIT(KCHANNEL1,"CHANNEL1");
       
  4488 	OpenInitialiseMbmsContextLC(packetService,packetMbmsContext,contextName,KCHANNEL1,KErrNone);
       
  4489 
       
  4490 	// retriever for the session list (to test results)
       
  4491 	CGetMbmsSessionListAO* getMbmsSessionListAO = CGetMbmsSessionListAO::NewLC(packetMbmsContext);
       
  4492 	
       
  4493 	RPacketMbmsContext::CMbmsSession* sessionIdList = RPacketMbmsContext::CMbmsSession::NewL();
       
  4494 	CleanupStack::PushL(sessionIdList);
       
  4495 
       
  4496 	//test adding in KErrNone complete case
       
  4497 	TDesC* contextNamePtr = &contextName;
       
  4498 	TMbmsAction action;
       
  4499 	TMbmsSessionId session;
       
  4500 	TMockLtsyData4<TDesC*,TMbmsAction,TMbmsSessionId,TMbmsSessionIdList> updateMbmsSessionListExpData(contextNamePtr,action,session,sessionIdList->iSessionIdList);
       
  4501 
       
  4502 	TMockLtsyData1<TDesC*> updateMbmsSessionListCompData(contextNamePtr);
       
  4503 
       
  4504 	for (session = 0; session < 10; ++session)
       
  4505 		{
       
  4506 		action = EAddEntries;
       
  4507 		
       
  4508 		updateMbmsSessionListExpData.SerialiseL(data);
       
  4509 		iMockLTSY.ExpectL(MLtsyDispatchPacketServicesUpdateMbmsSessionList::KLtsyDispatchPacketServicesUpdateMbmsSessionListApiId, data);
       
  4510 		data.Close();
       
  4511 		
       
  4512 		updateMbmsSessionListCompData.SerialiseL(data);
       
  4513 		iMockLTSY.CompleteL(MLtsyDispatchPacketServicesUpdateMbmsSessionList::KLtsyDispatchPacketServicesUpdateMbmsSessionListApiId, KErrNone, data);
       
  4514 		data.Close();
       
  4515 
       
  4516 		packetMbmsContext.UpdateMbmsSessionList(reqStatus, action, session);    
       
  4517 		User::WaitForRequest(reqStatus);
       
  4518 		ASSERT_EQUALS(reqStatus.Int(), KErrNone);
       
  4519 		AssertMockLtsyStatusL();
       
  4520 		
       
  4521 		//check the results
       
  4522 		sessionIdList->iSessionIdList.AppendL(session);
       
  4523 		getMbmsSessionListAO->TestRetrieveL();
       
  4524 		getMbmsSessionListAO->CheckResultsL(*sessionIdList);		
       
  4525 		}
       
  4526 	
       
  4527 	//test adding in KErrGeneral complete case
       
  4528 	action = EAddEntries;
       
  4529 	session += 1;
       
  4530 	updateMbmsSessionListExpData.SerialiseL(data);
       
  4531 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesUpdateMbmsSessionList::KLtsyDispatchPacketServicesUpdateMbmsSessionListApiId, data);
       
  4532 	data.Close();
       
  4533 	
       
  4534 	updateMbmsSessionListCompData.SerialiseL(data);
       
  4535 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesUpdateMbmsSessionList::KLtsyDispatchPacketServicesUpdateMbmsSessionListApiId, KErrGeneral, data);
       
  4536 	data.Close();
       
  4537 
       
  4538 	packetMbmsContext.UpdateMbmsSessionList(reqStatus, action, session);    
       
  4539 	User::WaitForRequest(reqStatus);
       
  4540 	ASSERT_EQUALS(reqStatus.Int(), KErrGeneral);
       
  4541 	AssertMockLtsyStatusL();
       
  4542 	
       
  4543 	//check the results
       
  4544 	getMbmsSessionListAO->TestRetrieveL();
       
  4545 	getMbmsSessionListAO->CheckResultsL(*sessionIdList);		
       
  4546 
       
  4547 	//test remove in KErrNone complete case
       
  4548 	action = ERemoveEntries;
       
  4549 	session = 0;
       
  4550 	updateMbmsSessionListExpData.SerialiseL(data);
       
  4551 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesUpdateMbmsSessionList::KLtsyDispatchPacketServicesUpdateMbmsSessionListApiId, data);
       
  4552 	data.Close();
       
  4553 	
       
  4554 	updateMbmsSessionListCompData.SerialiseL(data);
       
  4555 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesUpdateMbmsSessionList::KLtsyDispatchPacketServicesUpdateMbmsSessionListApiId, KErrNone, data);
       
  4556 	data.Close();
       
  4557 
       
  4558 	packetMbmsContext.UpdateMbmsSessionList(reqStatus, action, session);    
       
  4559 	User::WaitForRequest(reqStatus);
       
  4560 	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
       
  4561 	AssertMockLtsyStatusL();
       
  4562 	
       
  4563 	//check the results
       
  4564 	getMbmsSessionListAO->TestRetrieveL();
       
  4565 	sessionIdList->iSessionIdList.Remove(session);
       
  4566 	getMbmsSessionListAO->CheckResultsL(*sessionIdList);		
       
  4567 
       
  4568 
       
  4569 	//test removeall in KErrNone complete case
       
  4570 	action = ERemoveAllEntries;
       
  4571 	session = 0;
       
  4572 	updateMbmsSessionListExpData.SerialiseL(data);
       
  4573 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesUpdateMbmsSessionList::KLtsyDispatchPacketServicesUpdateMbmsSessionListApiId, data);
       
  4574 	data.Close();
       
  4575 	
       
  4576 	updateMbmsSessionListCompData.SerialiseL(data);
       
  4577 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesUpdateMbmsSessionList::KLtsyDispatchPacketServicesUpdateMbmsSessionListApiId, KErrNone, data);
       
  4578 	data.Close();
       
  4579 
       
  4580 	packetMbmsContext.UpdateMbmsSessionList(reqStatus, action, session);    
       
  4581 	User::WaitForRequest(reqStatus);
       
  4582 	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
       
  4583 	AssertMockLtsyStatusL();
       
  4584 	
       
  4585 	//check the results
       
  4586 	getMbmsSessionListAO->TestRetrieveL();
       
  4587 	sessionIdList->iSessionIdList.Reset();
       
  4588 	getMbmsSessionListAO->CheckResultsL(*sessionIdList);		
       
  4589 	
       
  4590 	//for coverage
       
  4591 	getMbmsSessionListAO->TestCancel();
       
  4592 	
       
  4593 	CleanupStack::PopAndDestroy(sessionIdList);
       
  4594 	CleanupStack::PopAndDestroy(getMbmsSessionListAO);
       
  4595 	CleanupStack::PopAndDestroy(&packetMbmsContext);
       
  4596 	CleanupStack::PopAndDestroy(&packetService);
       
  4597 	CleanupStack::PopAndDestroy(&data);
       
  4598 	CleanupStack::PopAndDestroy(this);
       
  4599 	}
       
  4600 
       
  4601 /**
       
  4602 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00023
       
  4603 @SYMComponent telephony_ctsy
       
  4604 @SYMTestCaseDesc Test support in CTSY for RPacketService::NotifyConnectionInfoChange
       
  4605 @SYMTestPriority High
       
  4606 @SYMTestActions Invokes NotifyConnectionInfoChange, GetConnectionInfo
       
  4607 @SYMTestExpectedResults Pass
       
  4608 @SYMTestType UT
       
  4609  */
       
  4610 void CCTsyPacketServicesFU::TestUnit00023L()
       
  4611 	{				
       
  4612 #ifdef SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW
       
  4613 	OpenEtelServerL(EUseExtendedError);
       
  4614 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  4615 	OpenPhoneL();
       
  4616 
       
  4617 	RBuf8 data;
       
  4618 	CleanupClosePushL(data);
       
  4619 		
       
  4620 	RPacketService packetService;
       
  4621 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  4622 		
       
  4623 	TInfoName contextName;	
       
  4624 	RPacketContext packetContext;
       
  4625 	packetContext.OpenNewContext(packetService, contextName);
       
  4626 	CleanupClosePushL(packetContext);
       
  4627 	
       
  4628 	TRequestStatus notifyRequestStatus;	
       
  4629 	TRequestStatus mockLtsyStatus;	
       
  4630 	TRequestStatus requestStatus;
       
  4631     RPacketContext::TConnectionInfoV1 notifyConnectionInfoV1;		
       
  4632 	RPacketContext::TConnectionInfoV1 reqConnectionInfoV1;
       
  4633 	RPacketContext::TConnectionInfoV1 respConnectionInfoV1;
       
  4634 
       
  4635     //Initialize connectionInfoV1
       
  4636     notifyConnectionInfoV1.iValid = 0;
       
  4637     notifyConnectionInfoV1.iHSDPACategory = 0;
       
  4638     notifyConnectionInfoV1.iHSUPACategory = 0;	
       
  4639     
       
  4640     TPckg<RPacketContext::TConnectionInfoV1> pckgNotifyConnectionInfoV1(notifyConnectionInfoV1);     
       
  4641 	packetContext.NotifyConnectionInfoChange(notifyRequestStatus, pckgNotifyConnectionInfoV1);
       
  4642     
       
  4643 	//-------------------------------------------------------------------------
       
  4644 	// TEST A1: Successful completion of RPacketContext::GetConnectionInfo
       
  4645 	// request.
       
  4646 	//-------------------------------------------------------------------------
       
  4647 	 	
       
  4648 	TPckg<RPacketContext::TConnectionInfoV1> pckgReqConnectionInfoV1(reqConnectionInfoV1); 
       
  4649 		    	
       
  4650 	//Get connection info
       
  4651 	packetContext.GetConnectionInfo(requestStatus, pckgReqConnectionInfoV1);	
       
  4652 	User::WaitForRequest(requestStatus);	
       
  4653 	AssertMockLtsyStatusL();
       
  4654 		
       
  4655 	ASSERT_EQUALS(KErrNone, requestStatus.Int()); 	
       
  4656 	ASSERT_EQUALS((TInt)TConnectionInfoBase::KConnectionInfoV1, reqConnectionInfoV1.ExtensionId());
       
  4657 	ASSERT_EQUALS((TUint32)0, reqConnectionInfoV1.iValid);
       
  4658 
       
  4659 	//-------------------------------------------------------------------------
       
  4660 	// TEST A2: Successful completion of RPacketContext::GetConnectionInfo
       
  4661 	// request where RPacketContext::TConnectionInfoV1 parameter contains 
       
  4662 	// valid data.
       
  4663 	//-------------------------------------------------------------------------
       
  4664 		
       
  4665 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  4666 	TDesC* contextNamePtr = &contextName;
       
  4667 	respConnectionInfoV1.iValid = RPacketContext::KHSDPACategory;
       
  4668 	respConnectionInfoV1.iHSDPACategory = 5;
       
  4669 	respConnectionInfoV1.iValid |= RPacketContext::KHSUPACategory;
       
  4670 	respConnectionInfoV1.iHSUPACategory = 6;	    	
       
  4671 	TMockLtsyData2< TDesC*, RPacketContext::TConnectionInfoV1 > ltsyData(contextNamePtr, respConnectionInfoV1);
       
  4672 	ltsyData.SerialiseL(data);
       
  4673 	
       
  4674 	// Change connection information
       
  4675 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyConnectionInfoChangeIndId, KErrNone, data);
       
  4676 	data.Close();
       
  4677 	
       
  4678 	User::WaitForRequest(notifyRequestStatus);
       
  4679 	ASSERT_EQUALS(KErrNone, notifyRequestStatus.Int()); 	
       
  4680 	ASSERT_EQUALS(respConnectionInfoV1.ExtensionId(),   notifyConnectionInfoV1.ExtensionId());
       
  4681 	ASSERT_EQUALS(respConnectionInfoV1.iValid,          notifyConnectionInfoV1.iValid);
       
  4682 	ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory,  notifyConnectionInfoV1.iHSDPACategory);
       
  4683 	ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory,  notifyConnectionInfoV1.iHSUPACategory);
       
  4684 	
       
  4685 	User::WaitForRequest(mockLtsyStatus);
       
  4686 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  4687 
       
  4688 	//Get connection info
       
  4689 	packetContext.GetConnectionInfo(requestStatus, pckgReqConnectionInfoV1);
       
  4690 	User::WaitForRequest(requestStatus);	
       
  4691 	AssertMockLtsyStatusL();
       
  4692 		
       
  4693 	ASSERT_EQUALS(KErrNone, requestStatus.Int()); 	
       
  4694 	ASSERT_EQUALS(respConnectionInfoV1.ExtensionId(),   reqConnectionInfoV1.ExtensionId());
       
  4695 	ASSERT_EQUALS(respConnectionInfoV1.iValid,          reqConnectionInfoV1.iValid);
       
  4696 	ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory,  reqConnectionInfoV1.iHSDPACategory);
       
  4697 	ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory,  reqConnectionInfoV1.iHSUPACategory);
       
  4698 
       
  4699 	//close context
       
  4700 	DriverDeleteContextL(contextName);
       
  4701 	packetContext.Close();
       
  4702 	packetService.Close();	
       
  4703 	
       
  4704 	CleanupStack::PopAndDestroy(&packetContext);
       
  4705 	CleanupStack::PopAndDestroy(&packetService);
       
  4706 	CleanupStack::PopAndDestroy(&data);
       
  4707 	CleanupStack::PopAndDestroy(this);
       
  4708 #endif	
       
  4709 	}
       
  4710 
       
  4711 /**
       
  4712 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00024
       
  4713 @SYMComponent telephony_ctsy
       
  4714 @SYMTestCaseDesc Test conversions function CPacketServicesDispatcher::EtelPcktR99R4NegToEtelPcktR97NegQoS
       
  4715 @SYMTestPriority High
       
  4716 @SYMTestActions Invokes EtelPcktR99R4NegToEtelPcktR97NegQoS
       
  4717 @SYMTestExpectedResults Pass
       
  4718 @SYMTestType UT
       
  4719  */
       
  4720 void CCTsyPacketServicesFU::TestUnit00024L()
       
  4721 	{
       
  4722 	OpenEtelServerL(EUseExtendedError);
       
  4723 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  4724 	OpenPhoneL();
       
  4725 	
       
  4726 	RPacketService packetService;
       
  4727 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  4728 
       
  4729 	RBuf8 data;
       
  4730 	CleanupClosePushL(data);
       
  4731 
       
  4732 	TInfoName contextId;
       
  4733 	contextId.Copy(KFirstAllocatedContextName);
       
  4734 
       
  4735 	DriverInitialiseContextL();	
       
  4736 	
       
  4737 	// R99_R4 Configuration
       
  4738 	RPacketQoS::TQoSR99_R4Requested expectedPacketR99_R4Profile;
       
  4739 	expectedPacketR99_R4Profile.iMinTrafficClass = RPacketQoS::ETrafficClassConversational;
       
  4740 	expectedPacketR99_R4Profile.iMinDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
       
  4741 	expectedPacketR99_R4Profile.iMinDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
       
  4742 	expectedPacketR99_R4Profile.iMaxBER = RPacketQoS::EBERUnspecified;
       
  4743 	expectedPacketR99_R4Profile.iMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
       
  4744 	expectedPacketR99_R4Profile.iMinTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
       
  4745 	expectedPacketR99_R4Profile.iReqTrafficClass = RPacketQoS::ETrafficClassUnspecified;
       
  4746 	expectedPacketR99_R4Profile.iReqDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
       
  4747 	expectedPacketR99_R4Profile.iReqDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
       
  4748 	expectedPacketR99_R4Profile.iReqBER = RPacketQoS::EBERUnspecified;
       
  4749 	expectedPacketR99_R4Profile.iReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
       
  4750 	expectedPacketR99_R4Profile.iReqTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
       
  4751 	expectedPacketR99_R4Profile.iMaxTransferDelay = 0;
       
  4752 	expectedPacketR99_R4Profile.iMinAcceptableMaxRate.iDownlinkRate = 0;
       
  4753 	expectedPacketR99_R4Profile.iMinAcceptableMaxRate.iUplinkRate = 0;
       
  4754 	expectedPacketR99_R4Profile.iMinAcceptableMaxSDUSize = 0;
       
  4755 	expectedPacketR99_R4Profile.iMinGuaranteedRate.iDownlinkRate = 0;
       
  4756 	expectedPacketR99_R4Profile.iMinGuaranteedRate.iUplinkRate = 0;
       
  4757 	expectedPacketR99_R4Profile.iReqGuaranteedRate.iDownlinkRate = 0;
       
  4758 	expectedPacketR99_R4Profile.iReqGuaranteedRate.iUplinkRate = 0;
       
  4759 	expectedPacketR99_R4Profile.iReqMaxRate.iDownlinkRate = 0;
       
  4760 	expectedPacketR99_R4Profile.iReqMaxRate.iUplinkRate = 0;
       
  4761 	expectedPacketR99_R4Profile.iReqMaxSDUSize = 0;
       
  4762 	expectedPacketR99_R4Profile.iReqTransferDelay = 0;
       
  4763 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSR99_R4Requested> packetSetConfigR99_R4Data(contextId,
       
  4764 																					expectedPacketR99_R4Profile);
       
  4765 	data.Close();
       
  4766 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  4767 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  4768 
       
  4769 	TMockLtsyData1<TInfoName> callbackSetPdpR99_R4ContextNameData(contextId);
       
  4770 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  4771 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  4772 	
       
  4773 	RPacketQoS::TQoSR99_R4Negotiated completedProfileR99;
       
  4774 	completedProfileR99.iTrafficClass = RPacketQoS::ETrafficClassConversational;
       
  4775 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSR99_R4Negotiated> expLtsyQosProfileR99ChangedInd(contextId, completedProfileR99);
       
  4776 	data.Close();
       
  4777 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  4778 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);
       
  4779 	
       
  4780 	data.Close();
       
  4781 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  4782 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  4783 
       
  4784 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  4785 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  4786 	
       
  4787 	completedProfileR99.iTrafficClass = RPacketQoS::ETrafficClassStreaming;
       
  4788 	data.Close();
       
  4789 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  4790 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);
       
  4791 
       
  4792 	data.Close();
       
  4793 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  4794 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  4795 
       
  4796 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  4797 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  4798 	
       
  4799 	completedProfileR99.iTrafficClass = RPacketQoS::ETrafficClassInteractive;
       
  4800 	completedProfileR99.iTrafficHandlingPriority = RPacketQoS::ETrafficPriority1;
       
  4801 	data.Close();
       
  4802 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  4803 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  4804 
       
  4805 	data.Close();
       
  4806 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  4807 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  4808 
       
  4809 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  4810 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  4811 	
       
  4812 	completedProfileR99.iTrafficClass = RPacketQoS::ETrafficClassInteractive;
       
  4813 	completedProfileR99.iTrafficHandlingPriority = RPacketQoS::ETrafficPriority2;
       
  4814 	data.Close();
       
  4815 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  4816 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  4817 	
       
  4818 	data.Close();
       
  4819 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  4820 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  4821 
       
  4822 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  4823 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  4824 	
       
  4825 	completedProfileR99.iTrafficClass = RPacketQoS::ETrafficClassInteractive;
       
  4826 	completedProfileR99.iTrafficHandlingPriority = RPacketQoS::ETrafficPriority3;
       
  4827 	data.Close();
       
  4828 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  4829 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);
       
  4830 
       
  4831 	data.Close();
       
  4832 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  4833 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  4834 
       
  4835 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  4836 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  4837 	
       
  4838 	completedProfileR99.iTrafficClass = RPacketQoS::ETrafficClassBackground;
       
  4839 	data.Close();
       
  4840 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  4841 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  4842 
       
  4843 	data.Close();
       
  4844 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  4845 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  4846 
       
  4847 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  4848 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  4849 	
       
  4850 	completedProfileR99.iTrafficClass = RPacketQoS::ETrafficClassUnspecified;
       
  4851 	data.Close();
       
  4852 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  4853 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  4854 
       
  4855 	data.Close();
       
  4856 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  4857 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  4858 
       
  4859 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  4860 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  4861 	
       
  4862 	completedProfileR99.iSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerHundredThousand;
       
  4863 	data.Close();
       
  4864 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  4865 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);		
       
  4866 
       
  4867 	data.Close();
       
  4868 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  4869 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  4870 
       
  4871 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  4872 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  4873 	
       
  4874 	completedProfileR99.iSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerTenThousand;
       
  4875 	data.Close();
       
  4876 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  4877 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);		
       
  4878 
       
  4879 	data.Close();
       
  4880 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  4881 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  4882 
       
  4883 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  4884 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  4885 	
       
  4886 	completedProfileR99.iSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerThousand;
       
  4887 	completedProfileR99.iBER = RPacketQoS::EBEROnePerHundredThousand;
       
  4888 	data.Close();
       
  4889 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  4890 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  4891 
       
  4892 	data.Close();
       
  4893 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  4894 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  4895 
       
  4896 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  4897 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  4898 	
       
  4899 	completedProfileR99.iBER = RPacketQoS::EBEROnePerThousand;
       
  4900 	data.Close();
       
  4901 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  4902 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);		
       
  4903 
       
  4904 	data.Close();
       
  4905 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  4906 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  4907 
       
  4908 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  4909 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  4910 	
       
  4911 	completedProfileR99.iSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
       
  4912 	data.Close();
       
  4913 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  4914 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);		
       
  4915 	
       
  4916 	data.Close();
       
  4917 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  4918 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  4919 
       
  4920 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  4921 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  4922 	
       
  4923 	completedProfileR99.iMaxRate.iDownlinkRate = 10;
       
  4924 	completedProfileR99.iMaxRate.iUplinkRate = 10;
       
  4925 	data.Close();
       
  4926 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  4927 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);
       
  4928 	
       
  4929 	data.Close();
       
  4930 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  4931 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  4932 
       
  4933 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  4934 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  4935 	
       
  4936 	completedProfileR99.iMaxRate.iDownlinkRate = 11;
       
  4937 	completedProfileR99.iMaxRate.iUplinkRate = 11;
       
  4938 	data.Close();
       
  4939 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  4940 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);		
       
  4941 
       
  4942 	data.Close();
       
  4943 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  4944 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  4945 
       
  4946 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  4947 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  4948 	
       
  4949 	completedProfileR99.iMaxRate.iDownlinkRate = 16;
       
  4950 	completedProfileR99.iMaxRate.iUplinkRate = 16;
       
  4951 	data.Close();
       
  4952 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  4953 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);		
       
  4954 	
       
  4955 	data.Close();
       
  4956 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  4957 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  4958 
       
  4959 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  4960 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  4961 	
       
  4962 	completedProfileR99.iMaxRate.iDownlinkRate = 17;
       
  4963 	completedProfileR99.iMaxRate.iUplinkRate = 17;
       
  4964 	data.Close();
       
  4965 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  4966 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);		
       
  4967 	
       
  4968 	data.Close();
       
  4969 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  4970 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  4971 
       
  4972 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  4973 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  4974 	
       
  4975 	completedProfileR99.iMaxRate.iDownlinkRate = 32;
       
  4976 	completedProfileR99.iMaxRate.iUplinkRate = 32;
       
  4977 	data.Close();
       
  4978 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  4979 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);			
       
  4980 		
       
  4981 	data.Close();
       
  4982 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  4983 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  4984 
       
  4985 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  4986 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  4987 	
       
  4988 	completedProfileR99.iMaxRate.iDownlinkRate = 34;
       
  4989 	completedProfileR99.iMaxRate.iUplinkRate = 34;
       
  4990 	data.Close();
       
  4991 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  4992 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);		
       
  4993 
       
  4994 	data.Close();
       
  4995 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  4996 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  4997 
       
  4998 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  4999 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  5000 	
       
  5001 	completedProfileR99.iMaxRate.iDownlinkRate = 64;
       
  5002 	completedProfileR99.iMaxRate.iUplinkRate = 64;
       
  5003 	data.Close();
       
  5004 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  5005 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5006 	
       
  5007 	data.Close();
       
  5008 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  5009 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  5010 
       
  5011 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  5012 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  5013 	
       
  5014 	completedProfileR99.iMaxRate.iDownlinkRate = 127;
       
  5015 	completedProfileR99.iMaxRate.iUplinkRate = 127;
       
  5016 	data.Close();
       
  5017 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  5018 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);		
       
  5019 	
       
  5020 	data.Close();
       
  5021 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  5022 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  5023 
       
  5024 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  5025 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  5026 	
       
  5027 	completedProfileR99.iMaxRate.iDownlinkRate = 128;
       
  5028 	completedProfileR99.iMaxRate.iUplinkRate = 128;
       
  5029 	data.Close();
       
  5030 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  5031 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);
       
  5032 	
       
  5033 	data.Close();
       
  5034 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  5035 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  5036 
       
  5037 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  5038 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  5039 	
       
  5040 	completedProfileR99.iMaxRate.iDownlinkRate = 255;
       
  5041 	completedProfileR99.iMaxRate.iUplinkRate = 255;
       
  5042 	data.Close();
       
  5043 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  5044 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);		
       
  5045 	
       
  5046 	data.Close();
       
  5047 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  5048 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  5049 
       
  5050 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  5051 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  5052 	
       
  5053 	completedProfileR99.iMaxRate.iDownlinkRate = 256;
       
  5054 	completedProfileR99.iMaxRate.iUplinkRate = 256;
       
  5055 	data.Close();
       
  5056 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  5057 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);		
       
  5058 	
       
  5059 	data.Close();
       
  5060 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  5061 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  5062 
       
  5063 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  5064 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  5065 	
       
  5066 	completedProfileR99.iMaxRate.iDownlinkRate = 511;
       
  5067 	completedProfileR99.iMaxRate.iUplinkRate = 511;
       
  5068 	data.Close();
       
  5069 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  5070 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);		
       
  5071 	
       
  5072 	data.Close();
       
  5073 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  5074 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  5075 
       
  5076 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  5077 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  5078 	
       
  5079 	completedProfileR99.iMaxRate.iDownlinkRate = 512;
       
  5080 	completedProfileR99.iMaxRate.iUplinkRate = 512;
       
  5081 	data.Close();
       
  5082 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  5083 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);		
       
  5084 
       
  5085 	data.Close();
       
  5086 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  5087 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  5088 
       
  5089 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  5090 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  5091 	
       
  5092 	completedProfileR99.iMaxRate.iDownlinkRate = 1023;
       
  5093 	completedProfileR99.iMaxRate.iUplinkRate = 1023;
       
  5094 	data.Close();
       
  5095 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  5096 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);		
       
  5097 	
       
  5098 	data.Close();
       
  5099 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  5100 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  5101 
       
  5102 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  5103 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  5104 	
       
  5105 	completedProfileR99.iMaxRate.iDownlinkRate = 1024;
       
  5106 	completedProfileR99.iMaxRate.iUplinkRate = 1024;
       
  5107 	data.Close();
       
  5108 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  5109 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);		
       
  5110 
       
  5111 	data.Close();
       
  5112 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  5113 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  5114 
       
  5115 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  5116 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  5117 	
       
  5118 	completedProfileR99.iMaxRate.iDownlinkRate = 2047;
       
  5119 	completedProfileR99.iMaxRate.iUplinkRate = 2047;
       
  5120 	data.Close();
       
  5121 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  5122 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);		
       
  5123 
       
  5124 	data.Close();
       
  5125 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  5126 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  5127 
       
  5128 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  5129 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  5130 	
       
  5131 	completedProfileR99.iMaxRate.iDownlinkRate = 2048;
       
  5132 	completedProfileR99.iMaxRate.iUplinkRate = 2048;
       
  5133 	data.Close();
       
  5134 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  5135 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);		
       
  5136 
       
  5137 	data.Close();
       
  5138 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  5139 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  5140 
       
  5141 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  5142 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  5143 	
       
  5144 	completedProfileR99.iTrafficHandlingPriority = RPacketQoS::ETrafficPriority1;
       
  5145 	data.Close();
       
  5146 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  5147 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);		
       
  5148 	
       
  5149 	data.Close();
       
  5150 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  5151 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  5152 
       
  5153 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  5154 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  5155 	
       
  5156 	completedProfileR99.iTrafficHandlingPriority = RPacketQoS::ETrafficPriority2;
       
  5157 	data.Close();
       
  5158 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  5159 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5160 
       
  5161 	data.Close();
       
  5162 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  5163 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  5164 
       
  5165 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  5166 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  5167 	
       
  5168 	completedProfileR99.iTrafficHandlingPriority = RPacketQoS::ETrafficPriority3;
       
  5169 	data.Close();
       
  5170 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  5171 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5172 	
       
  5173 	data.Close();
       
  5174 	packetSetConfigR99_R4Data.SerialiseL(data);
       
  5175 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, data, KErrNone);
       
  5176 
       
  5177 	callbackSetPdpR99_R4ContextNameData.SerialiseL(data);
       
  5178 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosR99R4::KLtsyDispatchPacketServicesSetPdpContextQosR99R4ApiId, KErrNone, data);
       
  5179 	
       
  5180 	completedProfileR99.iTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
       
  5181 	data.Close();
       
  5182 	expLtsyQosProfileR99ChangedInd.SerialiseL(data);
       
  5183 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5184 	
       
  5185 	DriverDeleteContextL(contextId);
       
  5186 
       
  5187 	//
       
  5188 
       
  5189 	// client side test
       
  5190 	RPacketContext packetContext;
       
  5191 
       
  5192 	// Open a new context
       
  5193 	TInt err = packetContext.OpenNewContext(packetService, contextId);
       
  5194 	CleanupClosePushL(packetContext);
       
  5195 	ASSERT_EQUALS(KErrNone, err);
       
  5196 
       
  5197 	RPacketContext::TDataChannelV2 dataChannel;
       
  5198 	RPacketContext::TDataChannelV2Pckg dataChannelPk(dataChannel);
       
  5199 	TRequestStatus initialiseContextStatus;
       
  5200 
       
  5201 	packetContext.InitialiseContext(initialiseContextStatus,dataChannelPk);
       
  5202 	User::WaitForRequest(initialiseContextStatus);
       
  5203 	ASSERT_EQUALS(KErrNone, initialiseContextStatus.Int());
       
  5204 	ASSERT_TRUE(dataChannel.iPort == KFirstAllocatedContextName);
       
  5205 	ASSERT_TRUE(dataChannel.iChannelId == KDefaultChannelId); // Now depreciated
       
  5206 
       
  5207 	TName qosName;
       
  5208 	RPacketQoS packetQoS;
       
  5209 	packetQoS.OpenNewQoS(packetContext, qosName);
       
  5210 	CleanupClosePushL(packetQoS);	
       
  5211 		
       
  5212 	RPacketQoS::TQoSR99_R4Requested packetR99_R4;
       
  5213 	packetR99_R4.iMinTrafficClass = RPacketQoS::ETrafficClassConversational;
       
  5214 	packetR99_R4.iMinDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
       
  5215 	packetR99_R4.iMinDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
       
  5216 	packetR99_R4.iMaxBER = RPacketQoS::EBERUnspecified;
       
  5217 	packetR99_R4.iMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
       
  5218 	packetR99_R4.iMinTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
       
  5219 	packetR99_R4.iReqTrafficClass = RPacketQoS::ETrafficClassUnspecified;
       
  5220 	packetR99_R4.iReqDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
       
  5221 	packetR99_R4.iReqDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
       
  5222 	packetR99_R4.iReqBER = RPacketQoS::EBERUnspecified;
       
  5223 	packetR99_R4.iReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
       
  5224 	packetR99_R4.iReqTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
       
  5225 	packetR99_R4.iMaxTransferDelay = 0;
       
  5226 	packetR99_R4.iMinAcceptableMaxRate.iDownlinkRate = 0;
       
  5227 	packetR99_R4.iMinAcceptableMaxRate.iUplinkRate = 0;
       
  5228 	packetR99_R4.iMinAcceptableMaxSDUSize = 0;
       
  5229 	packetR99_R4.iMinGuaranteedRate.iDownlinkRate = 0;
       
  5230 	packetR99_R4.iMinGuaranteedRate.iUplinkRate = 0;
       
  5231 	packetR99_R4.iReqGuaranteedRate.iDownlinkRate = 0;
       
  5232 	packetR99_R4.iReqGuaranteedRate.iUplinkRate = 0;
       
  5233 	packetR99_R4.iReqMaxRate.iDownlinkRate = 0;
       
  5234 	packetR99_R4.iReqMaxRate.iUplinkRate = 0;
       
  5235 	packetR99_R4.iReqMaxSDUSize = 0;
       
  5236 	packetR99_R4.iReqTransferDelay = 0;
       
  5237 	TPckg< RPacketQoS::TQoSR99_R4Requested > profilePckgR99_R4(packetR99_R4);
       
  5238 		
       
  5239 	TRequestStatus requestStatusR99_R4;
       
  5240 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5241 	User::WaitForRequest(requestStatusR99_R4);
       
  5242 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());
       
  5243 
       
  5244 	TRequestStatus requestStatusGPRS;
       
  5245 	RPacketQoS::TQoSGPRSNegotiated qosGPRSNegotiatedProfile;
       
  5246     TPckg<RPacketQoS::TQoSGPRSNegotiated> profilePckgGPRS(qosGPRSNegotiatedProfile);	
       
  5247 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5248 	User::WaitForRequest(requestStatusGPRS);	
       
  5249 	ASSERT_EQUALS(RPacketQoS::EDelayClass1, qosGPRSNegotiatedProfile.iDelay);
       
  5250 	
       
  5251 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5252 	User::WaitForRequest(requestStatusR99_R4);
       
  5253 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());
       
  5254 	
       
  5255 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5256 	User::WaitForRequest(requestStatusGPRS);	
       
  5257 	ASSERT_EQUALS(RPacketQoS::EDelayClass1, qosGPRSNegotiatedProfile.iDelay);	
       
  5258 	
       
  5259 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5260 	User::WaitForRequest(requestStatusR99_R4);
       
  5261 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());		
       
  5262 
       
  5263 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5264 	User::WaitForRequest(requestStatusGPRS);	
       
  5265 	ASSERT_EQUALS(RPacketQoS::EDelayClass1, qosGPRSNegotiatedProfile.iDelay);	
       
  5266 	
       
  5267 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5268 	User::WaitForRequest(requestStatusR99_R4);
       
  5269 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());
       
  5270 
       
  5271 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5272 	User::WaitForRequest(requestStatusGPRS);	
       
  5273 	ASSERT_EQUALS(RPacketQoS::EDelayClass2, qosGPRSNegotiatedProfile.iDelay);
       
  5274 	
       
  5275 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5276 	User::WaitForRequest(requestStatusR99_R4);
       
  5277 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());	
       
  5278 
       
  5279 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5280 	User::WaitForRequest(requestStatusGPRS);	
       
  5281 	ASSERT_EQUALS(RPacketQoS::EDelayClass3, qosGPRSNegotiatedProfile.iDelay);	
       
  5282 	
       
  5283 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5284 	User::WaitForRequest(requestStatusR99_R4);
       
  5285 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());
       
  5286 
       
  5287 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5288 	User::WaitForRequest(requestStatusGPRS);	
       
  5289 	ASSERT_EQUALS(RPacketQoS::EDelayClass4, qosGPRSNegotiatedProfile.iDelay);	
       
  5290 		
       
  5291 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5292 	User::WaitForRequest(requestStatusR99_R4);
       
  5293 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());	
       
  5294 
       
  5295 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5296 	User::WaitForRequest(requestStatusGPRS);	
       
  5297 	ASSERT_EQUALS(RPacketQoS::EUnspecifiedDelayClass, qosGPRSNegotiatedProfile.iDelay);	
       
  5298 		
       
  5299 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5300 	User::WaitForRequest(requestStatusR99_R4);
       
  5301 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());
       
  5302 
       
  5303 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5304 	User::WaitForRequest(requestStatusGPRS);	
       
  5305 	ASSERT_EQUALS(RPacketQoS::EReliabilityClass2, qosGPRSNegotiatedProfile.iReliability);	
       
  5306 		
       
  5307 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5308 	User::WaitForRequest(requestStatusR99_R4);
       
  5309 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());	
       
  5310 
       
  5311 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5312 	User::WaitForRequest(requestStatusGPRS);	
       
  5313 	ASSERT_EQUALS(RPacketQoS::EReliabilityClass3, qosGPRSNegotiatedProfile.iReliability);	
       
  5314 		
       
  5315 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5316 	User::WaitForRequest(requestStatusR99_R4);
       
  5317 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());
       
  5318 
       
  5319 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5320 	User::WaitForRequest(requestStatusGPRS);	
       
  5321 	ASSERT_EQUALS(RPacketQoS::EReliabilityClass4, qosGPRSNegotiatedProfile.iReliability);	
       
  5322 		
       
  5323 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5324 	User::WaitForRequest(requestStatusR99_R4);
       
  5325 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());	
       
  5326 
       
  5327 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5328 	User::WaitForRequest(requestStatusGPRS);	
       
  5329 	ASSERT_EQUALS(RPacketQoS::EReliabilityClass5, qosGPRSNegotiatedProfile.iReliability);	
       
  5330 		
       
  5331 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5332 	User::WaitForRequest(requestStatusR99_R4);
       
  5333 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());
       
  5334 
       
  5335 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5336 	User::WaitForRequest(requestStatusGPRS);	
       
  5337 	ASSERT_EQUALS(RPacketQoS::EUnspecifiedReliabilityClass, qosGPRSNegotiatedProfile.iReliability);	
       
  5338 		
       
  5339 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5340 	User::WaitForRequest(requestStatusR99_R4);
       
  5341 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());	
       
  5342 
       
  5343 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5344 	User::WaitForRequest(requestStatusGPRS);	
       
  5345 	ASSERT_EQUALS(RPacketQoS::EPeakThroughput1000, qosGPRSNegotiatedProfile.iPeakThroughput);	
       
  5346 	
       
  5347 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5348 	User::WaitForRequest(requestStatusR99_R4);
       
  5349 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());
       
  5350 
       
  5351 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5352 	User::WaitForRequest(requestStatusGPRS);	
       
  5353 	ASSERT_EQUALS(RPacketQoS::EPeakThroughput1000, qosGPRSNegotiatedProfile.iPeakThroughput);		
       
  5354 	
       
  5355 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5356 	User::WaitForRequest(requestStatusR99_R4);
       
  5357 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());
       
  5358 	
       
  5359 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5360 	User::WaitForRequest(requestStatusGPRS);	
       
  5361 	ASSERT_EQUALS(RPacketQoS::EPeakThroughput2000, qosGPRSNegotiatedProfile.iPeakThroughput);		
       
  5362 	
       
  5363 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5364 	User::WaitForRequest(requestStatusR99_R4);
       
  5365 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());
       
  5366 
       
  5367 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5368 	User::WaitForRequest(requestStatusGPRS);	
       
  5369 	ASSERT_EQUALS(RPacketQoS::EPeakThroughput2000, qosGPRSNegotiatedProfile.iPeakThroughput);		
       
  5370 	
       
  5371 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5372 	User::WaitForRequest(requestStatusR99_R4);
       
  5373 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());	
       
  5374 
       
  5375 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5376 	User::WaitForRequest(requestStatusGPRS);	
       
  5377 	ASSERT_EQUALS(RPacketQoS::EPeakThroughput4000, qosGPRSNegotiatedProfile.iPeakThroughput);		
       
  5378 		
       
  5379 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5380 	User::WaitForRequest(requestStatusR99_R4);
       
  5381 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());
       
  5382 
       
  5383 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5384 	User::WaitForRequest(requestStatusGPRS);	
       
  5385 	ASSERT_EQUALS(RPacketQoS::EPeakThroughput4000, qosGPRSNegotiatedProfile.iPeakThroughput);		
       
  5386 		
       
  5387 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5388 	User::WaitForRequest(requestStatusR99_R4);
       
  5389 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());	
       
  5390 
       
  5391 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5392 	User::WaitForRequest(requestStatusGPRS);	
       
  5393 	ASSERT_EQUALS(RPacketQoS::EPeakThroughput8000, qosGPRSNegotiatedProfile.iPeakThroughput);		
       
  5394 		
       
  5395 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5396 	User::WaitForRequest(requestStatusR99_R4);
       
  5397 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());
       
  5398 
       
  5399 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5400 	User::WaitForRequest(requestStatusGPRS);	
       
  5401 	ASSERT_EQUALS(RPacketQoS::EPeakThroughput8000, qosGPRSNegotiatedProfile.iPeakThroughput);		
       
  5402 			
       
  5403 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5404 	User::WaitForRequest(requestStatusR99_R4);
       
  5405 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());	
       
  5406 
       
  5407 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5408 	User::WaitForRequest(requestStatusGPRS);	
       
  5409 	ASSERT_EQUALS(RPacketQoS::EPeakThroughput16000, qosGPRSNegotiatedProfile.iPeakThroughput);		
       
  5410 		
       
  5411 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5412 	User::WaitForRequest(requestStatusR99_R4);
       
  5413 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());
       
  5414 
       
  5415 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5416 	User::WaitForRequest(requestStatusGPRS);	
       
  5417 	ASSERT_EQUALS(RPacketQoS::EPeakThroughput16000, qosGPRSNegotiatedProfile.iPeakThroughput);		
       
  5418 		
       
  5419 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5420 	User::WaitForRequest(requestStatusR99_R4);
       
  5421 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());	
       
  5422 
       
  5423 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5424 	User::WaitForRequest(requestStatusGPRS);	
       
  5425 	ASSERT_EQUALS(RPacketQoS::EPeakThroughput32000, qosGPRSNegotiatedProfile.iPeakThroughput);		
       
  5426 		
       
  5427 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5428 	User::WaitForRequest(requestStatusR99_R4);
       
  5429 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());
       
  5430 
       
  5431 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5432 	User::WaitForRequest(requestStatusGPRS);	
       
  5433 	ASSERT_EQUALS(RPacketQoS::EPeakThroughput32000, qosGPRSNegotiatedProfile.iPeakThroughput);		
       
  5434 		
       
  5435 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5436 	User::WaitForRequest(requestStatusR99_R4);
       
  5437 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());		
       
  5438 
       
  5439 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5440 	User::WaitForRequest(requestStatusGPRS);	
       
  5441 	ASSERT_EQUALS(RPacketQoS::EPeakThroughput64000, qosGPRSNegotiatedProfile.iPeakThroughput);		
       
  5442 		
       
  5443 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5444 	User::WaitForRequest(requestStatusR99_R4);
       
  5445 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());
       
  5446 
       
  5447 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5448 	User::WaitForRequest(requestStatusGPRS);	
       
  5449 	ASSERT_EQUALS(RPacketQoS::EPeakThroughput64000, qosGPRSNegotiatedProfile.iPeakThroughput);		
       
  5450 		
       
  5451 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5452 	User::WaitForRequest(requestStatusR99_R4);
       
  5453 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());	
       
  5454 
       
  5455 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5456 	User::WaitForRequest(requestStatusGPRS);	
       
  5457 	ASSERT_EQUALS(RPacketQoS::EPeakThroughput128000, qosGPRSNegotiatedProfile.iPeakThroughput);		
       
  5458 		
       
  5459 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5460 	User::WaitForRequest(requestStatusR99_R4);
       
  5461 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());
       
  5462 
       
  5463 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5464 	User::WaitForRequest(requestStatusGPRS);	
       
  5465 	ASSERT_EQUALS(RPacketQoS::EPeakThroughput128000, qosGPRSNegotiatedProfile.iPeakThroughput);		
       
  5466 		
       
  5467 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5468 	User::WaitForRequest(requestStatusR99_R4);
       
  5469 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());	
       
  5470 
       
  5471 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5472 	User::WaitForRequest(requestStatusGPRS);	
       
  5473 	ASSERT_EQUALS(RPacketQoS::EPeakThroughput256000, qosGPRSNegotiatedProfile.iPeakThroughput);		
       
  5474 		
       
  5475 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5476 	User::WaitForRequest(requestStatusR99_R4);
       
  5477 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());
       
  5478 
       
  5479 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5480 	User::WaitForRequest(requestStatusGPRS);	
       
  5481 	ASSERT_EQUALS(RPacketQoS::EPriorityHighPrecedence, qosGPRSNegotiatedProfile.iPrecedence);		
       
  5482 	
       
  5483 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5484 	User::WaitForRequest(requestStatusR99_R4);
       
  5485 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());	
       
  5486 
       
  5487 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5488 	User::WaitForRequest(requestStatusGPRS);	
       
  5489 	ASSERT_EQUALS(RPacketQoS::EPriorityMediumPrecedence, qosGPRSNegotiatedProfile.iPrecedence);		
       
  5490 			
       
  5491 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5492 	User::WaitForRequest(requestStatusR99_R4);
       
  5493 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());
       
  5494 
       
  5495 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5496 	User::WaitForRequest(requestStatusGPRS);	
       
  5497 	ASSERT_EQUALS(RPacketQoS::EPriorityLowPrecedence, qosGPRSNegotiatedProfile.iPrecedence);	
       
  5498 		
       
  5499 	packetQoS.SetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  5500 	User::WaitForRequest(requestStatusR99_R4);
       
  5501 	ASSERT_EQUALS(KErrNone, requestStatusR99_R4.Int());	
       
  5502 	
       
  5503 	packetQoS.GetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  5504 	User::WaitForRequest(requestStatusGPRS);	
       
  5505 	ASSERT_EQUALS(RPacketQoS::EUnspecifiedPrecedence, qosGPRSNegotiatedProfile.iPrecedence);	
       
  5506 
       
  5507 	packetQoS.Close();
       
  5508 	packetContext.Close();
       
  5509 	packetService.Close();
       
  5510 
       
  5511 	// Let the mock-LTSY finish up before asserting.
       
  5512 	User::After(1000000);
       
  5513 	
       
  5514 	AssertMockLtsyStatusL();
       
  5515 	CleanupStack::PopAndDestroy(5, this); // data, data,  packetService, packetContext, this	
       
  5516 	}
       
  5517 	
       
  5518 /**
       
  5519 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00025
       
  5520 @SYMComponent telephony_ctsy
       
  5521 @SYMTestCaseDesc Test conversions function CPacketServicesDispatcher::EtelPcktR97NegToEtelPcktR99R4NegQoS
       
  5522 @SYMTestPriority High
       
  5523 @SYMTestActions Invokes EtelPcktR97NegToEtelPcktR99R4NegQoS
       
  5524 @SYMTestExpectedResults Pass
       
  5525 @SYMTestType UT
       
  5526  */
       
  5527 void CCTsyPacketServicesFU::TestUnit00025L()
       
  5528 	{
       
  5529 	OpenEtelServerL(EUseExtendedError);
       
  5530 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  5531 	OpenPhoneL();
       
  5532 	
       
  5533 	RPacketService packetService;
       
  5534 	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
       
  5535 
       
  5536 	RBuf8 data;
       
  5537 	CleanupClosePushL(data);
       
  5538 
       
  5539 	TInfoName contextId;
       
  5540 	contextId.Copy(KFirstAllocatedContextName);
       
  5541 
       
  5542 	//
       
  5543 
       
  5544 	DriverInitialiseContextL();
       
  5545 
       
  5546 	// GPRS Configuration
       
  5547 	RPacketQoS::TQoSGPRSRequested qosExpectedRequestedGPRSProfile;
       
  5548 	qosExpectedRequestedGPRSProfile.iReqPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  5549 	qosExpectedRequestedGPRSProfile.iMinPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  5550 	qosExpectedRequestedGPRSProfile.iReqDelay = RPacketQoS::EUnspecifiedDelayClass;
       
  5551 	qosExpectedRequestedGPRSProfile.iMinDelay = RPacketQoS::EUnspecifiedDelayClass;
       
  5552 	qosExpectedRequestedGPRSProfile.iReqReliability = RPacketQoS::EUnspecifiedReliabilityClass;
       
  5553 	qosExpectedRequestedGPRSProfile.iMinReliability = RPacketQoS::EUnspecifiedReliabilityClass;
       
  5554 	qosExpectedRequestedGPRSProfile.iReqPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  5555 	qosExpectedRequestedGPRSProfile.iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  5556 	qosExpectedRequestedGPRSProfile.iReqMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
       
  5557 	qosExpectedRequestedGPRSProfile.iMinMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
       
  5558 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSGPRSRequested> packetSetConfigGPRSData(contextId,
       
  5559 																				qosExpectedRequestedGPRSProfile);
       
  5560 	data.Close();
       
  5561 	packetSetConfigGPRSData.SerialiseL(data);
       
  5562 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5563 
       
  5564 	TMockLtsyData1<TInfoName> callbackSetPdpGPRSContextNameData(contextId);
       
  5565 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5566 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5567 
       
  5568 	RPacketQoS::TQoSGPRSNegotiated completedProfileGPRS;
       
  5569 	completedProfileGPRS.iDelay = RPacketQoS::EDelayClass1;	
       
  5570 	TMockLtsyData2<TInfoName, RPacketQoS::TQoSGPRSNegotiated> expLtsyQosProfileGPRSChangedInd(contextId, completedProfileGPRS);
       
  5571 	data.Close();
       
  5572 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5573 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);
       
  5574 
       
  5575 	data.Close();	
       
  5576 	
       
  5577 	packetSetConfigGPRSData.SerialiseL(data);
       
  5578 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5579 
       
  5580 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5581 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5582 
       
  5583 	completedProfileGPRS.iDelay = RPacketQoS::EDelayClass2;	
       
  5584 	data.Close();
       
  5585 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5586 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5587 	
       
  5588 	data.Close();	
       
  5589 	packetSetConfigGPRSData.SerialiseL(data);
       
  5590 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5591 
       
  5592 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5593 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5594 		
       
  5595 	completedProfileGPRS.iDelay = RPacketQoS::EDelayClass3;
       
  5596 	data.Close();
       
  5597 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5598 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5599 
       
  5600 	data.Close();	
       
  5601 	packetSetConfigGPRSData.SerialiseL(data);
       
  5602 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5603 
       
  5604 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5605 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5606 		
       
  5607 	completedProfileGPRS.iDelay = RPacketQoS::EDelayClass4;
       
  5608 	data.Close();
       
  5609 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5610 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5611 
       
  5612 	data.Close();	
       
  5613 	packetSetConfigGPRSData.SerialiseL(data);
       
  5614 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5615 
       
  5616 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5617 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5618 		
       
  5619 	completedProfileGPRS.iDelay = RPacketQoS::EUnspecifiedDelayClass;
       
  5620 	data.Close();
       
  5621 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5622 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5623 
       
  5624 	data.Close();	
       
  5625 	packetSetConfigGPRSData.SerialiseL(data);
       
  5626 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5627 
       
  5628 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5629 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5630 		
       
  5631 	completedProfileGPRS.iDelay = RPacketQoS::EDelayClass1;
       
  5632 	data.Close();
       
  5633 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5634 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5635 	
       
  5636 	data.Close();	
       
  5637 	packetSetConfigGPRSData.SerialiseL(data);
       
  5638 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5639 
       
  5640 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5641 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5642 	
       
  5643 	completedProfileGPRS.iDelay = RPacketQoS::EDelayClass2;
       
  5644 	data.Close();
       
  5645 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5646 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5647 
       
  5648 	data.Close();	
       
  5649 	packetSetConfigGPRSData.SerialiseL(data);
       
  5650 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5651 
       
  5652 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5653 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5654 	
       
  5655 	completedProfileGPRS.iDelay = RPacketQoS::EDelayClass3;
       
  5656 	data.Close();
       
  5657 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5658 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5659 
       
  5660 	data.Close();	
       
  5661 	packetSetConfigGPRSData.SerialiseL(data);
       
  5662 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5663 
       
  5664 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5665 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5666 
       
  5667 	completedProfileGPRS.iDelay = RPacketQoS::EUnspecifiedDelayClass;
       
  5668 	data.Close();
       
  5669 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5670 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5671 
       
  5672 	data.Close();	
       
  5673 	packetSetConfigGPRSData.SerialiseL(data);
       
  5674 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5675 
       
  5676 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5677 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5678 	
       
  5679 	completedProfileGPRS.iReliability = RPacketQoS::EReliabilityClass1;
       
  5680 	data.Close();
       
  5681 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5682 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5683 
       
  5684 	data.Close();	
       
  5685 	packetSetConfigGPRSData.SerialiseL(data);
       
  5686 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5687 
       
  5688 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5689 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5690 	
       
  5691 	completedProfileGPRS.iReliability = RPacketQoS::EReliabilityClass2;
       
  5692 	data.Close();
       
  5693 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5694 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5695 
       
  5696 	data.Close();	
       
  5697 	packetSetConfigGPRSData.SerialiseL(data);
       
  5698 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5699 
       
  5700 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5701 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5702 	
       
  5703 	completedProfileGPRS.iReliability = RPacketQoS::EReliabilityClass3;
       
  5704 	data.Close();
       
  5705 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5706 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5707 
       
  5708 	data.Close();	
       
  5709 	packetSetConfigGPRSData.SerialiseL(data);
       
  5710 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5711 
       
  5712 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5713 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5714 	
       
  5715 	completedProfileGPRS.iReliability = RPacketQoS::EReliabilityClass4;
       
  5716 	data.Close();
       
  5717 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5718 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5719 
       
  5720 	data.Close();	
       
  5721 	packetSetConfigGPRSData.SerialiseL(data);
       
  5722 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5723 
       
  5724 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5725 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5726 	
       
  5727 	completedProfileGPRS.iReliability = RPacketQoS::EReliabilityClass5;
       
  5728 	data.Close();
       
  5729 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5730 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5731 
       
  5732 	data.Close();	
       
  5733 	packetSetConfigGPRSData.SerialiseL(data);
       
  5734 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5735 
       
  5736 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5737 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5738 	
       
  5739 	completedProfileGPRS.iReliability = RPacketQoS::EUnspecifiedReliabilityClass;
       
  5740 	data.Close();
       
  5741 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5742 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5743 
       
  5744 	data.Close();	
       
  5745 	packetSetConfigGPRSData.SerialiseL(data);
       
  5746 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5747 
       
  5748 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5749 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5750 	
       
  5751 	completedProfileGPRS.iReliability = RPacketQoS::EReliabilityClass1;
       
  5752 	data.Close();
       
  5753 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5754 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5755 
       
  5756 	data.Close();	
       
  5757 	packetSetConfigGPRSData.SerialiseL(data);
       
  5758 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5759 
       
  5760 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5761 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5762 	
       
  5763 	completedProfileGPRS.iReliability = RPacketQoS::EReliabilityClass2;
       
  5764 	data.Close();
       
  5765 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5766 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5767 
       
  5768 	data.Close();	
       
  5769 	packetSetConfigGPRSData.SerialiseL(data);
       
  5770 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5771 
       
  5772 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5773 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5774 
       
  5775 	completedProfileGPRS.iReliability = RPacketQoS::EReliabilityClass3;
       
  5776 	data.Close();
       
  5777 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5778 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5779 
       
  5780 	data.Close();	
       
  5781 	packetSetConfigGPRSData.SerialiseL(data);
       
  5782 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5783 
       
  5784 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5785 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5786 
       
  5787 	completedProfileGPRS.iReliability = RPacketQoS::EReliabilityClass4;
       
  5788 	data.Close();
       
  5789 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5790 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5791 
       
  5792 	data.Close();	
       
  5793 	packetSetConfigGPRSData.SerialiseL(data);
       
  5794 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5795 
       
  5796 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5797 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5798 
       
  5799 	completedProfileGPRS.iReliability = RPacketQoS::EReliabilityClass5;
       
  5800 	data.Close();
       
  5801 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5802 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5803 
       
  5804 	data.Close();	
       
  5805 	packetSetConfigGPRSData.SerialiseL(data);
       
  5806 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5807 
       
  5808 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5809 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5810 
       
  5811 	completedProfileGPRS.iReliability = RPacketQoS::EUnspecifiedReliabilityClass;
       
  5812 	data.Close();
       
  5813 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5814 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5815 
       
  5816 	data.Close();	
       
  5817 	packetSetConfigGPRSData.SerialiseL(data);
       
  5818 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5819 
       
  5820 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5821 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5822 
       
  5823 	completedProfileGPRS.iReliability = RPacketQoS::EReliabilityClass1;
       
  5824 	data.Close();
       
  5825 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5826 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5827 
       
  5828 	data.Close();	
       
  5829 	packetSetConfigGPRSData.SerialiseL(data);
       
  5830 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5831 
       
  5832 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5833 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5834 
       
  5835 	completedProfileGPRS.iReliability = RPacketQoS::EReliabilityClass2;
       
  5836 	data.Close();
       
  5837 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5838 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5839 
       
  5840 	data.Close();	
       
  5841 	packetSetConfigGPRSData.SerialiseL(data);
       
  5842 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5843 
       
  5844 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5845 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5846 
       
  5847 	completedProfileGPRS.iReliability = RPacketQoS::EReliabilityClass3;
       
  5848 	data.Close();
       
  5849 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5850 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5851 
       
  5852 	data.Close();	
       
  5853 	packetSetConfigGPRSData.SerialiseL(data);
       
  5854 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5855 
       
  5856 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5857 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5858 
       
  5859 	completedProfileGPRS.iReliability = RPacketQoS::EReliabilityClass4;
       
  5860 	data.Close();
       
  5861 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5862 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5863 
       
  5864 	data.Close();	
       
  5865 	packetSetConfigGPRSData.SerialiseL(data);
       
  5866 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5867 
       
  5868 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5869 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5870 
       
  5871 	completedProfileGPRS.iReliability = RPacketQoS::EReliabilityClass5;
       
  5872 	data.Close();
       
  5873 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5874 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5875 
       
  5876 	data.Close();	
       
  5877 	packetSetConfigGPRSData.SerialiseL(data);
       
  5878 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5879 
       
  5880 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5881 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5882 
       
  5883 	completedProfileGPRS.iReliability = RPacketQoS::EUnspecifiedReliabilityClass;
       
  5884 	data.Close();
       
  5885 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5886 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5887 
       
  5888 	data.Close();	
       
  5889 	packetSetConfigGPRSData.SerialiseL(data);
       
  5890 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5891 
       
  5892 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5893 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5894 
       
  5895 	completedProfileGPRS.iPeakThroughput = RPacketQoS::EPeakThroughput1000;
       
  5896 	data.Close();
       
  5897 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5898 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5899 
       
  5900 	data.Close();	
       
  5901 	packetSetConfigGPRSData.SerialiseL(data);
       
  5902 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5903 
       
  5904 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5905 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5906 
       
  5907 	completedProfileGPRS.iPeakThroughput = RPacketQoS::EPeakThroughput2000;
       
  5908 	data.Close();
       
  5909 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5910 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5911 
       
  5912 	data.Close();	
       
  5913 	packetSetConfigGPRSData.SerialiseL(data);
       
  5914 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5915 
       
  5916 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5917 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5918 
       
  5919 	completedProfileGPRS.iPeakThroughput = RPacketQoS::EPeakThroughput4000;
       
  5920 	data.Close();
       
  5921 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5922 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5923 
       
  5924 	data.Close();	
       
  5925 	packetSetConfigGPRSData.SerialiseL(data);
       
  5926 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5927 
       
  5928 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5929 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5930 
       
  5931 	completedProfileGPRS.iPeakThroughput = RPacketQoS::EPeakThroughput8000;
       
  5932 	data.Close();
       
  5933 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5934 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5935 
       
  5936 	data.Close();	
       
  5937 	packetSetConfigGPRSData.SerialiseL(data);
       
  5938 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5939 
       
  5940 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5941 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5942 
       
  5943 	completedProfileGPRS.iPeakThroughput = RPacketQoS::EPeakThroughput16000;
       
  5944 	data.Close();
       
  5945 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5946 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5947 
       
  5948 	data.Close();	
       
  5949 	packetSetConfigGPRSData.SerialiseL(data);
       
  5950 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5951 
       
  5952 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5953 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5954 
       
  5955 	completedProfileGPRS.iPeakThroughput = RPacketQoS::EPeakThroughput32000;
       
  5956 	data.Close();
       
  5957 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5958 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5959 
       
  5960 	data.Close();	
       
  5961 	packetSetConfigGPRSData.SerialiseL(data);
       
  5962 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5963 
       
  5964 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5965 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5966 
       
  5967 	completedProfileGPRS.iPeakThroughput = RPacketQoS::EPeakThroughput64000;
       
  5968 	data.Close();
       
  5969 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5970 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5971 
       
  5972 	data.Close();	
       
  5973 	packetSetConfigGPRSData.SerialiseL(data);
       
  5974 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5975 
       
  5976 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5977 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5978 
       
  5979 	completedProfileGPRS.iPeakThroughput = RPacketQoS::EPeakThroughput128000;
       
  5980 	data.Close();
       
  5981 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5982 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5983 
       
  5984 	data.Close();	
       
  5985 	packetSetConfigGPRSData.SerialiseL(data);
       
  5986 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5987 
       
  5988 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  5989 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  5990 
       
  5991 	completedProfileGPRS.iPeakThroughput = RPacketQoS::EPeakThroughput256000;
       
  5992 	data.Close();
       
  5993 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  5994 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  5995 
       
  5996 	data.Close();	
       
  5997 	packetSetConfigGPRSData.SerialiseL(data);
       
  5998 	iMockLTSY.ExpectL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, data, KErrNone);
       
  5999 
       
  6000 	callbackSetPdpGPRSContextNameData.SerialiseL(data);
       
  6001 	iMockLTSY.CompleteL(MLtsyDispatchPacketServicesSetPdpContextQosGprs::KLtsyDispatchPacketServicesSetPdpContextQosGprsApiId, KErrNone, data);
       
  6002 
       
  6003 	completedProfileGPRS.iPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;	
       
  6004 	data.Close();
       
  6005 	expLtsyQosProfileGPRSChangedInd.SerialiseL(data);
       
  6006 	iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyQosProfileChangedIndId, KErrNone, data);	
       
  6007 	
       
  6008 	DriverDeleteContextL(contextId);
       
  6009 
       
  6010 	//	
       
  6011 	
       
  6012 	// client side test
       
  6013 	RPacketContext packetContext;
       
  6014 
       
  6015 	// Open a new context
       
  6016 	TInt err = packetContext.OpenNewContext(packetService, contextId);
       
  6017 	CleanupClosePushL(packetContext);
       
  6018 	ASSERT_EQUALS(KErrNone, err);
       
  6019 
       
  6020 	RPacketContext::TDataChannelV2 dataChannel;
       
  6021 	RPacketContext::TDataChannelV2Pckg dataChannelPk(dataChannel);
       
  6022 	TRequestStatus initialiseContextStatus;
       
  6023 
       
  6024 	packetContext.InitialiseContext(initialiseContextStatus,dataChannelPk);
       
  6025 	User::WaitForRequest(initialiseContextStatus);
       
  6026 	ASSERT_EQUALS(KErrNone, initialiseContextStatus.Int());
       
  6027 	ASSERT_TRUE(dataChannel.iPort == KFirstAllocatedContextName);
       
  6028 	ASSERT_TRUE(dataChannel.iChannelId == KDefaultChannelId); // Now depreciated
       
  6029 
       
  6030 	TName qosName;
       
  6031 	RPacketQoS packetQoS;
       
  6032 	packetQoS.OpenNewQoS(packetContext, qosName);
       
  6033 	CleanupClosePushL(packetQoS);
       
  6034 
       
  6035 	//
       
  6036     // SetProfileParameters for GPRS Configurations
       
  6037     //
       
  6038 
       
  6039 	RPacketQoS::TQoSGPRSRequested qosGPRSRequestedProfile;
       
  6040 	qosGPRSRequestedProfile.iReqPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  6041 	qosGPRSRequestedProfile.iMinPrecedence = RPacketQoS::EUnspecifiedPrecedence;
       
  6042 	qosGPRSRequestedProfile.iReqDelay = RPacketQoS::EUnspecifiedDelayClass;
       
  6043 	qosGPRSRequestedProfile.iMinDelay = RPacketQoS::EUnspecifiedDelayClass;
       
  6044 	qosGPRSRequestedProfile.iReqReliability = RPacketQoS::EUnspecifiedReliabilityClass;
       
  6045 	qosGPRSRequestedProfile.iMinReliability = RPacketQoS::EUnspecifiedReliabilityClass;
       
  6046 	qosGPRSRequestedProfile.iReqPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  6047 	qosGPRSRequestedProfile.iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
       
  6048 	qosGPRSRequestedProfile.iReqMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
       
  6049 	qosGPRSRequestedProfile.iMinMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
       
  6050     TPckg<RPacketQoS::TQoSGPRSRequested> profilePckgGPRS(qosGPRSRequestedProfile);
       
  6051     
       
  6052 	TRequestStatus requestStatusGPRS;
       
  6053 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6054 	User::WaitForRequest(requestStatusGPRS);
       
  6055 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6056 	
       
  6057 	TRequestStatus requestStatusR99_R4;
       
  6058 	RPacketQoS::TQoSR99_R4Negotiated qosR99_R4NegotiatedProfile;
       
  6059     TPckg<RPacketQoS::TQoSR99_R4Negotiated> profilePckgR99_R4(qosR99_R4NegotiatedProfile);	
       
  6060 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6061 	User::WaitForRequest(requestStatusR99_R4);
       
  6062 	ASSERT_EQUALS(RPacketQoS::ETrafficClassInteractive, qosR99_R4NegotiatedProfile.iTrafficClass);	
       
  6063 
       
  6064 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6065 	User::WaitForRequest(requestStatusGPRS);
       
  6066 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6067 	
       
  6068 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6069 	User::WaitForRequest(requestStatusR99_R4);	
       
  6070 	ASSERT_EQUALS(RPacketQoS::ETrafficClassInteractive, qosR99_R4NegotiatedProfile.iTrafficClass);	
       
  6071 	
       
  6072 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6073 	User::WaitForRequest(requestStatusGPRS);
       
  6074 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6075 	
       
  6076 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6077 	User::WaitForRequest(requestStatusR99_R4);	
       
  6078 	ASSERT_EQUALS(RPacketQoS::ETrafficClassInteractive, qosR99_R4NegotiatedProfile.iTrafficClass);	
       
  6079 
       
  6080 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6081 	User::WaitForRequest(requestStatusGPRS);
       
  6082 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6083 	
       
  6084 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6085 	User::WaitForRequest(requestStatusR99_R4);	
       
  6086 	ASSERT_EQUALS(RPacketQoS::ETrafficClassBackground, qosR99_R4NegotiatedProfile.iTrafficClass);	
       
  6087 	
       
  6088 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6089 	User::WaitForRequest(requestStatusGPRS);
       
  6090 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6091 
       
  6092 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6093 	User::WaitForRequest(requestStatusR99_R4);	
       
  6094 	ASSERT_EQUALS(RPacketQoS::ETrafficClassUnspecified, qosR99_R4NegotiatedProfile.iTrafficClass);		
       
  6095 	
       
  6096 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6097 	User::WaitForRequest(requestStatusGPRS);
       
  6098 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6099 
       
  6100 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6101 	User::WaitForRequest(requestStatusR99_R4);	
       
  6102 	ASSERT_EQUALS(RPacketQoS::ETrafficPriority1, qosR99_R4NegotiatedProfile.iTrafficHandlingPriority);
       
  6103 	
       
  6104 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6105 	User::WaitForRequest(requestStatusGPRS);
       
  6106 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6107 
       
  6108 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6109 	User::WaitForRequest(requestStatusR99_R4);	
       
  6110 	ASSERT_EQUALS(RPacketQoS::ETrafficPriority2, qosR99_R4NegotiatedProfile.iTrafficHandlingPriority);
       
  6111 	
       
  6112 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6113 	User::WaitForRequest(requestStatusGPRS);
       
  6114 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6115 
       
  6116 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6117 	User::WaitForRequest(requestStatusR99_R4);	
       
  6118 	ASSERT_EQUALS(RPacketQoS::ETrafficPriority3, qosR99_R4NegotiatedProfile.iTrafficHandlingPriority);	
       
  6119 		
       
  6120 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6121 	User::WaitForRequest(requestStatusGPRS);
       
  6122 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6123 
       
  6124 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6125 	User::WaitForRequest(requestStatusR99_R4);	
       
  6126 	ASSERT_EQUALS(RPacketQoS::ETrafficPriorityUnspecified, qosR99_R4NegotiatedProfile.iTrafficHandlingPriority);	
       
  6127 	
       
  6128 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6129 	User::WaitForRequest(requestStatusGPRS);
       
  6130 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6131 
       
  6132 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6133 	User::WaitForRequest(requestStatusR99_R4);	
       
  6134 	ASSERT_EQUALS(RPacketQoS::ESDUErrorRatioOnePerHundredThousand, qosR99_R4NegotiatedProfile.iSDUErrorRatio);	
       
  6135 	
       
  6136 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6137 	User::WaitForRequest(requestStatusGPRS);
       
  6138 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6139 
       
  6140 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6141 	User::WaitForRequest(requestStatusR99_R4);	
       
  6142 	ASSERT_EQUALS(RPacketQoS::ESDUErrorRatioOnePerHundredThousand, qosR99_R4NegotiatedProfile.iSDUErrorRatio);	
       
  6143 	
       
  6144 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6145 	User::WaitForRequest(requestStatusGPRS);
       
  6146 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6147 
       
  6148 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6149 	User::WaitForRequest(requestStatusR99_R4);	
       
  6150 	ASSERT_EQUALS(RPacketQoS::ESDUErrorRatioOnePerTenThousand, qosR99_R4NegotiatedProfile.iSDUErrorRatio);	
       
  6151 		
       
  6152 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6153 	User::WaitForRequest(requestStatusGPRS);
       
  6154 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6155 	
       
  6156 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6157 	User::WaitForRequest(requestStatusR99_R4);	
       
  6158 	ASSERT_EQUALS(RPacketQoS::ESDUErrorRatioOnePerThousand, qosR99_R4NegotiatedProfile.iSDUErrorRatio);	
       
  6159 	
       
  6160 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6161 	User::WaitForRequest(requestStatusGPRS);
       
  6162 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6163 
       
  6164 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6165 	User::WaitForRequest(requestStatusR99_R4);	
       
  6166 	ASSERT_EQUALS(RPacketQoS::ESDUErrorRatioOnePerThousand, qosR99_R4NegotiatedProfile.iSDUErrorRatio);	
       
  6167 		
       
  6168 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6169 	User::WaitForRequest(requestStatusGPRS);
       
  6170 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6171 
       
  6172 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6173 	User::WaitForRequest(requestStatusR99_R4);	
       
  6174 	ASSERT_EQUALS(RPacketQoS::ESDUErrorRatioUnspecified, qosR99_R4NegotiatedProfile.iSDUErrorRatio);	
       
  6175 		
       
  6176 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6177 	User::WaitForRequest(requestStatusGPRS);
       
  6178 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6179 
       
  6180 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6181 	User::WaitForRequest(requestStatusR99_R4);	
       
  6182 	ASSERT_EQUALS(RPacketQoS::EBEROnePerHundredThousand, qosR99_R4NegotiatedProfile.iBER);	
       
  6183 	
       
  6184 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6185 	User::WaitForRequest(requestStatusGPRS);
       
  6186 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6187 
       
  6188 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6189 	User::WaitForRequest(requestStatusR99_R4);	
       
  6190 	ASSERT_EQUALS(RPacketQoS::EBEROnePerHundredThousand, qosR99_R4NegotiatedProfile.iBER);		
       
  6191 		
       
  6192 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6193 	User::WaitForRequest(requestStatusGPRS);
       
  6194 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6195 
       
  6196 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6197 	User::WaitForRequest(requestStatusR99_R4);	
       
  6198 	ASSERT_EQUALS(RPacketQoS::EBEROnePerHundredThousand, qosR99_R4NegotiatedProfile.iBER);		
       
  6199 	
       
  6200 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6201 	User::WaitForRequest(requestStatusGPRS);
       
  6202 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6203 
       
  6204 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6205 	User::WaitForRequest(requestStatusR99_R4);	
       
  6206 	ASSERT_EQUALS(RPacketQoS::EBEROnePerHundredThousand, qosR99_R4NegotiatedProfile.iBER);		
       
  6207 	
       
  6208 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6209 	User::WaitForRequest(requestStatusGPRS);
       
  6210 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6211 
       
  6212 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6213 	User::WaitForRequest(requestStatusR99_R4);	
       
  6214 	ASSERT_EQUALS(RPacketQoS::EBERFourPerThousand, qosR99_R4NegotiatedProfile.iBER);		
       
  6215 	
       
  6216 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6217 	User::WaitForRequest(requestStatusGPRS);
       
  6218 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6219 
       
  6220 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6221 	User::WaitForRequest(requestStatusR99_R4);	
       
  6222 	ASSERT_EQUALS(RPacketQoS::EBERUnspecified, qosR99_R4NegotiatedProfile.iBER);		
       
  6223 	
       
  6224 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6225 	User::WaitForRequest(requestStatusGPRS);
       
  6226 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6227 	
       
  6228 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6229 	User::WaitForRequest(requestStatusR99_R4);	
       
  6230 	ASSERT_EQUALS(RPacketQoS::EErroneousSDUDeliveryNotRequired, qosR99_R4NegotiatedProfile.iDeliverErroneousSDU);		
       
  6231 	
       
  6232 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6233 	User::WaitForRequest(requestStatusGPRS);
       
  6234 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6235 
       
  6236 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6237 	User::WaitForRequest(requestStatusR99_R4);	
       
  6238 	ASSERT_EQUALS(RPacketQoS::EErroneousSDUDeliveryNotRequired, qosR99_R4NegotiatedProfile.iDeliverErroneousSDU);		
       
  6239 		
       
  6240 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6241 	User::WaitForRequest(requestStatusGPRS);
       
  6242 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6243 
       
  6244 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6245 	User::WaitForRequest(requestStatusR99_R4);	
       
  6246 	ASSERT_EQUALS(RPacketQoS::EErroneousSDUDeliveryNotRequired, qosR99_R4NegotiatedProfile.iDeliverErroneousSDU);		
       
  6247 		
       
  6248 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6249 	User::WaitForRequest(requestStatusGPRS);
       
  6250 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6251 
       
  6252 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6253 	User::WaitForRequest(requestStatusR99_R4);	
       
  6254 	ASSERT_EQUALS(RPacketQoS::EErroneousSDUDeliveryNotRequired, qosR99_R4NegotiatedProfile.iDeliverErroneousSDU);		
       
  6255 	
       
  6256 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6257 	User::WaitForRequest(requestStatusGPRS);
       
  6258 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6259 
       
  6260 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6261 	User::WaitForRequest(requestStatusR99_R4);	
       
  6262 	ASSERT_EQUALS(RPacketQoS::EErroneousSDUDeliveryRequired, qosR99_R4NegotiatedProfile.iDeliverErroneousSDU);		
       
  6263 
       
  6264 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6265 	User::WaitForRequest(requestStatusGPRS);
       
  6266 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6267 
       
  6268 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6269 	User::WaitForRequest(requestStatusR99_R4);	
       
  6270 	ASSERT_EQUALS(RPacketQoS::EErroneousSDUDeliveryUnspecified, qosR99_R4NegotiatedProfile.iDeliverErroneousSDU);		
       
  6271 
       
  6272 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6273 	User::WaitForRequest(requestStatusGPRS);
       
  6274 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6275 
       
  6276 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6277 	User::WaitForRequest(requestStatusR99_R4);	
       
  6278 	ASSERT_EQUALS(8, qosR99_R4NegotiatedProfile.iMaxRate.iDownlinkRate);		
       
  6279 
       
  6280 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6281 	User::WaitForRequest(requestStatusGPRS);
       
  6282 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6283 
       
  6284 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6285 	User::WaitForRequest(requestStatusR99_R4);	
       
  6286 	ASSERT_EQUALS(16, qosR99_R4NegotiatedProfile.iMaxRate.iDownlinkRate);		
       
  6287 		
       
  6288 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6289 	User::WaitForRequest(requestStatusGPRS);
       
  6290 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6291 	
       
  6292 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6293 	User::WaitForRequest(requestStatusR99_R4);	
       
  6294 	ASSERT_EQUALS(32, qosR99_R4NegotiatedProfile.iMaxRate.iDownlinkRate);		
       
  6295 	
       
  6296 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6297 	User::WaitForRequest(requestStatusGPRS);
       
  6298 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6299 
       
  6300 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6301 	User::WaitForRequest(requestStatusR99_R4);	
       
  6302 	ASSERT_EQUALS(64, qosR99_R4NegotiatedProfile.iMaxRate.iDownlinkRate);		
       
  6303 		
       
  6304 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6305 	User::WaitForRequest(requestStatusGPRS);
       
  6306 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6307 
       
  6308 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6309 	User::WaitForRequest(requestStatusR99_R4);	
       
  6310 	ASSERT_EQUALS(128, qosR99_R4NegotiatedProfile.iMaxRate.iDownlinkRate);		
       
  6311 	
       
  6312 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6313 	User::WaitForRequest(requestStatusGPRS);
       
  6314 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6315 	
       
  6316 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6317 	User::WaitForRequest(requestStatusR99_R4);	
       
  6318 	ASSERT_EQUALS(256, qosR99_R4NegotiatedProfile.iMaxRate.iDownlinkRate);		
       
  6319 	
       
  6320 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6321 	User::WaitForRequest(requestStatusGPRS);
       
  6322 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6323 
       
  6324 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6325 	User::WaitForRequest(requestStatusR99_R4);	
       
  6326 	ASSERT_EQUALS(512, qosR99_R4NegotiatedProfile.iMaxRate.iDownlinkRate);		
       
  6327 
       
  6328 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6329 	User::WaitForRequest(requestStatusGPRS);
       
  6330 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6331 
       
  6332 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6333 	User::WaitForRequest(requestStatusR99_R4);	
       
  6334 	ASSERT_EQUALS(1024, qosR99_R4NegotiatedProfile.iMaxRate.iDownlinkRate);		
       
  6335 
       
  6336 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6337 	User::WaitForRequest(requestStatusGPRS);
       
  6338 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6339 
       
  6340 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6341 	User::WaitForRequest(requestStatusR99_R4);	
       
  6342 	ASSERT_EQUALS(2048, qosR99_R4NegotiatedProfile.iMaxRate.iDownlinkRate);		
       
  6343 
       
  6344 	packetQoS.SetProfileParameters(requestStatusGPRS, profilePckgGPRS);
       
  6345 	User::WaitForRequest(requestStatusGPRS);
       
  6346 	ASSERT_EQUALS(KErrNone, requestStatusGPRS.Int());
       
  6347 
       
  6348 	packetQoS.GetProfileParameters(requestStatusR99_R4, profilePckgR99_R4);
       
  6349 	User::WaitForRequest(requestStatusR99_R4);	
       
  6350 	ASSERT_EQUALS(0, qosR99_R4NegotiatedProfile.iMaxRate.iDownlinkRate);		
       
  6351 
       
  6352 	packetQoS.Close();
       
  6353 	packetContext.Close();
       
  6354 	packetService.Close();
       
  6355 
       
  6356 	// Let the mock-LTSY finish up before asserting.
       
  6357 	User::After(1000000);
       
  6358 	
       
  6359 	AssertMockLtsyStatusL();
       
  6360 	CleanupStack::PopAndDestroy(5, this); // data, data, packetService, packetContext, this		
       
  6361 	}
       
  6362 
       
  6363 /**
       
  6364 @SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00026
       
  6365 @SYMComponent telephony_ctsy
       
  6366 @SYMTestCaseDesc Test support in CTSY for RPacketService::GetPreferredBearer
       
  6367 @SYMTestPriority High
       
  6368 @SYMTestActions Invokes RPacketService::GetPreferredBearer
       
  6369 @SYMTestExpectedResults Pass
       
  6370 @SYMTestType UT
       
  6371  */
       
  6372 void CCTsyPacketServicesFU::TestUnit00026L()
       
  6373     {
       
  6374     OpenEtelServerL(EUseExtendedError);
       
  6375     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  6376     OpenPhoneL();
       
  6377 
       
  6378     RBuf8 data;
       
  6379     CleanupClosePushL(data);
       
  6380 
       
  6381     RPacketService packetService;
       
  6382     OpenPacketServiceLC(packetService, RPacketService::EStatusUnattached);
       
  6383     
       
  6384     //-------------------------------------------------------------------------
       
  6385     // TEST D: RPacketService::GetPreferredBearer again, this time CTSY
       
  6386     // will get result from the cache.
       
  6387     //-------------------------------------------------------------------------         
       
  6388     TRequestStatus  requestStatus;
       
  6389     RPacketService::TPreferredBearer bearer;
       
  6390     packetService.GetPreferredBearer(requestStatus, bearer);
       
  6391     User::WaitForRequest(requestStatus);
       
  6392     
       
  6393     AssertMockLtsyStatusL();
       
  6394     ASSERT_EQUALS(KErrNone, requestStatus.Int());
       
  6395     ASSERT_EQUALS(RPacketService::EBearerPacketSwitched, bearer);
       
  6396     
       
  6397     // --- change PreferredBearer -----------------------------------------------
       
  6398     TRequestStatus mockLtsyStatus;
       
  6399     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  6400     
       
  6401     // data for setting
       
  6402     RPacketService::TPreferredBearer newBearer = RPacketService::EBearerCircuitSwitched;
       
  6403     TMockLtsyData1 <RPacketService::TPreferredBearer> ltsyData(newBearer);
       
  6404     ltsyData.SerialiseL(data);      
       
  6405     
       
  6406     iMockLTSY.CompleteL(KMockLtsyDispatchPacketServicesNotifyPacketAttachModeChangeIndId, KErrNone, data); 
       
  6407     User::WaitForRequest(mockLtsyStatus);   
       
  6408     AssertMockLtsyStatusL();
       
  6409     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());  
       
  6410         
       
  6411     //-------------------------------------------------------------------------
       
  6412     // TEST D2: RPacketService::GetPreferredBearer again, this time CTSY
       
  6413     // will get result from the cache.
       
  6414     //-------------------------------------------------------------------------  
       
  6415     packetService.GetPreferredBearer(requestStatus, bearer);
       
  6416     User::WaitForRequest(requestStatus);
       
  6417     
       
  6418     AssertMockLtsyStatusL();
       
  6419     ASSERT_EQUALS(KErrNone, requestStatus.Int());
       
  6420     ASSERT_EQUALS(newBearer, bearer);
       
  6421 
       
  6422     AssertMockLtsyStatusL();
       
  6423     CleanupStack::PopAndDestroy(1); // packetService
       
  6424     CleanupStack::PopAndDestroy(2, this); // data, this
       
  6425     }