telephonyserverplugins/common_tsy/test/component/src/cctsyucasembms006.cpp
changeset 0 3553901f7fa8
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  @file The TEFUnit integration test suite for MBMS Context support in the Common TSY.
       
    18 */
       
    19 
       
    20 #include "cctsyucasembms006.h"
       
    21 #include "cctsyactiveretriever.h"
       
    22 #include <etel.h>
       
    23 #include <etelmm.h>
       
    24 #include <et_clsvr.h>
       
    25 #include <ctsy/mmtsy_names.h>
       
    26 #include <ctsy/serviceapi/mmtsy_ipcdefs.h>
       
    27 #include "tmockltsydata.h"
       
    28 #include <ctsy/serviceapi/gsmerror.h>
       
    29 
       
    30 #include <pcktcs.h>
       
    31 #include <pcktlist.h>
       
    32 #include "pcktretrieve.h"
       
    33 #include "CMmCommonStaticUtility.h"
       
    34 #include <ctsy/serviceapi/mmtsy_defaults.h>
       
    35 
       
    36 CTestSuite* CCTsyUCaseMbms006::CreateSuiteL(const TDesC& aName) 
       
    37 	{
       
    38 	SUB_SUITE;  
       
    39     ADD_TEST_STEP_ISO_CPP(CCTsyUCaseMbms006, CCtsyIntegrationTestMbms0001L );
       
    40     ADD_TEST_STEP_ISO_CPP(CCTsyUCaseMbms006, CCtsyIntegrationTestMbms0002L );
       
    41 	END_SUITE;
       
    42 	}
       
    43 
       
    44 //
       
    45 // Actual test cases
       
    46 //
       
    47 
       
    48 /**
       
    49  * @SYMTestCaseID BA-CTSY-INT-MB-0011
       
    50  * @SYMFssID BA/CTSY/PKTS-0011
       
    51  * @SYMTestCaseDesc Support being notified when moving to a location area not supporting MBMS.
       
    52  * @SYMTestPriority High
       
    53  * @SYMTestActions RPacketService::NotifyMbmsNetworkServiceStatusChange
       
    54  * @SYMTestExpectedResults Pass - MBMS network availability status is returned correctly.
       
    55  * @SYMTestType CIT
       
    56  * @SYMTestCaseDependencies live/manual
       
    57  *
       
    58  * Reason for test: Verify that NotifyMbmsNetworkServiceStatusChange completes correctly with correct MBMS network status.
       
    59  *
       
    60  * @return - none
       
    61  */
       
    62 void CCTsyUCaseMbms006::CCtsyIntegrationTestMbms0001L()
       
    63     {
       
    64         
       
    65 	//
       
    66 	// SET UP
       
    67 	//
       
    68 	        
       
    69     OpenEtelServerL( EUseExtendedError );
       
    70 	CleanupStack::PushL( TCleanupItem( Cleanup, this ) );
       
    71 	OpenPhoneL();	
       
    72 
       
    73 	RBuf8 data;
       
    74 	CleanupClosePushL(data);
       
    75 
       
    76 	RBuf8 data2;
       
    77 	CleanupClosePushL(data2);
       
    78 				
       
    79 	RPacketService packetService;
       
    80     OpenPacketServiceL( packetService );
       
    81     CleanupClosePushL( packetService );
       
    82  
       
    83  	// Open new context             
       
    84 	TInfoName contextId;
       
    85     RPacketMbmsContext packetMbmsContext;
       
    86     packetMbmsContext.OpenNewContext( packetService, contextId );
       
    87     CleanupClosePushL( packetMbmsContext );
       
    88    
       
    89    
       
    90    	TRequestStatus requestStatus;
       
    91    	TRequestStatus requestStatus2;
       
    92 	TMbmsNetworkServiceStatus regStatus;
       
    93    	TRequestStatus mockLtsyStatus;
       
    94    	TMbmsNetworkServiceStatus regStatuscomplete = EMbmsSupported; 	
       
    95    
       
    96     // Check RMobilePhone::GetNetworkRegistrationStatus returns ERegisteredOnHomeNetwork
       
    97   	RPacketService::TRegistrationStatus regStatus3;
       
    98   	TRequestStatus requestStatus3;
       
    99     RPacketService::TRegistrationStatus reqStatusComplete3 = RPacketService::ERegisteredOnHomeNetwork;
       
   100 	iMockLTSY.ExpectL(EPacketGetNtwkRegStatus);
       
   101 	TMockLtsyData1<RPacketService::TRegistrationStatus> ltsyData(reqStatusComplete3);
       
   102 	ltsyData.SerialiseL(data2);
       
   103 	iMockLTSY.CompleteL(EPacketGetNtwkRegStatus, KErrNone, data2);
       
   104 	regStatus3 = RPacketService::TRegistrationStatus(0);
       
   105 
       
   106 	packetService.GetNtwkRegStatus(requestStatus3, regStatus3);
       
   107 	
       
   108 	User::WaitForRequest(requestStatus3);
       
   109 	AssertMockLtsyStatusL();
       
   110 	ASSERT_EQUALS(KErrNone, requestStatus3.Int());
       
   111 	ASSERT_TRUE(reqStatusComplete3 == regStatus3);
       
   112 			
       
   113     // Ensure packet service status is RPacketService::EStatusAttached.
       
   114 	RPacketService::TStatus sendStatus = RPacketService::EStatusAttached;
       
   115 	TBool isResumed = EFalse;
       
   116 	TMockLtsyData2 <RPacketService::TStatus, TBool > ltsyData2(sendStatus, isResumed);
       
   117 	ltsyData2.SerialiseL(data);
       
   118 	RPacketService::TStatus contextStatus;
       
   119 	packetService.NotifyStatusChange(requestStatus2, contextStatus);
       
   120 	
       
   121 	iMockLTSY.NotifyTerminated(mockLtsyStatus);	
       
   122 	iMockLTSY.CompleteL(EPacketNotifyStatusChange, KErrNone, data); //
       
   123 	
       
   124 	User::WaitForRequest(mockLtsyStatus);
       
   125 	User::WaitForRequest(requestStatus2);
       
   126 	AssertMockLtsyStatusL();
       
   127 	ASSERT_EQUALS(KErrNone, requestStatus2.Int());
       
   128 	ASSERT_EQUALS(sendStatus, contextStatus);	
       
   129 
       
   130 	// post RPacketService::NotifyMbmsNetworkServiceStatusChange
       
   131     packetService.NotifyMbmsNetworkServiceStatusChange(requestStatus, regStatus);
       
   132     
       
   133 	TMbmsNetworkServiceStatus sndData3 = EMbmsSupported;
       
   134 	TMockLtsyData1<TMbmsNetworkServiceStatus> ltsyData3(sndData3);
       
   135 	data.Close();
       
   136 	ltsyData3.SerialiseL(data);		
       
   137 	iMockLTSY.NotifyTerminated(mockLtsyStatus);		
       
   138     
       
   139     // Ensure RPacketService::NotifyMbmsNetworkServiceStatusChange completes with status EMbmsSupported.
       
   140 	iMockLTSY.CompleteL(EPacketNotifyMbmsNetworkServiceStatusChange, KErrNone, data);
       
   141 	User::WaitForRequest(mockLtsyStatus);	
       
   142 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());	
       
   143     ASSERT_TRUE(regStatuscomplete == regStatus);
       
   144 	 
       
   145 	//
       
   146 	// SET UP END
       
   147 	//    
       
   148             
       
   149 	//
       
   150 	// TEST START
       
   151 	//	
       
   152 	
       
   153 	regStatuscomplete = EMbmsSupportUnknown; 
       
   154 			
       
   155 	// post RPacketService::NotifyMbmsNetworkServiceStatusChange	
       
   156     packetService.NotifyMbmsNetworkServiceStatusChange(requestStatus, regStatus);
       
   157      	
       
   158 	// User moves to different location area that does not support MBMS.
       
   159     RMobilePhone::TMobilePhoneNetworkCountryCode countryCode = _L("567");
       
   160     RMobilePhone::TMobilePhoneNetworkIdentity    cdmaSID     = _L("890");
       
   161     RMobilePhone::TMobilePhoneNetworkIdentity    analogSID   = _L("123");
       
   162     RMobilePhone::TMobilePhoneNetworkIdentity    networkId   = _L("56700");
       
   163     RMobilePhone::TMobilePhoneNetworkDisplayTag  displayTag  = _L("symbian2");
       
   164     RMobilePhone::TMobilePhoneNetworkShortName   shortName   = _L("symbian2");
       
   165     RMobilePhone::TMobilePhoneNetworkLongName    longName    = _L("symbian2 mobile");
       
   166     RMobilePhone::TMobilePhoneNetworkInfoV5 networkInfoComplete;
       
   167 	// V5
       
   168 	networkInfoComplete.iEgprsAvailableIndicator = ETrue;
       
   169 	networkInfoComplete.iHsdpaAvailableIndicator = EFalse;
       
   170 	// V2
       
   171 	networkInfoComplete.iAccess = RMobilePhone::ENetworkAccessGsm;
       
   172 	// V1
       
   173 	networkInfoComplete.iMode        = RMobilePhone::ENetworkModeCdma2000   ;
       
   174 	networkInfoComplete.iStatus      = RMobilePhone::ENetworkStatusAvailable;
       
   175 	networkInfoComplete.iBandInfo    = RMobilePhone::E1900BandA             ;
       
   176 	networkInfoComplete.iCountryCode = countryCode;
       
   177 	networkInfoComplete.iCdmaSID     = cdmaSID    ;
       
   178 	networkInfoComplete.iAnalogSID   = analogSID  ;
       
   179 	networkInfoComplete.iNetworkId   = networkId  ;
       
   180 	networkInfoComplete.iDisplayTag  = displayTag ;
       
   181 	networkInfoComplete.iShortName   = shortName  ;
       
   182 	networkInfoComplete.iLongName    = longName   ;
       
   183 	 
       
   184     RMobilePhone::TMobilePhoneLocationAreaV1 locationArea;
       
   185     TMockLtsyData2<RMobilePhone::TMobilePhoneNetworkInfoV5, 
       
   186                    RMobilePhone::TMobilePhoneLocationAreaV1> mockData2(networkInfoComplete, locationArea);
       
   187                    
       
   188    	RMobilePhone::TMobilePhoneNetworkInfoV2 networkInfo;
       
   189 	TPckg<RMobilePhone::TMobilePhoneNetworkInfoV2> networkInfoPckg(networkInfo);
       
   190 	RMobilePhone::TMobilePhoneLocationAreaV1 area;
       
   191 	
       
   192     iPhone.NotifyCurrentNetworkChange(requestStatus, networkInfoPckg, area);
       
   193     
       
   194     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
   195 	mockData2.SerialiseL(data);
       
   196     iMockLTSY.CompleteL(EMobilePhoneNotifyCurrentNetworkChange, KErrNone, data);
       
   197     User::WaitForRequest(mockLtsyStatus);
       
   198 	AssertMockLtsyStatusL();
       
   199     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
   200 	
       
   201 	User::WaitForRequest(requestStatus);
       
   202 	AssertMockLtsyStatusL();
       
   203 	ASSERT_EQUALS(KErrNone, requestStatus.Int());	
       
   204 	
       
   205 	// Ensure RPacketService::GetStaticCaps returns without caps KCapsMBMSSupported.
       
   206    	TUint staticCaps = 0;
       
   207    	TUint expectedCaps = 	RPacketService::KCapsSuspendSupported |
       
   208 							RPacketService::KCapsNetworkAvailabilitySupported | 
       
   209 							RPacketService::KCapsSetDefaultContextSupported | 
       
   210 							RPacketService::KCapsChangeAttachModeSupported | 
       
   211 							RPacketService::KCapsGetDataTransferredSupported | 
       
   212 							RPacketService::KCapsPreferredBearerSupported | 
       
   213 							RPacketService::KCapsPdpDataCompSupported | 
       
   214 							RPacketService::KCapsPdpHeaderCompSupported | 
       
   215 						    RPacketService::KCapsMSClassSupported |
       
   216 							RPacketService::KCapsNotifyMSClassSupported;
       
   217 									
       
   218 	TMockLtsyData1<TUint> ltsyData4(expectedCaps);
       
   219 	data2.Close();
       
   220 	ltsyData4.SerialiseL(data2);
       
   221 
       
   222 	iMockLTSY.NotifyTerminated(mockLtsyStatus);	
       
   223 	iMockLTSY.CompleteL( EPacketGetStaticCaps, KErrNone, data2 );
       
   224 	User::WaitForRequest(mockLtsyStatus);	
       
   225 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
   226 			   		
       
   227    	TInt ret = packetService.GetStaticCaps(staticCaps, RPacketContext::EPdpTypeIPv4);
       
   228  	AssertMockLtsyStatusL();
       
   229 	ASSERT_EQUALS(KErrNone, ret);	
       
   230 	
       
   231     regStatuscomplete = EMbmsNotSupported;
       
   232     TMockLtsyData1<TMbmsNetworkServiceStatus> ltsyData6(regStatuscomplete);
       
   233 	ltsyData6.SerialiseL(data);
       
   234 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
   235 	iMockLTSY.CompleteL(EPacketNotifyMbmsNetworkServiceStatusChange, KErrNone, data);
       
   236 	User::WaitForRequest(mockLtsyStatus);	
       
   237 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());			
       
   238 
       
   239     // Ensure RPacketService::NotifyMbmsNetworkServiceStatusChange completes with status EMbmsNotSupported
       
   240 	User::WaitForRequest(requestStatus);	
       
   241 	AssertMockLtsyStatusL();
       
   242 	ASSERT_EQUALS(KErrNone, requestStatus.Int());	
       
   243 	ASSERT_TRUE(regStatuscomplete == regStatus);	
       
   244 		
       
   245 	//
       
   246 	// TEST END
       
   247 	//	
       
   248 	
       
   249 	AssertMockLtsyStatusL();
       
   250 	CleanupStack::PopAndDestroy( 5, this ); // packetMbmsContext, packetService, data, data2 this 
       
   251     }
       
   252     
       
   253     /**
       
   254  * @SYMTestCaseID BA-CTSY-INT-MB-0012
       
   255  * @SYMFssID BA/CTSY/PKTS-0012
       
   256  * @SYMTestCaseDesc Support being notified when moving to a location area not supporting MBMS.
       
   257  * @SYMTestPriority High
       
   258  * @SYMTestActions RPacketService::NotifyMbmsNetworkServiceStatusChange
       
   259  * @SYMTestExpectedResults Pass - MBMS network availability status is returned correctly.
       
   260  * @SYMTestType CIT
       
   261  * @SYMTestCaseDependencies live/manual
       
   262  *
       
   263  * Reason for test:  Verify that NotifyMbmsNetworkServiceStatusChange completes correctly with correct MBMS network status.
       
   264  *
       
   265  * @return - none
       
   266  */
       
   267 void CCTsyUCaseMbms006::CCtsyIntegrationTestMbms0002L()
       
   268     {
       
   269         
       
   270 	//
       
   271 	// SET UP
       
   272 	//
       
   273 	        
       
   274     OpenEtelServerL( EUseExtendedError );
       
   275 	CleanupStack::PushL( TCleanupItem( Cleanup, this ) );
       
   276 	OpenPhoneL();	
       
   277 
       
   278 	RBuf8 data;
       
   279 	CleanupClosePushL(data);
       
   280 
       
   281 	RBuf8 data2;
       
   282 	CleanupClosePushL(data2);
       
   283 				
       
   284 	RPacketService packetService;
       
   285     OpenPacketServiceL( packetService );
       
   286     CleanupClosePushL( packetService );
       
   287     
       
   288     // Open new context             
       
   289 	TInfoName contextId;
       
   290     RPacketMbmsContext packetMbmsContext;
       
   291     packetMbmsContext.OpenNewContext( packetService, contextId );
       
   292     CleanupClosePushL( packetMbmsContext );
       
   293    
       
   294    
       
   295    	TRequestStatus requestStatus;
       
   296    	TRequestStatus requestStatus2;
       
   297 	TMbmsNetworkServiceStatus regStatus;
       
   298    	TRequestStatus mockLtsyStatus;
       
   299    	TMbmsNetworkServiceStatus regStatuscomplete = EMbmsSupported; 	
       
   300    
       
   301     // Check RMobilePhone::GetNetworkRegistrationStatus returns ERegisteredOnHomeNetwork
       
   302   	RPacketService::TRegistrationStatus regStatus3;
       
   303   	TRequestStatus requestStatus3;
       
   304     RPacketService::TRegistrationStatus reqStatusComplete3 = RPacketService::ERegisteredOnHomeNetwork;
       
   305 	iMockLTSY.ExpectL(EPacketGetNtwkRegStatus);
       
   306 	TMockLtsyData1<RPacketService::TRegistrationStatus> ltsyData(reqStatusComplete3);
       
   307 	ltsyData.SerialiseL(data2);
       
   308 	iMockLTSY.CompleteL(EPacketGetNtwkRegStatus, KErrNone, data2);
       
   309 	regStatus3 = RPacketService::TRegistrationStatus(0);
       
   310 
       
   311 	packetService.GetNtwkRegStatus(requestStatus3, regStatus3);
       
   312 	
       
   313 	User::WaitForRequest(requestStatus3);
       
   314 	AssertMockLtsyStatusL();
       
   315 	ASSERT_EQUALS(KErrNone, requestStatus3.Int());
       
   316 	ASSERT_TRUE(reqStatusComplete3 == regStatus3);
       
   317 			
       
   318     // Ensure packet service status is RPacketService::EStatusAttached.
       
   319 	RPacketService::TStatus sendStatus = RPacketService::EStatusAttached;
       
   320 	TBool isResumed = EFalse;
       
   321 	TMockLtsyData2 <RPacketService::TStatus, TBool > ltsyData2(sendStatus, isResumed);
       
   322 	ltsyData2.SerialiseL(data);
       
   323 	RPacketService::TStatus contextStatus;
       
   324 	packetService.NotifyStatusChange(requestStatus2, contextStatus);
       
   325 	
       
   326 	iMockLTSY.NotifyTerminated(mockLtsyStatus);	
       
   327 	iMockLTSY.CompleteL(EPacketNotifyStatusChange, KErrNone, data); //
       
   328 	
       
   329 	User::WaitForRequest(mockLtsyStatus);
       
   330 	User::WaitForRequest(requestStatus2);
       
   331 	AssertMockLtsyStatusL();
       
   332 	ASSERT_EQUALS(KErrNone, requestStatus2.Int());
       
   333 	ASSERT_EQUALS(sendStatus, contextStatus);	
       
   334 
       
   335 	// post RPacketService::NotifyMbmsNetworkServiceStatusChange
       
   336     packetService.NotifyMbmsNetworkServiceStatusChange(requestStatus, regStatus);
       
   337 
       
   338 	TMbmsNetworkServiceStatus sndData3 = EMbmsSupported;
       
   339 	TMockLtsyData1<TMbmsNetworkServiceStatus> ltsyData3(sndData3);
       
   340 	data.Close();
       
   341 	ltsyData3.SerialiseL(data);		
       
   342 	iMockLTSY.NotifyTerminated(mockLtsyStatus);		
       
   343     
       
   344     // Ensure RPacketService::NotifyMbmsNetworkServiceStatusChange completes with status EMbmsSupported.
       
   345 	iMockLTSY.CompleteL(EPacketNotifyMbmsNetworkServiceStatusChange, KErrNone, data);
       
   346 	User::WaitForRequest(mockLtsyStatus);	
       
   347 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());	
       
   348     ASSERT_TRUE(regStatuscomplete == regStatus);
       
   349 	 
       
   350 	//
       
   351 	// SET UP END
       
   352 	//    
       
   353             
       
   354 	//
       
   355 	// TEST START
       
   356 	//	
       
   357 	
       
   358 
       
   359 	regStatuscomplete = EMbmsSupportUnknown; 
       
   360 			
       
   361 	// post RPacketService::NotifyMbmsNetworkServiceStatusChange	
       
   362     packetService.NotifyMbmsNetworkServiceStatusChange(requestStatus3, regStatus);
       
   363      	
       
   364     // User moves to different location area that does not support MBMS.
       
   365     RMobilePhone::TMobilePhoneNetworkCountryCode countryCode = _L("567");
       
   366     RMobilePhone::TMobilePhoneNetworkIdentity    cdmaSID     = _L("890");
       
   367     RMobilePhone::TMobilePhoneNetworkIdentity    analogSID   = _L("123");
       
   368     RMobilePhone::TMobilePhoneNetworkIdentity    networkId   = _L("56700");
       
   369     RMobilePhone::TMobilePhoneNetworkDisplayTag  displayTag  = _L("symbian2");
       
   370     RMobilePhone::TMobilePhoneNetworkShortName   shortName   = _L("symbian2");
       
   371     RMobilePhone::TMobilePhoneNetworkLongName    longName    = _L("symbian2 mobile");
       
   372     RMobilePhone::TMobilePhoneNetworkInfoV5 networkInfoComplete;
       
   373 	// V5
       
   374 	networkInfoComplete.iEgprsAvailableIndicator = ETrue;
       
   375 	networkInfoComplete.iHsdpaAvailableIndicator = EFalse;
       
   376 	// V2
       
   377 	networkInfoComplete.iAccess = RMobilePhone::ENetworkAccessGsm;
       
   378 	// V1
       
   379 	networkInfoComplete.iMode        = RMobilePhone::ENetworkModeCdma2000   ;
       
   380 	networkInfoComplete.iStatus      = RMobilePhone::ENetworkStatusAvailable;
       
   381 	networkInfoComplete.iBandInfo    = RMobilePhone::E1900BandA             ;
       
   382 	networkInfoComplete.iCountryCode = countryCode;
       
   383 	networkInfoComplete.iCdmaSID     = cdmaSID    ;
       
   384 	networkInfoComplete.iAnalogSID   = analogSID  ;
       
   385 	networkInfoComplete.iNetworkId   = networkId  ;
       
   386 	networkInfoComplete.iDisplayTag  = displayTag ;
       
   387 	networkInfoComplete.iShortName   = shortName  ;
       
   388 	networkInfoComplete.iLongName    = longName   ;
       
   389 	 
       
   390     RMobilePhone::TMobilePhoneLocationAreaV1 locationArea;
       
   391     TMockLtsyData2<RMobilePhone::TMobilePhoneNetworkInfoV5, 
       
   392                    RMobilePhone::TMobilePhoneLocationAreaV1> mockData2(networkInfoComplete, locationArea);
       
   393                    
       
   394    	RMobilePhone::TMobilePhoneNetworkInfoV2 networkInfo;
       
   395 	TPckg<RMobilePhone::TMobilePhoneNetworkInfoV2> networkInfoPckg(networkInfo);
       
   396 	RMobilePhone::TMobilePhoneLocationAreaV1 area;
       
   397 	
       
   398     iPhone.NotifyCurrentNetworkChange(requestStatus, networkInfoPckg, area);
       
   399     
       
   400     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
   401 	mockData2.SerialiseL(data);
       
   402     iMockLTSY.CompleteL(EMobilePhoneNotifyCurrentNetworkChange, KErrNone, data);
       
   403     User::WaitForRequest(mockLtsyStatus);
       
   404 	AssertMockLtsyStatusL();
       
   405     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
   406 	
       
   407 	User::WaitForRequest(requestStatus);
       
   408 	AssertMockLtsyStatusL();
       
   409 	ASSERT_EQUALS(KErrNone, requestStatus.Int());	
       
   410 	
       
   411 	// Ensure RPacketService::GetStaticCaps returns without caps KCapsMBMSSupported.	
       
   412    	TUint staticCaps = 0;
       
   413    	TUint expectedCaps = 	RPacketService::KCapsSuspendSupported |
       
   414 							RPacketService::KCapsNetworkAvailabilitySupported | 
       
   415 							RPacketService::KCapsSetDefaultContextSupported | 
       
   416 							RPacketService::KCapsChangeAttachModeSupported | 
       
   417 							RPacketService::KCapsGetDataTransferredSupported | 
       
   418 							RPacketService::KCapsPreferredBearerSupported | 
       
   419 							RPacketService::KCapsPdpDataCompSupported | 
       
   420 							RPacketService::KCapsPdpHeaderCompSupported | 
       
   421 						    RPacketService::KCapsMSClassSupported |
       
   422 							RPacketService::KCapsNotifyMSClassSupported;
       
   423 									
       
   424 	TMockLtsyData1<TUint> ltsyData4(expectedCaps);
       
   425 	data2.Close();
       
   426 	ltsyData4.SerialiseL(data2);
       
   427 
       
   428 	iMockLTSY.NotifyTerminated(mockLtsyStatus);	
       
   429 	iMockLTSY.CompleteL( EPacketGetStaticCaps, KErrNone, data2 );
       
   430 	User::WaitForRequest(mockLtsyStatus);	
       
   431 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
   432 			   		
       
   433    	TInt ret = packetService.GetStaticCaps(staticCaps, RPacketContext::EPdpTypeIPv4);
       
   434  	AssertMockLtsyStatusL();
       
   435 	ASSERT_EQUALS(KErrNone, ret);	
       
   436 			
       
   437     regStatuscomplete = EMbmsNotSupported;
       
   438     TMockLtsyData1<TMbmsNetworkServiceStatus> ltsyData6(regStatuscomplete);
       
   439 	ltsyData6.SerialiseL(data);
       
   440 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
   441 	iMockLTSY.CompleteL(EPacketNotifyMbmsNetworkServiceStatusChange, KErrNotSupported);
       
   442 		
       
   443     // Ensure RPacketService::NotifyMbmsNetworkServiceStatusChange completes with status EMbmsNotSupported
       
   444 	User::WaitForRequest(requestStatus3);	
       
   445 	AssertMockLtsyStatusL();
       
   446 	ASSERT_EQUALS(KErrNotSupported, requestStatus3.Int());	
       
   447 
       
   448 	//
       
   449 	// TEST END
       
   450 	//	
       
   451 	
       
   452 	AssertMockLtsyStatusL();
       
   453 	CleanupStack::PopAndDestroy( 5, this ); // packetMbmsContext, packetService, data, data2 this 
       
   454      }
       
   455