telephonyserverplugins/common_tsy/test/component/src/cctsydatacallcontrolfu.cpp
changeset 0 3553901f7fa8
equal deleted inserted replaced
-1:000000000000 0:3553901f7fa8
       
     1 // Copyright (c) 2007-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 // The TEFUnit test suite for DataCallControl in the Common TSY.
       
    15 // 
       
    16 //
       
    17 
       
    18 /**
       
    19  @file 
       
    20 */
       
    21 
       
    22 #include "cctsydatacallcontrolfu.h"
       
    23 #include <etel.h>
       
    24 #include <etelmm.h>
       
    25 #include <et_clsvr.h>
       
    26 #include <ctsy/mmtsy_names.h>
       
    27 #include <ctsy/serviceapi/mmtsy_ipcdefs.h>
       
    28 #include "tmockltsydata.h"
       
    29 #include <ctsy/serviceapi/gsmerror.h>
       
    30 #include "MmTsy_Csd_Defs.h"
       
    31 #include <featmgr/featurecontrol.h>
       
    32 #include <featureuids.h>
       
    33 
       
    34 CTestSuite* CCTsyDataCallControlFU::CreateSuiteL(const TDesC& aName)
       
    35 	{
       
    36 	SUB_SUITE;
       
    37 
       
    38 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestGetBearerServiceInfo0001L);
       
    39 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestGetBearerServiceInfo0006L);
       
    40 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestGetBearerServiceInfo0011L);
       
    41 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestConnect0001L);
       
    42 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestConnect0006L);
       
    43 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestConnect0007L);
       
    44 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestConnect0008L);
       
    45 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestConnect0009L);
       
    46 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestConnect0011L);
       
    47 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestConnect0012L);
       
    48 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestConnect0013L);
       
    49 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestConnect0014L);
       
    50 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestGetCurrentHscsdInfo0001L);
       
    51 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestGetCurrentHscsdInfo0006L);
       
    52 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestGetCurrentHscsdInfo0008L);
       
    53 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestGetCurrentHscsdInfo0011L);
       
    54 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestNotifyVoiceFallback0001L);
       
    55 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestNotifyVoiceFallback0006L);
       
    56 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestNotifyVoiceFallback00011L);
       
    57 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestGetMobileDataCallCaps0001L);
       
    58 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestGetMobileDataCallCaps0006L);
       
    59 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestGetMobileDataCallCaps0008L);
       
    60 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestGetMobileDataCallCaps00011L);
       
    61 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestNotifyHscsdInfoChange0001L);
       
    62 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestNotifyHscsdInfoChange0006L);
       
    63 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestNotifyHscsdInfoChange0007L);
       
    64 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestNotifyHscsdInfoChange0008L);
       
    65 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestNotifyHscsdInfoChange0009L);
       
    66 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestNotifyHscsdInfoChange00011L);
       
    67 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestSetDynamicHscsdParams0001L);
       
    68 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestSetDynamicHscsdParams0006L);
       
    69 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestSetDynamicHscsdParams0007L);
       
    70 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestSetDynamicHscsdParams0009L);
       
    71 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestSetDynamicHscsdParams00010L);
       
    72 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestSetDynamicHscsdParams00011L);
       
    73 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestGetMobileDataCallRLPRange0001L);
       
    74 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestGetMobileDataCallRLPRange0006L);
       
    75 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestGetMobileDataCallRLPRange00011L);
       
    76 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestNotifyMobileDataCallCapsChange0001L);
       
    77 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestNotifyMobileDataCallCapsChange0006L);
       
    78 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestNotifyMobileDataCallCapsChange0007L);
       
    79 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestNotifyMobileDataCallCapsChange0008L);
       
    80 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestNotifyMobileDataCallCapsChange0009L);
       
    81 	ADD_TEST_STEP_ISO_CPP(CCTsyDataCallControlFU, TestNotifyMobileDataCallCapsChange00011L);
       
    82 
       
    83 	END_SUITE;
       
    84 	}
       
    85 
       
    86 
       
    87 //
       
    88 // Actual test cases
       
    89 //
       
    90 
       
    91 
       
    92 /**
       
    93 @SYMTestCaseID BA-CTSY-DATC-CGBSI-0001
       
    94 @SYMComponent  telephony_ctsy
       
    95 @SYMTestCaseDesc Test support in CTSY for RCall::GetBearerServiceInfo for voice calls
       
    96 @SYMTestPriority High
       
    97 @SYMTestActions Invokes RCall::GetBearerServiceInfo for voice calls
       
    98 @SYMTestExpectedResults Pass
       
    99 @SYMTestType CT
       
   100 */
       
   101 void CCTsyDataCallControlFU::TestGetBearerServiceInfo0001L()
       
   102 	{
       
   103 
       
   104 	OpenEtelServerL(EUseExtendedError);
       
   105 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   106 	OpenPhoneL();
       
   107 
       
   108  	//-------------------------------------------------------------------------
       
   109 	// TEST: failure to dispatch request to CTSY
       
   110 	// because RCall::GetBearerServiceInfo is not supported for voice calls
       
   111  	//-------------------------------------------------------------------------
       
   112 	
       
   113 	RCall call;
       
   114 	RLine line;
       
   115 	OpenLineLC(line, KMmTsyVoice1LineName);
       
   116 	OpenNewCallLC(line, call);
       
   117 	DialL(call, 1, RMobilePhone::EVoiceService);
       
   118 	RCall::TBearerService bearerService;
       
   119 	TInt res = call.GetBearerServiceInfo(bearerService);
       
   120 	ASSERT_EQUALS(KErrNotSupported, res)
       
   121 	AssertMockLtsyStatusL();
       
   122 
       
   123 	// same test for voice call from auxiliary voice line
       
   124 	RCall call2;
       
   125 	RLine line2;
       
   126 	OpenLineLC(line2, KMmTsyVoice2LineName);
       
   127 	OpenNewCallLC(line2, call2);
       
   128 	DialL(call2, 2, RMobilePhone::EAuxVoiceService);
       
   129 	res = call2.GetBearerServiceInfo(bearerService);
       
   130 	ASSERT_EQUALS(KErrNotSupported, res)
       
   131 	AssertMockLtsyStatusL();
       
   132 
       
   133 	CleanupStack::PopAndDestroy(5, this); // call2, line2, call, line, this
       
   134 	
       
   135 	}
       
   136 
       
   137 /**
       
   138 @SYMTestCaseID BA-CTSY-DATC-CGBSI-0006
       
   139 @SYMComponent  telephony_ctsy
       
   140 @SYMTestCaseDesc Test support in CTSY for RCall::GetBearerServiceInfo for data calls
       
   141 @SYMTestPriority High
       
   142 @SYMTestActions Invokes RCall::GetBearerServiceInfo for data calls
       
   143 @SYMTestExpectedResults Pass
       
   144 @SYMTestType CT
       
   145 */
       
   146 void CCTsyDataCallControlFU::TestGetBearerServiceInfo0006L()
       
   147 	{
       
   148 
       
   149 	OpenEtelServerL(EUseExtendedError);
       
   150 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   151 	OpenPhoneL();
       
   152 
       
   153 	RBuf8 data;
       
   154 	CleanupClosePushL(data);
       
   155 
       
   156 	RLine line;
       
   157 	RCall call;
       
   158 	OpenLineLC(line, KMmTsyDataLineName);
       
   159 	OpenNewCallLC(line, call);
       
   160 
       
   161  	//-------------------------------------------------------------------------
       
   162 	// TEST: failure to dispatch request to CTSY
       
   163 	// when call is not active
       
   164  	//-------------------------------------------------------------------------
       
   165 
       
   166 	RCall::TBearerService bearerService;
       
   167 	TInt res = call.GetBearerServiceInfo(bearerService);
       
   168 	ASSERT_EQUALS(KErrNotFound, res);
       
   169 	AssertMockLtsyStatusL();
       
   170 	
       
   171  	//-------------------------------------------------------------------------
       
   172 	// TEST C: Successful completion request of
       
   173 	// RCall::GetBearerServiceInfo.
       
   174  	//-------------------------------------------------------------------------
       
   175 
       
   176 	DialL(call, 1, RMobilePhone::ECircuitDataService);
       
   177 	ChangeCallStatusL(1, RMobilePhone::ECircuitDataService, RMobileCall::EStatusConnected);
       
   178 	
       
   179 	res = call.GetBearerServiceInfo(bearerService);
       
   180 	ASSERT_EQUALS(KErrNone, res)
       
   181 	ASSERT_EQUALS((TUint32) (RCall::KBearerCapsCompressionNone | RCall::KBearerCapsProtocolUnknown), bearerService.iBearerCaps)
       
   182 	ASSERT_EQUALS(RCall::EBearerDataUnknown, bearerService.iBearerSpeed)
       
   183 	AssertMockLtsyStatusL();
       
   184 	
       
   185 	// change data in CTSY
       
   186 	RMobilePhone::TMobileService mobileService = RMobilePhone::ECircuitDataService;
       
   187 	RCall::TBearerService changeBearerService;
       
   188 	changeBearerService.iBearerCaps = RCall::KBearerCapsProtocolALT_CELLULAR;
       
   189 	changeBearerService.iBearerSpeed = RCall::EBearerData57600;
       
   190 	
       
   191 	TMockLtsyCallData1<RCall::TBearerService> mockBearerData(1, mobileService, changeBearerService);
       
   192 	data.Close();
       
   193 	mockBearerData.SerialiseL(data);
       
   194 	
       
   195 	TRequestStatus mockLtsyStatus;
       
   196 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
   197 	iMockLTSY.CompleteL(EEtelCallGetBearerServiceInfo, KErrNone, data);
       
   198 	User::WaitForRequest(mockLtsyStatus);
       
   199 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int())
       
   200 		
       
   201 	// test again
       
   202 	res = call.GetBearerServiceInfo(bearerService);
       
   203 	ASSERT_EQUALS(KErrNone, res);
       
   204 	ASSERT_EQUALS((TUint32) (RCall::KBearerCapsProtocolALT_CELLULAR), bearerService.iBearerCaps)
       
   205 	ASSERT_EQUALS(RCall::EBearerData57600, bearerService.iBearerSpeed)
       
   206 	AssertMockLtsyStatusL();
       
   207 
       
   208 	ChangeCallStatusL(1, RMobilePhone::ECircuitDataService, RMobileCall::EStatusIdle, KErrGsmReleaseByUser);
       
   209 	
       
   210 	CleanupStack::PopAndDestroy(4, this); // call, line, data, this
       
   211 	
       
   212 	}
       
   213 
       
   214 
       
   215 /**
       
   216 @SYMTestCaseID BA-CTSY-DATC-CGBSI-0011
       
   217 @SYMComponent  telephony_ctsy
       
   218 @SYMTestCaseDesc Test support in CTSY for RCall::GetBearerServiceInfo for fax calls
       
   219 @SYMTestPriority High
       
   220 @SYMTestActions Invokes RCall::GetBearerServiceInfo for fax calls
       
   221 @SYMTestExpectedResults Pass
       
   222 @SYMTestType CT
       
   223 */
       
   224 void CCTsyDataCallControlFU::TestGetBearerServiceInfo0011L()
       
   225 	{
       
   226 
       
   227 	OpenEtelServerL(EUseExtendedError);
       
   228 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   229 	OpenPhoneL();
       
   230 
       
   231 	RBuf8 data;
       
   232 	CleanupClosePushL(data);
       
   233 	
       
   234 	RBuf8 expectData;
       
   235     CleanupClosePushL(expectData);
       
   236 
       
   237 	RBuf8 completeData;
       
   238     CleanupClosePushL(completeData);
       
   239     
       
   240 	RLine line;
       
   241 	RCall call;
       
   242 	OpenLineLC(line, KMmTsyFaxLineName);
       
   243 	OpenNewCallLC(line, call);
       
   244 	
       
   245 	RCall::TBearerService bearerService;
       
   246 	TInt res = call.GetBearerServiceInfo(bearerService);
       
   247 	ASSERT_EQUALS(KErrNotFound, res);
       
   248 	AssertMockLtsyStatusL();
       
   249 
       
   250 	CleanupStack::PopAndDestroy(&call);
       
   251 
       
   252 	TName name;
       
   253 	RMobilePhone::TMobileService mobileService = RMobilePhone::EFaxService;
       
   254 	CreateIncomingCallL(line, 1, KNullDesC, name, mobileService, RMobileCall::EStatusConnected);
       
   255 	res = call.OpenExistingCall(line, name);
       
   256 	ASSERT_EQUALS(KErrNone, res);
       
   257 	CleanupClosePushL(call);
       
   258 	
       
   259  	//-------------------------------------------------------------------------
       
   260 	// TEST C: Successful completion request of
       
   261 	// RCall::GetBearerServiceInfo.
       
   262  	//-------------------------------------------------------------------------
       
   263 
       
   264 	res = call.GetBearerServiceInfo(bearerService);
       
   265 	ASSERT_EQUALS(KErrNone, res)
       
   266 	ASSERT_EQUALS((TUint32) (RCall::KBearerCapsCompressionNone | RCall::KBearerCapsProtocolUnknown), bearerService.iBearerCaps)
       
   267 	ASSERT_EQUALS(RCall::EBearerDataUnknown, bearerService.iBearerSpeed)
       
   268 	AssertMockLtsyStatusL();
       
   269 	
       
   270 	// change data in CTSY
       
   271 	RCall::TBearerService changeBearerService;
       
   272 	changeBearerService.iBearerCaps = RCall::KBearerCapsProtocolALT_CELLULAR;
       
   273 	changeBearerService.iBearerSpeed = RCall::EBearerData57600;
       
   274 	
       
   275 	TMockLtsyCallData1<RCall::TBearerService> mockBearerData(1, mobileService, changeBearerService);
       
   276 	data.Close();
       
   277 	mockBearerData.SerialiseL(data);
       
   278 	
       
   279 	TRequestStatus mockLtsyStatus;
       
   280 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
   281 	iMockLTSY.CompleteL(EEtelCallGetBearerServiceInfo, KErrNone, data);
       
   282 	User::WaitForRequest(mockLtsyStatus);
       
   283 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int())
       
   284 	AssertMockLtsyStatusL();
       
   285 	
       
   286 	// test again
       
   287 	res = call.GetBearerServiceInfo(bearerService);
       
   288 	ASSERT_EQUALS(KErrNone, res);
       
   289 	ASSERT_EQUALS((TUint32) (RCall::KBearerCapsProtocolALT_CELLULAR), bearerService.iBearerCaps)
       
   290 	ASSERT_EQUALS(RCall::EBearerData57600, bearerService.iBearerSpeed)
       
   291 	AssertMockLtsyStatusL();
       
   292 	
       
   293 	// Fax call is not in idle state while closing the call object.
       
   294 	// Therefore CTSY sends HangUp request to LTSY.
       
   295 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
   296 	TInt hangUpCause = KErrGsmReleaseByUser;
       
   297 	TBool autoStChangeDisable = EFalse;
       
   298     TMockLtsyCallData2<TInt, TBool> mockData2(1, RMobilePhone::EFaxService, hangUpCause, autoStChangeDisable);
       
   299     mockData2.SerialiseL(expectData);
       
   300     iMockLTSY.ExpectL(EEtelCallHangUp, expectData);
       
   301     
       
   302     TMockLtsyCallData0 mockData0(1, RMobilePhone::EFaxService);
       
   303 	mockData0.SerialiseL(completeData);
       
   304 	iMockLTSY.CompleteL(EEtelCallHangUp, KErrNone, completeData);
       
   305 	
       
   306 	call.Close();
       
   307 	User::WaitForRequest(mockLtsyStatus);
       
   308 	CleanupStack::Pop(&call);
       
   309 	
       
   310 	AssertMockLtsyStatusL();
       
   311 	
       
   312  	//-------------------------------------------------------------------------
       
   313 	// TEST: failure to dispatch request to CTSY
       
   314 	// when call is not active
       
   315  	//-------------------------------------------------------------------------
       
   316 	
       
   317 	OpenNewCallLC(line, call);
       
   318 	
       
   319 	res = call.GetBearerServiceInfo(bearerService);
       
   320 	ASSERT_EQUALS(KErrNotFound, res);
       
   321 	AssertMockLtsyStatusL();
       
   322 
       
   323 	CleanupStack::PopAndDestroy(6, this); // data, expectData, completeData, call, line, this
       
   324 	
       
   325 	}
       
   326 
       
   327 
       
   328 
       
   329 /**
       
   330 @SYMTestCaseID BA-CTSY-DATC-CC-0001
       
   331 @SYMComponent  telephony_ctsy
       
   332 @SYMTestCaseDesc Test support in CTSY for RCall::Connect for voice calls
       
   333 @SYMTestPriority High
       
   334 @SYMTestActions Invokes RCall::Connect for voice calls
       
   335 @SYMTestExpectedResults Pass
       
   336 @SYMTestType CT
       
   337 */
       
   338 void CCTsyDataCallControlFU::TestConnect0001L()
       
   339 	{
       
   340 
       
   341 	OpenEtelServerL(EUseExtendedError);
       
   342 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   343 	OpenPhoneL();
       
   344 
       
   345 	RLine line;
       
   346 	RCall call;
       
   347 	OpenLineLC(line, KMmTsyVoice1LineName);
       
   348 	OpenNewCallLC(line, call);
       
   349 
       
   350  	//-------------------------------------------------------------------------
       
   351 	// TEST: failure to dispatch request to CTSY
       
   352 	// because RCall::Connect is not supported for voice calls
       
   353  	//-------------------------------------------------------------------------
       
   354 
       
   355 	// synchronous version
       
   356 	TInt res = call.Connect();
       
   357 	ASSERT_EQUALS(KErrNotSupported, res)
       
   358 
       
   359 	// synchronous version with parameters
       
   360 	RCall::TCallParams callParams;
       
   361 	RCall::TCallParamsPckg callParamsPckg(callParams);
       
   362 	res = call.Connect(callParamsPckg);
       
   363 	ASSERT_EQUALS(KErrNotSupported, res)
       
   364 	
       
   365 	// asynchronous version
       
   366 	TRequestStatus reqStatus;
       
   367 	call.Connect(reqStatus);
       
   368 	User::WaitForRequest(reqStatus);
       
   369 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
   370 
       
   371 	// asynchronous version with parameters
       
   372 	call.Connect(reqStatus, callParamsPckg);
       
   373 	User::WaitForRequest(reqStatus);
       
   374 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
   375 
       
   376 	CleanupStack::PopAndDestroy(2); // call, line
       
   377 
       
   378 	// same test for voice call from auxiliary voice line
       
   379 	OpenLineLC(line, KMmTsyVoice2LineName);
       
   380 	OpenNewCallLC(line, call);
       
   381 
       
   382 	// synchronous version
       
   383 	res = call.Connect();
       
   384 	ASSERT_EQUALS(KErrNotSupported, res)
       
   385 	
       
   386 	// synchronous version with parameters
       
   387 	res = call.Connect(callParamsPckg);
       
   388 	ASSERT_EQUALS(KErrNotSupported, res)
       
   389 	
       
   390 	// asynchronous version
       
   391 	call.Connect(reqStatus);
       
   392 	User::WaitForRequest(reqStatus);
       
   393 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
   394 
       
   395 	// asynchronous version with parameters
       
   396 	call.Connect(reqStatus, callParamsPckg);
       
   397 	User::WaitForRequest(reqStatus);
       
   398 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
   399 
       
   400 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
   401 	
       
   402 	}
       
   403 
       
   404 
       
   405 /**
       
   406 @SYMTestCaseID BA-CTSY-DATC-CC-0006
       
   407 @SYMComponent  telephony_ctsy
       
   408 @SYMTestCaseDesc Test support in CTSY for RCall::Connect for data calls
       
   409 @SYMTestPriority High
       
   410 @SYMTestActions Invokes RCall::Connect for data calls
       
   411 @SYMTestExpectedResults Pass
       
   412 @SYMTestType CT
       
   413 */
       
   414 void CCTsyDataCallControlFU::TestConnect0006L()
       
   415 	{
       
   416 
       
   417 	OpenEtelServerL(EUseExtendedError);
       
   418 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   419 	OpenPhoneL();
       
   420 
       
   421 	RLine line;
       
   422 	RCall call;
       
   423 	OpenLineLC(line, KMmTsyDataLineName);
       
   424 	OpenNewCallLC(line, call);
       
   425 
       
   426  	//-------------------------------------------------------------------------
       
   427 	// TEST C: Successful completion request of
       
   428 	// RCall::Connect.
       
   429  	//-------------------------------------------------------------------------
       
   430 
       
   431 	TRequestStatus reqStatus;
       
   432 		
       
   433 	// synchronous version with no parameters
       
   434 	TInt res = call.Connect();
       
   435 	ASSERT_EQUALS(KErrNone, res)
       
   436 
       
   437 	// synchronous version with RCall::TCallParams parameter
       
   438 	RCall::TCallParams callParams;
       
   439 	callParams.iSpeakerControl = RMobileCall::EMonitorSpeakerControlAlwaysOff;
       
   440 	callParams.iSpeakerVolume = RMobileCall::EMonitorSpeakerVolumeOff;
       
   441 	callParams.iInterval = 0;
       
   442 	callParams.iWaitForDialTone = RMobileCall::EDialToneNoWait;
       
   443 	RCall::TCallParamsPckg callParamsPckg(callParams);
       
   444 	res = call.Connect(callParamsPckg);
       
   445 	ASSERT_EQUALS(KErrNone, res)
       
   446 	
       
   447 	// synchronous version with RMobileCall::TMobileCallParamsV1Pckg parameter
       
   448 	RMobileCall::TMobileCallParamsV1 mobileCallParams;
       
   449 	mobileCallParams.iSpeakerControl = RMobileCall::EMonitorSpeakerControlAlwaysOn;
       
   450 	mobileCallParams.iSpeakerVolume = RMobileCall::EMonitorSpeakerVolumeMedium;
       
   451 	mobileCallParams.iInterval = 0;
       
   452 	mobileCallParams.iWaitForDialTone = RMobileCall::EDialToneNoWait;
       
   453 	mobileCallParams.iIdRestrict = RMobileCall::EIdRestrictDefault;
       
   454 	mobileCallParams.iCug.iExplicitInvoke = EFalse;
       
   455 	mobileCallParams.iCug.iCugIndex = -1;
       
   456 	mobileCallParams.iCug.iSuppressOA = EFalse;
       
   457 	mobileCallParams.iCug.iSuppressPrefCug = EFalse;
       
   458 	mobileCallParams.iAutoRedial = EFalse;
       
   459 	RMobileCall::TMobileCallParamsV1Pckg mobileCallParamsPckg(mobileCallParams);
       
   460 
       
   461 	res = call.Connect(mobileCallParamsPckg);
       
   462 	ASSERT_EQUALS(KErrNone, res)
       
   463 
       
   464 	// synchronous version with RMobileCall::TMobileDataCallParamsV1Pckg parameter
       
   465 	RMobileCall::TMobileDataCallParamsV1 dataCallParams;
       
   466 	dataCallParams.iSpeakerControl = RMobileCall::EMonitorSpeakerControlAlwaysOn;
       
   467 	dataCallParams.iSpeakerVolume = RMobileCall::EMonitorSpeakerVolumeMedium;
       
   468 	dataCallParams.iInterval = 0;
       
   469 	dataCallParams.iWaitForDialTone = RMobileCall::EDialToneNoWait;
       
   470 	dataCallParams.iIdRestrict = RMobileCall::EIdRestrictDefault;
       
   471 	dataCallParams.iCug.iExplicitInvoke = EFalse;
       
   472 	dataCallParams.iCug.iCugIndex = -1;
       
   473 	dataCallParams.iCug.iSuppressOA = EFalse;
       
   474 	dataCallParams.iCug.iSuppressPrefCug = EFalse;
       
   475 	dataCallParams.iAutoRedial = EFalse;
       
   476 	dataCallParams.iService = RMobileCall::EServiceDataCircuitAsync;
       
   477 	dataCallParams.iSpeed = RMobileCall::ESpeedAutobauding;
       
   478 	dataCallParams.iProtocol = RMobileCall::EProtocolV32;
       
   479 	dataCallParams.iQoS = RMobileCall::EQoSTransparent;
       
   480 	dataCallParams.iRLPVersion = RMobileCall::ERLPNotRequested;
       
   481 	dataCallParams.iModemToMSWindowSize = 100;
       
   482 	dataCallParams.iMSToModemWindowSize = 100;
       
   483 	dataCallParams.iAckTimer = 100;
       
   484 	dataCallParams.iRetransmissionAttempts = 3;
       
   485 	dataCallParams.iResequencingPeriod = 100;
       
   486 	dataCallParams.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
   487 	dataCallParams.iV42bisCodewordsNum = 2;
       
   488 	dataCallParams.iV42bisMaxStringLength = 64;
       
   489 	dataCallParams.iUseEdge = EFalse;
       
   490 	RMobileCall::TMobileDataCallParamsV1Pckg dataCallParamsPckg(dataCallParams);
       
   491 
       
   492 	res = call.Connect(dataCallParamsPckg);
       
   493 	ASSERT_EQUALS(KErrNone, res)
       
   494 
       
   495 	// asynchronous version with RMobileCall::TMobileHscsdCallParamsV1 parameter
       
   496 	RMobileCall::TMobileHscsdCallParamsV1 hscsdCallParams;
       
   497 	RMobileCall::TMobileHscsdCallParamsV1Pckg hscsdCallParamsPckg(hscsdCallParams);
       
   498 	
       
   499 	hscsdCallParams.iService = RMobileCall::EServiceDataCircuitAsync;
       
   500 	hscsdCallParams.iSpeed = RMobileCall::ESpeedAutobauding;
       
   501 	hscsdCallParams.iProtocol = RMobileCall::EProtocolV32;
       
   502 	hscsdCallParams.iQoS = RMobileCall::EQoSTransparent;
       
   503 	hscsdCallParams.iRLPVersion = RMobileCall::ERLPNotRequested;
       
   504 	hscsdCallParams.iModemToMSWindowSize = 100;
       
   505 	hscsdCallParams.iMSToModemWindowSize = 100;
       
   506 	hscsdCallParams.iAckTimer = 100;
       
   507 	hscsdCallParams.iRetransmissionAttempts = 3;
       
   508 	hscsdCallParams.iResequencingPeriod = 100;
       
   509 	hscsdCallParams.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
   510 	hscsdCallParams.iV42bisCodewordsNum = 2;
       
   511 	hscsdCallParams.iV42bisMaxStringLength = 64;
       
   512 	hscsdCallParams.iUseEdge = EFalse;
       
   513 	hscsdCallParams.iWantedAiur = RMobileCall::EAiurBps19200;
       
   514 	hscsdCallParams.iWantedRxTimeSlots = 2;
       
   515 	hscsdCallParams.iMaxTimeSlots = 3;
       
   516 	hscsdCallParams.iCodings = RMobileCall::KCapsAiurCoding96;
       
   517 	hscsdCallParams.iAsymmetry = RMobileCall::EAsymmetryDownlink;
       
   518 	hscsdCallParams.iUserInitUpgrade = ETrue;
       
   519 	
       
   520 
       
   521 	call.Connect(reqStatus, hscsdCallParamsPckg);
       
   522 	User::WaitForRequest(reqStatus);
       
   523 	ASSERT_EQUALS(KErrNone, reqStatus.Int())
       
   524 		
       
   525 	
       
   526 	//-------------------------------------------------------------------------
       
   527 	// Test: Test passing RMobileCall::TMobileDataCallParamsV2 to
       
   528 	// RCall::Connect
       
   529 	//-------------------------------------------------------------------------
       
   530 						
       
   531 	RMobileCall::TMobileDataCallParamsV2 callParams2;
       
   532 	RMobileCall::TMobileDataCallParamsV2Pckg callParamsPckg2(callParams2);
       
   533 					
       
   534 	callParams2.iService = RMobileCall::EServiceDataCircuitAsync;
       
   535 	callParams2.iSpeed = RMobileCall::ESpeedAutobauding;
       
   536 	callParams2.iProtocol = RMobileCall::EProtocolV32;
       
   537 	callParams2.iQoS = RMobileCall::EQoSTransparent;
       
   538 	callParams2.iRLPVersion = RMobileCall::ERLPNotRequested;
       
   539 	callParams2.iModemToMSWindowSize = 100;
       
   540 	callParams2.iMSToModemWindowSize = 100;
       
   541 	callParams2.iAckTimer = 100;
       
   542 	callParams2.iRetransmissionAttempts = 3;
       
   543 	callParams2.iResequencingPeriod = 100;
       
   544 	callParams2.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
   545 	callParams2.iV42bisCodewordsNum = 2;
       
   546 	callParams2.iV42bisMaxStringLength = 64;
       
   547 	callParams2.iUseEdge = EFalse;
       
   548 	callParams2.iBearerMode = RMobileCall::EMulticallNotSupported;
       
   549 		
       
   550 	call.Connect(reqStatus, callParamsPckg2);
       
   551 	User::WaitForRequest(reqStatus);
       
   552 	ASSERT_EQUALS(KErrNone, reqStatus.Int())
       
   553 			
       
   554 	//-------------------------------------------------------------------------
       
   555 	// Test: Test passing RMobileCall::TMobileDataCallParamsV8 to
       
   556 	// RCall::Connect
       
   557 	//-------------------------------------------------------------------------
       
   558 					
       
   559 	RMobileCall::TMobileDataCallParamsV8 callParams8;
       
   560 	RMobileCall::TMobileDataCallParamsV8Pckg callParamsPckg8(callParams8);
       
   561 			
       
   562 	callParams8.iService = RMobileCall::EServiceDataCircuitAsync;
       
   563 	callParams8.iSpeed = RMobileCall::ESpeedAutobauding;
       
   564 	callParams8.iProtocol = RMobileCall::EProtocolV32;
       
   565 	callParams8.iQoS = RMobileCall::EQoSTransparent;
       
   566 	callParams8.iRLPVersion = RMobileCall::ERLPNotRequested;
       
   567 	callParams8.iModemToMSWindowSize = 100;
       
   568 	callParams8.iMSToModemWindowSize = 100;
       
   569 	callParams8.iAckTimer = 100;
       
   570 	callParams8.iRetransmissionAttempts = 3;
       
   571 	callParams8.iResequencingPeriod = 100;
       
   572 	callParams8.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
   573 	callParams8.iV42bisCodewordsNum = 2;
       
   574 	callParams8.iV42bisMaxStringLength = 64;
       
   575 	callParams8.iUseEdge = EFalse;
       
   576 			
       
   577 	callParams8.iBearerMode = RMobileCall::EMulticallNotSupported;
       
   578 	callParams8.iCallParamOrigin = RMobileCall::EOriginatorUnknown ;
       
   579 	callParams8.iSubAddress.Zero() ;
       
   580 	callParams8.iBearerCap1.Zero();
       
   581 	callParams8.iBearerCap2.Zero();
       
   582 	callParams8.iBCRepeatIndicator = RMobileCall::EBCServiceChangeAndFallbackMode ;
       
   583 	callParams8.iAlphaId.Copy(_L("Alpha Id"));
       
   584 		
       
   585 	call.Connect(reqStatus, callParamsPckg8);
       
   586 	User::WaitForRequest(reqStatus);
       
   587 	ASSERT_EQUALS(KErrNone, reqStatus.Int())
       
   588 		
       
   589 	//-------------------------------------------------------------------------
       
   590 	// Test: Test passing RMobileCall::TMobileHscsdCallParamsV2 to
       
   591 	// RCall::Connect
       
   592 	//-------------------------------------------------------------------------
       
   593 
       
   594 	RMobileCall::TMobileHscsdCallParamsV2 hscsdCallParams2;
       
   595 	RMobileCall::TMobileHscsdCallParamsV2Pckg hscsdCallParamsPckg2(hscsdCallParams2);
       
   596 				
       
   597 	hscsdCallParams2.iService = RMobileCall::EServiceDataCircuitAsync;
       
   598 	hscsdCallParams2.iSpeed = RMobileCall::ESpeedAutobauding;
       
   599 	hscsdCallParams2.iProtocol = RMobileCall::EProtocolV32;
       
   600 	hscsdCallParams2.iQoS = RMobileCall::EQoSTransparent;
       
   601 	hscsdCallParams2.iRLPVersion = RMobileCall::ERLPNotRequested;
       
   602 	hscsdCallParams2.iModemToMSWindowSize = 100;
       
   603 	hscsdCallParams2.iMSToModemWindowSize = 100;
       
   604 	hscsdCallParams2.iAckTimer = 100;
       
   605 	hscsdCallParams2.iRetransmissionAttempts = 3;
       
   606 	hscsdCallParams2.iResequencingPeriod = 100;
       
   607 	hscsdCallParams2.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
   608 	hscsdCallParams2.iV42bisCodewordsNum = 2;
       
   609 	hscsdCallParams2.iV42bisMaxStringLength = 64;
       
   610 	hscsdCallParams2.iUseEdge = EFalse;
       
   611 	hscsdCallParams2.iWantedRxTimeSlots = 3;
       
   612 				
       
   613 	hscsdCallParams2.iBearerMode = RMobileCall::EMulticallNotSupported;
       
   614 	
       
   615 	call.Connect(reqStatus, hscsdCallParamsPckg2);
       
   616 	User::WaitForRequest(reqStatus);
       
   617 	ASSERT_EQUALS(KErrNone, reqStatus.Int())
       
   618 	
       
   619 	//-------------------------------------------------------------------------
       
   620    	// Test: Test passing RMobileCall::TMobileHscsdCallParamsV7 to
       
   621    	// RCall::Connect
       
   622    	//-------------------------------------------------------------------------
       
   623 
       
   624    	RMobileCall::TMobileHscsdCallParamsV7 hscsdCallParams7;
       
   625    	RMobileCall::TMobileHscsdCallParamsV7Pckg hscsdCallParamsPckg7(hscsdCallParams7);
       
   626     
       
   627    	hscsdCallParams7.iService = RMobileCall::EServiceDataCircuitAsync;
       
   628    	hscsdCallParams7.iSpeed = RMobileCall::ESpeedAutobauding;
       
   629    	hscsdCallParams7.iProtocol = RMobileCall::EProtocolV32;
       
   630    	hscsdCallParams7.iQoS = RMobileCall::EQoSTransparent;
       
   631    	hscsdCallParams7.iRLPVersion = RMobileCall::ERLPNotRequested;
       
   632    	hscsdCallParams7.iModemToMSWindowSize = 100;
       
   633    	hscsdCallParams7.iMSToModemWindowSize = 100;
       
   634    	hscsdCallParams7.iAckTimer = 100;
       
   635    	hscsdCallParams7.iRetransmissionAttempts = 3;
       
   636    	hscsdCallParams7.iResequencingPeriod = 100;
       
   637    	hscsdCallParams7.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
   638    	hscsdCallParams7.iV42bisCodewordsNum = 2;
       
   639    	hscsdCallParams7.iV42bisMaxStringLength = 64;
       
   640    	hscsdCallParams7.iUseEdge = EFalse;
       
   641    	hscsdCallParams7.iWantedRxTimeSlots = 3;
       
   642     			
       
   643    	hscsdCallParams7.iBearerMode = RMobileCall::EMulticallNotSupported;
       
   644    	hscsdCallParams7.iCallParamOrigin = RMobileCall::EOriginatorUnknown;
       
   645    	hscsdCallParams7.iIconId.iQualifier = RMobileCall::ENoIconId;
       
   646    	hscsdCallParams7.iIconId.iIdentifier = 2;
       
   647    	hscsdCallParams7.iAlphaId.Zero();
       
   648 	    		
       
   649    	call.Connect(reqStatus, hscsdCallParamsPckg7);
       
   650    	User::WaitForRequest(reqStatus);
       
   651    	ASSERT_EQUALS(KErrNone, reqStatus.Int())
       
   652    	
       
   653 	//-------------------------------------------------------------------------
       
   654 	// Test: Test passing RMobileCall::TMobileHscsdCallParamsV8 to
       
   655 	// RCall::Connect
       
   656 	//-------------------------------------------------------------------------
       
   657 
       
   658 	RMobileCall::TMobileHscsdCallParamsV8 hscsdCallParams8;
       
   659 	RMobileCall::TMobileHscsdCallParamsV8Pckg hscsdCallParamsPckg8(hscsdCallParams8);
       
   660 	
       
   661 	hscsdCallParams8.iService = RMobileCall::EServiceDataCircuitAsync;
       
   662 	hscsdCallParams8.iSpeed = RMobileCall::ESpeedAutobauding;
       
   663 	hscsdCallParams8.iProtocol = RMobileCall::EProtocolV32;
       
   664 	hscsdCallParams8.iQoS = RMobileCall::EQoSTransparent;
       
   665 	hscsdCallParams8.iRLPVersion = RMobileCall::ERLPNotRequested;
       
   666 	hscsdCallParams8.iModemToMSWindowSize = 100;
       
   667 	hscsdCallParams8.iMSToModemWindowSize = 100;
       
   668 	hscsdCallParams8.iAckTimer = 100;
       
   669 	hscsdCallParams8.iRetransmissionAttempts = 3;
       
   670 	hscsdCallParams8.iResequencingPeriod = 100;
       
   671 	hscsdCallParams8.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
   672 	hscsdCallParams8.iV42bisCodewordsNum = 2;
       
   673 	hscsdCallParams8.iV42bisMaxStringLength = 64;
       
   674 	hscsdCallParams8.iUseEdge = EFalse;
       
   675 	hscsdCallParams8.iWantedRxTimeSlots = 3;
       
   676 			
       
   677 	hscsdCallParams8.iBearerMode = RMobileCall::EMulticallNotSupported;
       
   678 	hscsdCallParams8.iCallParamOrigin = RMobileCall::EOriginatorUnknown;
       
   679 	hscsdCallParams8.iIconId.iQualifier = RMobileCall::ENoIconId;
       
   680 	hscsdCallParams8.iIconId.iIdentifier = 2;
       
   681 	hscsdCallParams8.iAlphaId.Zero();
       
   682 		
       
   683 	hscsdCallParams8.iSubAddress.Zero();
       
   684 	hscsdCallParams8.iBearerCap1.Zero();
       
   685 	hscsdCallParams8.iBearerCap2.Zero();
       
   686 	hscsdCallParams8.iBCRepeatIndicator = RMobileCall::EBCServiceChangeAndFallbackMode ;
       
   687 
       
   688 	call.Connect(reqStatus, hscsdCallParamsPckg8);
       
   689 	User::WaitForRequest(reqStatus);
       
   690 	ASSERT_EQUALS(KErrNone, reqStatus.Int())
       
   691 	
       
   692 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
   693 	
       
   694 	}
       
   695 
       
   696 /**
       
   697 @SYMTestCaseID BA-CTSY-DATC-CC-0007
       
   698 @SYMComponent  telephony_ctsy
       
   699 @SYMTestCaseDesc Test support in CTSY for cancelling of RCall::Connect for data calls
       
   700 @SYMTestPriority High
       
   701 @SYMTestActions Invokes cancelling of RCall::Connect for data calls
       
   702 @SYMTestExpectedResults Pass
       
   703 @SYMTestType CT
       
   704 */
       
   705 void CCTsyDataCallControlFU::TestConnect0007L()
       
   706 	{
       
   707 
       
   708 	OpenEtelServerL(EUseExtendedError);
       
   709 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   710 	OpenPhoneL();
       
   711 
       
   712 	RLine line;
       
   713 	RCall call;
       
   714 	OpenLineLC(line, KMmTsyDataLineName);
       
   715 	OpenNewCallLC(line, call);
       
   716 
       
   717  	//-------------------------------------------------------------------------
       
   718 	// Test cancelling of RCall::Connect (Not Supported)
       
   719  	//-------------------------------------------------------------------------
       
   720 
       
   721 	RMobileCall::TMobileCallParamsV1 mobileCallParams;
       
   722 	mobileCallParams.iSpeakerControl = RMobileCall::EMonitorSpeakerControlAlwaysOn;
       
   723 	mobileCallParams.iSpeakerVolume = RMobileCall::EMonitorSpeakerVolumeMedium;
       
   724 	mobileCallParams.iInterval = 0;
       
   725 	mobileCallParams.iWaitForDialTone = RMobileCall::EDialToneNoWait;
       
   726 	mobileCallParams.iIdRestrict = RMobileCall::EIdRestrictDefault;
       
   727 	mobileCallParams.iCug.iExplicitInvoke = EFalse;
       
   728 	mobileCallParams.iCug.iCugIndex = -1;
       
   729 	mobileCallParams.iCug.iSuppressOA = EFalse;
       
   730 	mobileCallParams.iCug.iSuppressPrefCug = EFalse;
       
   731 	mobileCallParams.iAutoRedial = EFalse;
       
   732 	RMobileCall::TMobileCallParamsV1Pckg mobileCallParamsPckg(mobileCallParams);
       
   733 
       
   734 	TRequestStatus reqStatus;
       
   735 	call.Connect(reqStatus, mobileCallParamsPckg);
       
   736 
       
   737 	// Cancels connecting of a (data) call.
       
   738 	call.ConnectCancel();
       
   739 	
       
   740 	User::WaitForRequest(reqStatus);
       
   741 	ASSERT_EQUALS(KErrNone, reqStatus.Int())
       
   742 	AssertMockLtsyStatusL();
       
   743 
       
   744 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
   745 	
       
   746 	}
       
   747 
       
   748 /**
       
   749 @SYMTestCaseID BA-CTSY-DATC-CC-0008
       
   750 @SYMComponent  telephony_ctsy
       
   751 @SYMTestCaseDesc Test support in CTSY for RCall::Connect with bad parameter data for data calls
       
   752 @SYMTestPriority High
       
   753 @SYMTestActions Invokes RCall::Connect with bad parameter data for data calls
       
   754 @SYMTestExpectedResults Pass
       
   755 @SYMTestType CT
       
   756 */
       
   757 void CCTsyDataCallControlFU::TestConnect0008L()
       
   758 	{
       
   759 
       
   760 	OpenEtelServerL(EUseExtendedError);
       
   761 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   762 	OpenPhoneL();
       
   763 
       
   764 	RLine line;
       
   765 	RCall call;
       
   766 	OpenLineLC(line, KMmTsyDataLineName);
       
   767 	OpenNewCallLC(line, call);
       
   768 
       
   769 	//-------------------------------------------------------------------------
       
   770 	// Test B: Test passing wrong descriptor size to parameter in
       
   771 	// RCall::Connect
       
   772  	//-------------------------------------------------------------------------
       
   773 
       
   774 	_LIT8(KOneCharDesc,"1");
       
   775 	TBuf8<1> buf(KOneCharDesc);
       
   776 	TInt res = call.Connect(buf);
       
   777 	// Passing a small buffer to function does cause an error.
       
   778 	ASSERT_EQUALS(KErrArgument, res)
       
   779 	
       
   780 	TRequestStatus reqStatus;
       
   781 	call.Connect(reqStatus, buf);
       
   782 	User::WaitForRequest(reqStatus);
       
   783 	// Passing a small buffer to function does cause an error.
       
   784 	ASSERT_EQUALS(KErrArgument, reqStatus.Int())
       
   785 	
       
   786 
       
   787 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
   788 	
       
   789 	}
       
   790 
       
   791 /**
       
   792 @SYMTestCaseID BA-CTSY-DATC-CC-0009
       
   793 @SYMComponent  telephony_ctsy
       
   794 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RCall::Connect for data calls
       
   795 @SYMTestPriority High
       
   796 @SYMTestActions Invokes multiple client requests to RCall::Connect for data calls
       
   797 @SYMTestExpectedResults Pass
       
   798 @SYMTestType CT
       
   799 */
       
   800 void CCTsyDataCallControlFU::TestConnect0009L()
       
   801 	{
       
   802 
       
   803 	OpenEtelServerL(EUseExtendedError);
       
   804 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   805 	OpenPhoneL();
       
   806 
       
   807 	RLine line;
       
   808 	RCall call;
       
   809 	OpenLineLC(line, KMmTsyDataLineName);
       
   810 	OpenNewCallLC(line, call);
       
   811 	
       
   812 	RLine line2;
       
   813 	RCall call2;
       
   814 	OpenLineLC(line2, KMmTsyDataLineName);
       
   815 	OpenNewCallLC(line2, call2);
       
   816 
       
   817 	TRequestStatus reqStatus;
       
   818 	TRequestStatus reqStatus2;
       
   819 	
       
   820 	RMobileCall::TMobileDataCallParamsV1 callParams;
       
   821 	callParams.iService = RMobileCall::EServiceDataCircuitAsync;
       
   822 	callParams.iSpeed = RMobileCall::ESpeedAutobauding;
       
   823 	callParams.iProtocol = RMobileCall::EProtocolV32;
       
   824 	callParams.iQoS = RMobileCall::EQoSTransparent;
       
   825 	callParams.iRLPVersion = RMobileCall::ERLPNotRequested;
       
   826 	callParams.iModemToMSWindowSize = 100;
       
   827 	callParams.iMSToModemWindowSize = 100;
       
   828 	callParams.iAckTimer = 100;
       
   829 	callParams.iRetransmissionAttempts = 3;
       
   830 	callParams.iResequencingPeriod = 100;
       
   831 	callParams.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
   832 	callParams.iV42bisCodewordsNum = 2;
       
   833 	callParams.iV42bisMaxStringLength = 64;
       
   834 	callParams.iUseEdge = EFalse;
       
   835 	
       
   836 	RMobileCall::TMobileDataCallParamsV1Pckg callParamsPckg(callParams);
       
   837 	
       
   838 	//-------------------------------------------------------------------------
       
   839 	// Test A: Test multiple clients requesting RCall::Connect
       
   840  	//-------------------------------------------------------------------------
       
   841 
       
   842 	call.Connect(reqStatus, callParamsPckg);
       
   843 	call2.Connect(reqStatus2, callParamsPckg);
       
   844 
       
   845 	User::WaitForRequest(reqStatus);
       
   846 	User::WaitForRequest(reqStatus2);
       
   847 
       
   848 	ASSERT_EQUALS(KErrNone, reqStatus.Int())
       
   849 	ASSERT_EQUALS(KErrNone, reqStatus2.Int())
       
   850 
       
   851 	AssertMockLtsyStatusL();
       
   852 	CleanupStack::PopAndDestroy(5, this); // call2, line2, call, line, this
       
   853 	
       
   854 	}
       
   855 
       
   856 /**
       
   857 @SYMTestCaseID BA-CTSY-DATC-CC-0011
       
   858 @SYMComponent  telephony_ctsy
       
   859 @SYMTestCaseDesc Test support in CTSY for RCall::Connect for fax calls
       
   860 @SYMTestPriority High
       
   861 @SYMTestActions Invokes RCall::Connect for fax calls
       
   862 @SYMTestExpectedResults Pass
       
   863 @SYMTestType CT
       
   864 */
       
   865 void CCTsyDataCallControlFU::TestConnect0011L()
       
   866 	{
       
   867 
       
   868 	OpenEtelServerL(EUseExtendedError);
       
   869 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   870 	OpenPhoneL();
       
   871 
       
   872 	RLine line;
       
   873 	RCall call;
       
   874 	OpenLineLC(line, KMmTsyFaxLineName);
       
   875 	OpenNewCallLC(line, call);
       
   876 
       
   877  	//-------------------------------------------------------------------------
       
   878 	// TEST C: Successful completion request of
       
   879 	// RCall::Connect.
       
   880  	//-------------------------------------------------------------------------
       
   881 
       
   882 	// synchronous version
       
   883 	TInt res = call.Connect();
       
   884 	
       
   885 	// RCall::Connect() without call parameters is not supported by CTSY. 
       
   886 	// Because of this it is completed with KErrArgument.
       
   887 	ASSERT_EQUALS(KErrArgument, res)
       
   888 
       
   889 	// asynchronous version
       
   890 	TRequestStatus reqStatus;
       
   891 	call.Connect(reqStatus);
       
   892 	User::WaitForRequest(reqStatus);
       
   893 	
       
   894 	// RCall::Connect() without call parameters is not supported by CTSY. 
       
   895 	// Because of this it is completed with KErrArgument.
       
   896 	ASSERT_EQUALS(KErrArgument, reqStatus.Int())
       
   897 
       
   898 	// synchronous version with RMobileCall::TMobileDataCallParamsV1Pckg parameter
       
   899 	RMobileCall::TMobileDataCallParamsV1 callParams;
       
   900 	callParams.iService = RMobileCall::EServiceDataCircuitAsync;
       
   901 	callParams.iSpeed = RMobileCall::ESpeedAutobauding;
       
   902 	callParams.iProtocol = RMobileCall::EProtocolV32;
       
   903 	callParams.iQoS = RMobileCall::EQoSTransparent;
       
   904 	callParams.iRLPVersion = RMobileCall::ERLPNotRequested;
       
   905 	callParams.iModemToMSWindowSize = 100;
       
   906 	callParams.iMSToModemWindowSize = 100;
       
   907 	callParams.iAckTimer = 100;
       
   908 	callParams.iRetransmissionAttempts = 3;
       
   909 	callParams.iResequencingPeriod = 100;
       
   910 	callParams.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
   911 	callParams.iV42bisCodewordsNum = 2;
       
   912 	callParams.iV42bisMaxStringLength = 64;
       
   913 	callParams.iUseEdge = EFalse;
       
   914 	RMobileCall::TMobileDataCallParamsV1Pckg callParamsPckg(callParams);
       
   915 
       
   916 	res = call.Connect(callParamsPckg);
       
   917 	ASSERT_EQUALS(KErrNone, res)
       
   918 	
       
   919 	// asynchronous version with RMobileCall::TMobileHscsdCallParamsV1Pckg parameter
       
   920 	RMobileCall::TMobileHscsdCallParamsV1 hscsdCallParams;
       
   921 	hscsdCallParams.iService = RMobileCall::EServiceDataCircuitAsync;
       
   922 	hscsdCallParams.iSpeed = RMobileCall::ESpeedAutobauding;
       
   923 	hscsdCallParams.iProtocol = RMobileCall::EProtocolV32;
       
   924 	hscsdCallParams.iQoS = RMobileCall::EQoSTransparent;
       
   925 	hscsdCallParams.iRLPVersion = RMobileCall::ERLPNotRequested;
       
   926 	hscsdCallParams.iModemToMSWindowSize = 100;
       
   927 	hscsdCallParams.iMSToModemWindowSize = 100;
       
   928 	hscsdCallParams.iAckTimer = 100;
       
   929 	hscsdCallParams.iRetransmissionAttempts = 3;
       
   930 	hscsdCallParams.iResequencingPeriod = 100;
       
   931 	hscsdCallParams.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
   932 	hscsdCallParams.iV42bisCodewordsNum = 2;
       
   933 	hscsdCallParams.iV42bisMaxStringLength = 64;
       
   934 	hscsdCallParams.iUseEdge = EFalse;
       
   935 	hscsdCallParams.iWantedAiur = RMobileCall::EAiurBps19200;
       
   936 	hscsdCallParams.iWantedRxTimeSlots = 2;
       
   937 	hscsdCallParams.iMaxTimeSlots = 3;
       
   938 	hscsdCallParams.iCodings = RMobileCall::KCapsAiurCoding96;
       
   939 	hscsdCallParams.iAsymmetry = RMobileCall::EAsymmetryDownlink;
       
   940 	hscsdCallParams.iUserInitUpgrade = ETrue;
       
   941 	RMobileCall::TMobileHscsdCallParamsV1Pckg hscsdCallParamsPckg(hscsdCallParams);
       
   942 
       
   943 	call.Connect(reqStatus, hscsdCallParamsPckg);
       
   944 	User::WaitForRequest(reqStatus);
       
   945 	ASSERT_EQUALS(KErrNone, reqStatus.Int())
       
   946 	
       
   947 	//------------------------------------------------------------
       
   948 	// TMobileDataCallParamsV2
       
   949 	RMobileCall::TMobileDataCallParamsV2 dataCallParams2;
       
   950 	dataCallParams2.iService = RMobileCall::EServiceDataCircuitAsync;
       
   951 	dataCallParams2.iSpeed = RMobileCall::ESpeedAutobauding;
       
   952 	dataCallParams2.iProtocol = RMobileCall::EProtocolV32;
       
   953 	dataCallParams2.iQoS = RMobileCall::EQoSTransparent;
       
   954 	dataCallParams2.iRLPVersion = RMobileCall::ERLPNotRequested;
       
   955 	dataCallParams2.iModemToMSWindowSize = 100;
       
   956 	dataCallParams2.iMSToModemWindowSize = 100;
       
   957 	dataCallParams2.iAckTimer = 100;
       
   958 	dataCallParams2.iRetransmissionAttempts = 3;
       
   959 	dataCallParams2.iResequencingPeriod = 100;
       
   960 	dataCallParams2.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
   961 	dataCallParams2.iV42bisCodewordsNum = 2;
       
   962 	dataCallParams2.iV42bisMaxStringLength = 64;
       
   963 	dataCallParams2.iUseEdge = EFalse;
       
   964 	dataCallParams2.iBearerMode = RMobileCall::EMulticallShareBearer;
       
   965 	RMobileCall::TMobileDataCallParamsV2Pckg dataCallParamsPckg2(dataCallParams2);
       
   966 
       
   967 	res = call.Connect(dataCallParamsPckg2);
       
   968 	ASSERT_EQUALS(KErrNone, res)
       
   969 		
       
   970 	//------------------------------------------------------------
       
   971 	// TMobileDataCallParamsV8
       
   972 	
       
   973 	RMobileCall::TMobileDataCallParamsV8 dataCallParams8;
       
   974 	dataCallParams8.iService = RMobileCall::EServiceDataCircuitAsync;
       
   975 	dataCallParams8.iSpeed = RMobileCall::ESpeedAutobauding;
       
   976 	dataCallParams8.iProtocol = RMobileCall::EProtocolV32;
       
   977 	dataCallParams8.iQoS = RMobileCall::EQoSTransparent;
       
   978 	dataCallParams8.iRLPVersion = RMobileCall::ERLPNotRequested;
       
   979 	dataCallParams8.iModemToMSWindowSize = 100;
       
   980 	dataCallParams8.iMSToModemWindowSize = 100;
       
   981 	dataCallParams8.iAckTimer = 100;
       
   982 	dataCallParams8.iRetransmissionAttempts = 3;
       
   983 	dataCallParams8.iResequencingPeriod = 100;
       
   984 	dataCallParams8.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
   985 	dataCallParams8.iV42bisCodewordsNum = 2;
       
   986 	dataCallParams8.iV42bisMaxStringLength = 64;
       
   987 	dataCallParams8.iUseEdge = EFalse;
       
   988 	dataCallParams8.iBearerMode = RMobileCall::EMulticallShareBearer;
       
   989 	RMobileCall::TMobileDataCallParamsV8Pckg dataCallParamsPckg8(dataCallParams8);
       
   990 
       
   991 	res = call.Connect(dataCallParamsPckg8);
       
   992 	ASSERT_EQUALS(KErrNone, res)
       
   993 
       
   994 	//------------------------------------------------------------
       
   995 	// TMobileHscsdCallParamsV2
       
   996 	
       
   997 	RMobileCall::TMobileHscsdCallParamsV2 hscsdCallParams2;
       
   998 	hscsdCallParams2.iService = RMobileCall::EServiceDataCircuitAsync;
       
   999 	hscsdCallParams2.iSpeed = RMobileCall::ESpeedAutobauding;
       
  1000 	hscsdCallParams2.iProtocol = RMobileCall::EProtocolV32;
       
  1001 	hscsdCallParams2.iQoS = RMobileCall::EQoSTransparent;
       
  1002 	hscsdCallParams2.iRLPVersion = RMobileCall::ERLPNotRequested;
       
  1003 	hscsdCallParams2.iModemToMSWindowSize = 100;
       
  1004 	hscsdCallParams2.iMSToModemWindowSize = 100;
       
  1005 	hscsdCallParams2.iAckTimer = 100;
       
  1006 	hscsdCallParams2.iRetransmissionAttempts = 3;
       
  1007 	hscsdCallParams2.iResequencingPeriod = 100;
       
  1008 	hscsdCallParams2.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
  1009 	hscsdCallParams2.iV42bisCodewordsNum = 2;
       
  1010 	hscsdCallParams2.iV42bisMaxStringLength = 64;
       
  1011 	hscsdCallParams2.iUseEdge = EFalse;
       
  1012 	hscsdCallParams2.iWantedAiur = RMobileCall::EAiurBps19200;
       
  1013 	hscsdCallParams2.iWantedRxTimeSlots = 2;
       
  1014 	hscsdCallParams2.iMaxTimeSlots = 3;
       
  1015 	hscsdCallParams2.iCodings = RMobileCall::KCapsAiurCoding96;
       
  1016 	hscsdCallParams2.iAsymmetry = RMobileCall::EAsymmetryDownlink;
       
  1017 	hscsdCallParams2.iUserInitUpgrade = ETrue;
       
  1018 	RMobileCall::TMobileHscsdCallParamsV2Pckg hscsdCallParamsPckg2(hscsdCallParams2);
       
  1019 
       
  1020 	call.Connect(reqStatus, hscsdCallParamsPckg2);
       
  1021 	User::WaitForRequest(reqStatus);
       
  1022 	ASSERT_EQUALS(KErrNone, reqStatus.Int())
       
  1023 	
       
  1024 	//------------------------------------------------------------
       
  1025 	// TMobileHscsdCallParamsV2
       
  1026 	
       
  1027 	RMobileCall::TMobileHscsdCallParamsV7 hscsdCallParams7;
       
  1028 	hscsdCallParams7.iService = RMobileCall::EServiceDataCircuitAsync;
       
  1029 	hscsdCallParams7.iSpeed = RMobileCall::ESpeedAutobauding;
       
  1030 	hscsdCallParams7.iProtocol = RMobileCall::EProtocolV32;
       
  1031 	hscsdCallParams7.iQoS = RMobileCall::EQoSTransparent;
       
  1032 	hscsdCallParams7.iRLPVersion = RMobileCall::ERLPNotRequested;
       
  1033 	hscsdCallParams7.iModemToMSWindowSize = 100;
       
  1034 	hscsdCallParams7.iMSToModemWindowSize = 100;
       
  1035 	hscsdCallParams7.iAckTimer = 100;
       
  1036 	hscsdCallParams7.iRetransmissionAttempts = 3;
       
  1037 	hscsdCallParams7.iResequencingPeriod = 100;
       
  1038 	hscsdCallParams7.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
  1039 	hscsdCallParams7.iV42bisCodewordsNum = 2;
       
  1040 	hscsdCallParams7.iV42bisMaxStringLength = 64;
       
  1041 	hscsdCallParams7.iUseEdge = EFalse;
       
  1042 	hscsdCallParams7.iWantedAiur = RMobileCall::EAiurBps19200;
       
  1043 	hscsdCallParams7.iWantedRxTimeSlots = 2;
       
  1044 	hscsdCallParams7.iMaxTimeSlots = 3;
       
  1045 	hscsdCallParams7.iCodings = RMobileCall::KCapsAiurCoding96;
       
  1046 	hscsdCallParams7.iAsymmetry = RMobileCall::EAsymmetryDownlink;
       
  1047 	hscsdCallParams7.iUserInitUpgrade = ETrue;
       
  1048 	RMobileCall::TMobileHscsdCallParamsV7Pckg hscsdCallParamsPckg7(hscsdCallParams7);
       
  1049 
       
  1050 	call.Connect(reqStatus, hscsdCallParamsPckg7);
       
  1051 	User::WaitForRequest(reqStatus);
       
  1052 	ASSERT_EQUALS(KErrNone, reqStatus.Int())
       
  1053 	
       
  1054 	//------------------------------------------------------------
       
  1055 	// TMobileHscsdCallParamsV8
       
  1056 	
       
  1057 	RMobileCall::TMobileHscsdCallParamsV8 hscsdCallParams8;
       
  1058 	hscsdCallParams8.iService = RMobileCall::EServiceDataCircuitAsync;
       
  1059 	hscsdCallParams8.iSpeed = RMobileCall::ESpeedAutobauding;
       
  1060 	hscsdCallParams8.iProtocol = RMobileCall::EProtocolV32;
       
  1061 	hscsdCallParams8.iQoS = RMobileCall::EQoSTransparent;
       
  1062 	hscsdCallParams8.iRLPVersion = RMobileCall::ERLPNotRequested;
       
  1063 	hscsdCallParams8.iModemToMSWindowSize = 100;
       
  1064 	hscsdCallParams8.iMSToModemWindowSize = 100;
       
  1065 	hscsdCallParams8.iAckTimer = 100;
       
  1066 	hscsdCallParams8.iRetransmissionAttempts = 3;
       
  1067 	hscsdCallParams8.iResequencingPeriod = 100;
       
  1068 	hscsdCallParams8.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
  1069 	hscsdCallParams8.iV42bisCodewordsNum = 2;
       
  1070 	hscsdCallParams8.iV42bisMaxStringLength = 64;
       
  1071 	hscsdCallParams8.iUseEdge = EFalse;
       
  1072 	hscsdCallParams8.iWantedAiur = RMobileCall::EAiurBps19200;
       
  1073 	hscsdCallParams8.iWantedRxTimeSlots = 2;
       
  1074 	hscsdCallParams8.iMaxTimeSlots = 3;
       
  1075 	hscsdCallParams8.iCodings = RMobileCall::KCapsAiurCoding96;
       
  1076 	hscsdCallParams8.iAsymmetry = RMobileCall::EAsymmetryDownlink;
       
  1077 	hscsdCallParams8.iUserInitUpgrade = ETrue;
       
  1078 	RMobileCall::TMobileHscsdCallParamsV8Pckg hscsdCallParamsPckg8(hscsdCallParams8);
       
  1079 
       
  1080 	call.Connect(reqStatus, hscsdCallParamsPckg8);
       
  1081 	User::WaitForRequest(reqStatus);
       
  1082 	ASSERT_EQUALS(KErrNone, reqStatus.Int())
       
  1083 	
       
  1084 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
  1085 	
       
  1086 	}
       
  1087 
       
  1088 /**
       
  1089 @SYMTestCaseID BA-CTSY-DATC-CC-0012
       
  1090 @SYMComponent  telephony_ctsy
       
  1091 @SYMTestCaseDesc Test support in CTSY for cancelling of RCall::Connect for fax calls
       
  1092 @SYMTestPriority High
       
  1093 @SYMTestActions Invokes cancelling of RCall::Connect for fax calls
       
  1094 @SYMTestExpectedResults Pass
       
  1095 @SYMTestType CT
       
  1096 */
       
  1097 void CCTsyDataCallControlFU::TestConnect0012L()
       
  1098 	{
       
  1099 
       
  1100 	OpenEtelServerL(EUseExtendedError);
       
  1101 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1102 	OpenPhoneL();
       
  1103 
       
  1104 	RLine line;
       
  1105 	RCall call;
       
  1106 	OpenLineLC(line, KMmTsyFaxLineName);
       
  1107 	OpenNewCallLC(line, call);
       
  1108 
       
  1109  	//-------------------------------------------------------------------------
       
  1110 	// Test cancelling of RCall::Connect (Not Supported)
       
  1111  	//-------------------------------------------------------------------------
       
  1112 
       
  1113 	RMobileCall::TMobileDataCallParamsV1 callParams;
       
  1114 	callParams.iService = RMobileCall::EServiceDataCircuitAsync;
       
  1115 	callParams.iSpeed = RMobileCall::ESpeedAutobauding;
       
  1116 	callParams.iProtocol = RMobileCall::EProtocolV32;
       
  1117 	callParams.iQoS = RMobileCall::EQoSTransparent;
       
  1118 	callParams.iRLPVersion = RMobileCall::ERLPNotRequested;
       
  1119 	callParams.iModemToMSWindowSize = 100;
       
  1120 	callParams.iMSToModemWindowSize = 100;
       
  1121 	callParams.iAckTimer = 100;
       
  1122 	callParams.iRetransmissionAttempts = 3;
       
  1123 	callParams.iResequencingPeriod = 100;
       
  1124 	callParams.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
  1125 	callParams.iV42bisCodewordsNum = 2;
       
  1126 	callParams.iV42bisMaxStringLength = 64;
       
  1127 	callParams.iUseEdge = EFalse;
       
  1128 	RMobileCall::TMobileDataCallParamsV1Pckg callParamsPckg(callParams);
       
  1129 
       
  1130 	TRequestStatus reqStatus;
       
  1131 	call.Connect(reqStatus, callParamsPckg);
       
  1132 
       
  1133 	// Cancels connecting of a (data) call (Not Supported).
       
  1134 	call.ConnectCancel();
       
  1135 
       
  1136 	User::WaitForRequest(reqStatus);
       
  1137 	ASSERT_EQUALS(KErrNone, reqStatus.Int())
       
  1138 
       
  1139 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
  1140 	
       
  1141 	}
       
  1142 
       
  1143 /**
       
  1144 @SYMTestCaseID BA-CTSY-DATC-CC-0013
       
  1145 @SYMComponent  telephony_ctsy
       
  1146 @SYMTestCaseDesc Test support in CTSY for RCall::Connect with bad parameter data for fax calls
       
  1147 @SYMTestPriority High
       
  1148 @SYMTestActions Invokes RCall::Connect with bad parameter data for fax calls
       
  1149 @SYMTestExpectedResults Pass
       
  1150 @SYMTestType CT
       
  1151 */
       
  1152 void CCTsyDataCallControlFU::TestConnect0013L()
       
  1153 	{
       
  1154 
       
  1155 	OpenEtelServerL(EUseExtendedError);
       
  1156 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1157 	OpenPhoneL();
       
  1158 
       
  1159 	RLine line;
       
  1160 	RCall call;
       
  1161 	OpenLineLC(line, KMmTsyFaxLineName);
       
  1162 	OpenNewCallLC(line, call);
       
  1163 
       
  1164 	//-------------------------------------------------------------------------
       
  1165 	// Test B: Test passing wrong descriptor size to parameter in
       
  1166 	// RCall::Connect
       
  1167  	//-------------------------------------------------------------------------
       
  1168 
       
  1169 	TBuf8<1> buf(KNullDesC8);
       
  1170 	TInt res = call.Connect(buf);
       
  1171 	// Passing a small buffer to function doesn't cause an error.
       
  1172 	ASSERT_EQUALS(KErrArgument, res)
       
  1173 	
       
  1174 	TRequestStatus reqStatus;
       
  1175 	call.Connect(reqStatus, buf);
       
  1176 	User::WaitForRequest(reqStatus);
       
  1177 	// Passing a small buffer to function doesn't cause an error.
       
  1178 	ASSERT_EQUALS(KErrArgument, reqStatus.Int())
       
  1179 
       
  1180 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
  1181 	
       
  1182 	}
       
  1183 
       
  1184 /**
       
  1185 @SYMTestCaseID BA-CTSY-DATC-CC-0014
       
  1186 @SYMComponent  telephony_ctsy
       
  1187 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RCall::Connect for fax calls
       
  1188 @SYMTestPriority High
       
  1189 @SYMTestActions Invokes multiple client requests to RCall::Connect for fax calls
       
  1190 @SYMTestExpectedResults Pass
       
  1191 @SYMTestType CT
       
  1192 */
       
  1193 void CCTsyDataCallControlFU::TestConnect0014L()
       
  1194 	{
       
  1195 
       
  1196 	OpenEtelServerL(EUseExtendedError);
       
  1197 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1198 	OpenPhoneL();
       
  1199 
       
  1200 	RLine line;
       
  1201 	RCall call;
       
  1202 	OpenLineLC(line, KMmTsyFaxLineName);
       
  1203 	OpenNewCallLC(line, call);
       
  1204 	
       
  1205 	RLine line2;
       
  1206 	RCall call2;
       
  1207 	OpenLineLC(line2, KMmTsyFaxLineName);
       
  1208 	OpenNewCallLC(line2, call2);
       
  1209 
       
  1210 	TRequestStatus reqStatus;
       
  1211 	TRequestStatus reqStatus2;
       
  1212 	
       
  1213 	RMobileCall::TMobileDataCallParamsV1 callParams;
       
  1214 	callParams.iService = RMobileCall::EServiceDataCircuitAsync;
       
  1215 	callParams.iSpeed = RMobileCall::ESpeedAutobauding;
       
  1216 	callParams.iProtocol = RMobileCall::EProtocolV32;
       
  1217 	callParams.iQoS = RMobileCall::EQoSTransparent;
       
  1218 	callParams.iRLPVersion = RMobileCall::ERLPNotRequested;
       
  1219 	callParams.iModemToMSWindowSize = 100;
       
  1220 	callParams.iMSToModemWindowSize = 100;
       
  1221 	callParams.iAckTimer = 100;
       
  1222 	callParams.iRetransmissionAttempts = 3;
       
  1223 	callParams.iResequencingPeriod = 100;
       
  1224 	callParams.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
  1225 	callParams.iV42bisCodewordsNum = 2;
       
  1226 	callParams.iV42bisMaxStringLength = 64;
       
  1227 	callParams.iUseEdge = EFalse;
       
  1228 	RMobileCall::TMobileDataCallParamsV1Pckg callParamsPckg(callParams);
       
  1229 
       
  1230 	//-------------------------------------------------------------------------
       
  1231 	// Test A: Test multiple clients requesting RCall::Connect
       
  1232  	//-------------------------------------------------------------------------
       
  1233 
       
  1234 	call.Connect(reqStatus, callParamsPckg);
       
  1235 	call2.Connect(reqStatus2, callParamsPckg);
       
  1236 	
       
  1237 	User::WaitForRequest(reqStatus);
       
  1238 	User::WaitForRequest(reqStatus2);
       
  1239 	
       
  1240 	ASSERT_EQUALS(KErrNone, reqStatus.Int())
       
  1241 	ASSERT_EQUALS(KErrNone, reqStatus2.Int())
       
  1242 
       
  1243 	CleanupStack::PopAndDestroy(5, this); // call2, line2, call, line, this
       
  1244 	
       
  1245 	}
       
  1246 
       
  1247 
       
  1248 /**
       
  1249 @SYMTestCaseID BA-CTSY-DATC-CGCHI-0001
       
  1250 @SYMComponent  telephony_ctsy
       
  1251 @SYMTestCaseDesc Test support in CTSY for RMobileCall::GetCurrentHscsdInfo for voice calls
       
  1252 @SYMTestPriority High
       
  1253 @SYMTestActions Invokes RMobileCall::GetCurrentHscsdInfo for voice calls
       
  1254 @SYMTestExpectedResults Pass
       
  1255 @SYMTestType CT
       
  1256 */
       
  1257 void CCTsyDataCallControlFU::TestGetCurrentHscsdInfo0001L()
       
  1258 	{
       
  1259 
       
  1260 	OpenEtelServerL(EUseExtendedError);
       
  1261 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1262 	OpenPhoneL();
       
  1263 
       
  1264 	RLine line;
       
  1265 	RMobileCall call;
       
  1266 
       
  1267 	RMobileCall::TMobileCallHscsdInfoV1 info;
       
  1268 	RMobileCall::TMobileCallHscsdInfoV1Pckg infoPckg(info);
       
  1269 
       
  1270 	//-------------------------------------------------------------------------
       
  1271 	// TEST: failure to dispatch request to CTSY
       
  1272 	// because RMobileCall::GetCurrentHscsdInfo is not supported for voice calls
       
  1273  	//-------------------------------------------------------------------------
       
  1274 
       
  1275 	OpenLineLC(line, KMmTsyVoice1LineName);
       
  1276 	OpenNewCallLC(line, call);
       
  1277 	
       
  1278 	TInt res = call.GetCurrentHscsdInfo(infoPckg);
       
  1279 	ASSERT_EQUALS(KErrNotSupported, res)
       
  1280 	
       
  1281 	CleanupStack::PopAndDestroy(2); // call, line
       
  1282 
       
  1283 	// same test for voice call from auxiliary voice line
       
  1284 	OpenLineLC(line, KMmTsyVoice2LineName);
       
  1285 	OpenNewCallLC(line, call);
       
  1286 	
       
  1287 	res = call.GetCurrentHscsdInfo(infoPckg);
       
  1288 	ASSERT_EQUALS(KErrNotSupported, res)
       
  1289 	
       
  1290 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
  1291 	
       
  1292 	}
       
  1293 
       
  1294 /**
       
  1295 @SYMTestCaseID BA-CTSY-DATC-CGCHI-0006
       
  1296 @SYMComponent  telephony_ctsy
       
  1297 @SYMTestCaseDesc Test support in CTSY for RMobileCall::GetCurrentHscsdInfo for data calls
       
  1298 @SYMTestPriority High
       
  1299 @SYMTestActions Invokes RMobileCall::GetCurrentHscsdInfo for data calls
       
  1300 @SYMTestExpectedResults Pass
       
  1301 @SYMTestType CT
       
  1302 */
       
  1303 void CCTsyDataCallControlFU::TestGetCurrentHscsdInfo0006L()
       
  1304 	{
       
  1305 
       
  1306 	OpenEtelServerL(EUseExtendedError);
       
  1307 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1308 	OpenPhoneL();
       
  1309 
       
  1310 	RBuf8 data;
       
  1311 	CleanupClosePushL(data);
       
  1312 
       
  1313 	RLine line;
       
  1314 	RMobileCall call;
       
  1315 	OpenLineLC(line, KMmTsyDataLineName);
       
  1316 	OpenNewCallLC(line, call);
       
  1317 
       
  1318  	//-------------------------------------------------------------------------
       
  1319 	// TEST: failure to dispatch request to CTSY
       
  1320 	// when dial request is pending
       
  1321  	//-------------------------------------------------------------------------
       
  1322 
       
  1323 	// create dial request
       
  1324 	RMobileCall::TMobileCallParamsV1 callParams;
       
  1325     callParams.iInterval = 4;
       
  1326     callParams.iCug.iCugIndex = 0xFFFF;
       
  1327     
       
  1328 	RMobileCall::TMobileCallInfoV8 callInfo;
       
  1329 	_LIT(KPhoneNumber, "101632960000");   	
       
  1330 	callInfo.iDialledParty.iTelNumber.Copy(KPhoneNumber);
       
  1331 	callInfo.iService = RMobilePhone::ECircuitDataService;
       
  1332 	callInfo.iValid = RMobileCall::KCallDialledParty | RMobileCall::KCallAlternating;
       
  1333 
       
  1334 	TMockLtsyCallData2<RMobileCall::TMobileCallParamsV1, RMobileCall::TMobileCallInfoV8> 
       
  1335 		expDialData(0, RMobilePhone::ECircuitDataService, callParams, callInfo);
       
  1336 
       
  1337 	data.Close();
       
  1338 	expDialData.SerialiseL(data);
       
  1339 	iMockLTSY.ExpectL(EEtelCallDial, data);
       
  1340 	TRequestStatus requestStatus;
       
  1341 	TPckg<RMobileCall::TMobileCallParamsV1> callParamsPckg(callParams);
       
  1342 	call.Dial(requestStatus, callParamsPckg, KPhoneNumber);
       
  1343 
       
  1344 	// test
       
  1345 	RMobileCall::TMobileCallHscsdInfoV8 resInfo;
       
  1346 	RMobileCall::TMobileCallHscsdInfoV8Pckg resInfoPckg(resInfo);
       
  1347 	TInt res = call.GetCurrentHscsdInfo(resInfoPckg);
       
  1348 	ASSERT_EQUALS(KErrEtelCallNotActive, res);
       
  1349 	ASSERT_EQUALS(RMobileCall::EAiurBpsUnspecified, resInfo.iAiur);
       
  1350 	ASSERT_EQUALS(0, resInfo.iRxTimeSlots);
       
  1351 	ASSERT_EQUALS(0, resInfo.iTxTimeSlots);
       
  1352 	ASSERT_EQUALS(RMobileCall::ETchCodingUnspecified, resInfo.iCodings);
       
  1353 	ASSERT_TRUE(0 ==  resInfo.iAlphaId.Length());
       
  1354 	ASSERT_TRUE(0 ==  resInfo.iSubAddress.Length());
       
  1355 	AssertMockLtsyStatusL();
       
  1356 
       
  1357 	// complete dial request
       
  1358 	TRequestStatus mockLtsyStatus;
       
  1359 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  1360 	CallGetMobileCallInfoL(1, RMobilePhone::ECircuitDataService, KPhoneNumber);
       
  1361 	User::WaitForRequest(mockLtsyStatus);
       
  1362 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int())
       
  1363 
       
  1364 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  1365 	TMockLtsyCallData0 completeDialData(1, RMobilePhone::ECircuitDataService);
       
  1366 	data.Close();
       
  1367 	completeDialData.SerialiseL(data);
       
  1368 	iMockLTSY.CompleteL(EEtelCallDial, KErrNone, data);
       
  1369 	User::WaitForRequest(mockLtsyStatus);
       
  1370 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int())
       
  1371 
       
  1372 	User::WaitForRequest(requestStatus); // dial request completed
       
  1373 	ASSERT_EQUALS(KErrNone, requestStatus.Int());
       
  1374 	AssertMockLtsyStatusL();
       
  1375 
       
  1376 	CleanupStack::PopAndDestroy(&call);
       
  1377 
       
  1378  	//-------------------------------------------------------------------------
       
  1379 	// TEST: failure to dispatch request to CTSY
       
  1380 	// when info is not ready
       
  1381  	//-------------------------------------------------------------------------
       
  1382 
       
  1383 	OpenNewCallLC(line, call);
       
  1384 	DialL(call, 1, RMobilePhone::ECircuitDataService);
       
  1385 	
       
  1386 	res = call.GetCurrentHscsdInfo(resInfoPckg);
       
  1387 	ASSERT_EQUALS(KErrNotReady, res)
       
  1388 	AssertMockLtsyStatusL();
       
  1389 
       
  1390  	//-------------------------------------------------------------------------
       
  1391 	// TEST C: Successful completion request of
       
  1392 	// RMobileCall::GetCurrentHscsdInfo.
       
  1393  	//-------------------------------------------------------------------------
       
  1394 
       
  1395     RMobileCall::TMobileCallHscsdInfoV8 hscsdInfo;
       
  1396       
       
  1397     hscsdInfo.iAiur = RMobileCall::EAiurBps38400;
       
  1398     hscsdInfo.iRxTimeSlots = 2;
       
  1399     hscsdInfo.iTxTimeSlots = 2;
       
  1400     hscsdInfo.iCodings = RMobileCall::ETchCoding320;
       
  1401     hscsdInfo.iAlphaId.Copy(_L("Alpha Id")); 
       
  1402     hscsdInfo.iSubAddress.Copy(_L("An unknown SubAddress")); 
       
  1403     hscsdInfo.iCallParamOrigin = RMobileCall::EOriginatorSIM ;
       
  1404        
       
  1405     RMobileCall::TMobileCallDataCapsV1 dataCallCaps;
       
  1406     dataCallCaps.iAsymmetryCaps = RMobileCall::KCapsAsymmetryNoPreference;
       
  1407     dataCallCaps.iUserInitUpgrade = EFalse;
       
  1408     dataCallCaps.iCodingCaps = RMobileCall::KCapsAiurCoding144;
       
  1409     dataCallCaps.iRLPVersionCaps = RMobileCall::KCapsRLPSingleLinkVersion1;
       
  1410     dataCallCaps.iHscsdSupport = ETrue;
       
  1411     dataCallCaps.iMaxRxTimeSlots = 2;
       
  1412     dataCallCaps.iSpeedCaps = RMobileCall::KCapsSpeed14400;
       
  1413     dataCallCaps.iMaxTxTimeSlots = 2;
       
  1414     dataCallCaps.iProtocolCaps = RMobileCall::KCapsProtocolV32 | RMobileCall::KCapsPstnMultimedia;
       
  1415     dataCallCaps.iQoSCaps = RMobileCall::KCapsTransparentPreferred;
       
  1416     dataCallCaps.iServiceCaps = RMobileCall::KCapsDataCircuitAsynchronousRDI;
       
  1417     dataCallCaps.iMClass = 1;
       
  1418     dataCallCaps.iTotalRxTxTimeSlots = 4;
       
  1419     dataCallCaps.iV42bisCaps = RMobileCall::KCapsV42bisBothDirections;
       
  1420     
       
  1421     TMockLtsyCallData2<RMobileCall::TMobileCallHscsdInfoV8, RMobileCall::TMobileCallDataCapsV1> hscsdData(1, RMobilePhone::ECircuitDataService, hscsdInfo, dataCallCaps);
       
  1422     data.Close();
       
  1423     hscsdData.SerialiseL(data);
       
  1424 	
       
  1425 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  1426 	iMockLTSY.CompleteL(EMobileCallNotifyHscsdInfoChange, KErrNone, data);
       
  1427 	User::WaitForRequest(mockLtsyStatus);
       
  1428 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int())
       
  1429 	
       
  1430 	RMobileCall::TMobileCallHscsdInfoV8 resInfo8;
       
  1431 	RMobileCall::TMobileCallHscsdInfoV8Pckg resInfoPckg8(resInfo8);
       
  1432 	res = call.GetCurrentHscsdInfo(resInfoPckg8);
       
  1433 	ASSERT_EQUALS(KErrNone, res);
       
  1434 	ASSERT_EQUALS(hscsdInfo.iAiur, resInfo8.iAiur);
       
  1435 	ASSERT_EQUALS(hscsdInfo.iRxTimeSlots, resInfo8.iRxTimeSlots);
       
  1436 	ASSERT_EQUALS(hscsdInfo.iTxTimeSlots, resInfo8.iTxTimeSlots);
       
  1437 	ASSERT_EQUALS(hscsdInfo.iCodings, resInfo8.iCodings);
       
  1438 	ASSERT_EQUALS(hscsdInfo.iCallParamOrigin, resInfo8.iCallParamOrigin); 
       
  1439 	ASSERT_EQUALS(hscsdInfo.iAlphaId, resInfo8.iAlphaId); 
       
  1440 	ASSERT_EQUALS(hscsdInfo.iSubAddress, resInfo8.iSubAddress); 
       
  1441 
       
  1442  	//-------------------------------------------------------------------------
       
  1443 	// TEST: failure to dispatch request to CTSY
       
  1444 	// when Hscsd is not supported
       
  1445  	//-------------------------------------------------------------------------
       
  1446 
       
  1447 	// prepare CTSY (make Hscsd unsupported)
       
  1448     dataCallCaps.iHscsdSupport = EFalse;
       
  1449     data.Close();
       
  1450     hscsdData.SerialiseL(data);
       
  1451 	
       
  1452 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  1453 	iMockLTSY.CompleteL(EMobileCallNotifyHscsdInfoChange, KErrNone, data);
       
  1454 	User::WaitForRequest(mockLtsyStatus);
       
  1455 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int())
       
  1456 	
       
  1457 	// test
       
  1458 	res = call.GetCurrentHscsdInfo(resInfoPckg);
       
  1459 	ASSERT_EQUALS(KErrEtelCallNotActive, res);
       
  1460 	AssertMockLtsyStatusL();
       
  1461 	
       
  1462 	CleanupStack::PopAndDestroy(4, this); // call, line, data, this
       
  1463 	
       
  1464 	}
       
  1465 
       
  1466 /**
       
  1467 @SYMTestCaseID BA-CTSY-DATC-CGCHI-0008
       
  1468 @SYMComponent  telephony_ctsy
       
  1469 @SYMTestCaseDesc Test support in CTSY for RMobileCall::GetCurrentHscsdInfo with bad parameter data for data calls
       
  1470 @SYMTestPriority High
       
  1471 @SYMTestActions Invokes RMobileCall::GetCurrentHscsdInfo with bad parameter data for data calls
       
  1472 @SYMTestExpectedResults Pass
       
  1473 @SYMTestType CT
       
  1474 */
       
  1475 void CCTsyDataCallControlFU::TestGetCurrentHscsdInfo0008L()
       
  1476 	{
       
  1477 
       
  1478 	OpenEtelServerL(EUseExtendedError);
       
  1479 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1480 	OpenPhoneL();
       
  1481 
       
  1482 	RBuf8 data;
       
  1483 	CleanupClosePushL(data);
       
  1484 
       
  1485 	RLine line;
       
  1486 	RMobileCall call;
       
  1487 	OpenLineLC(line, KMmTsyDataLineName);
       
  1488 	OpenNewCallLC(line, call);
       
  1489 	DialL(call, 1, RMobilePhone::ECircuitDataService);
       
  1490 	
       
  1491 	// prepare CTSY (make info ready)
       
  1492 	RMobileCall::TMobileCallHscsdInfoV1 hscsdInfo;
       
  1493     hscsdInfo.iAiur = RMobileCall::EAiurBps38400;
       
  1494     hscsdInfo.iRxTimeSlots = 2;
       
  1495     hscsdInfo.iTxTimeSlots = 2;
       
  1496     hscsdInfo.iCodings = RMobileCall::ETchCoding320;
       
  1497     
       
  1498     RMobileCall::TMobileCallDataCapsV1 dataCallCaps;
       
  1499     dataCallCaps.iAsymmetryCaps = RMobileCall::KCapsAsymmetryNoPreference;
       
  1500     dataCallCaps.iUserInitUpgrade = EFalse;
       
  1501     dataCallCaps.iCodingCaps = RMobileCall::KCapsAiurCoding144;
       
  1502     dataCallCaps.iRLPVersionCaps = RMobileCall::KCapsRLPSingleLinkVersion1;
       
  1503     dataCallCaps.iHscsdSupport = ETrue;
       
  1504     dataCallCaps.iMaxRxTimeSlots = 2;
       
  1505     dataCallCaps.iSpeedCaps = RMobileCall::KCapsSpeed14400;
       
  1506     dataCallCaps.iMaxTxTimeSlots = 2;
       
  1507     dataCallCaps.iProtocolCaps = RMobileCall::KCapsProtocolV32 | RMobileCall::KCapsPstnMultimedia;
       
  1508     dataCallCaps.iQoSCaps = RMobileCall::KCapsTransparentPreferred;
       
  1509     dataCallCaps.iServiceCaps = RMobileCall::KCapsDataCircuitAsynchronousRDI;
       
  1510     dataCallCaps.iMClass = 1;
       
  1511     dataCallCaps.iTotalRxTxTimeSlots = 4;
       
  1512     dataCallCaps.iV42bisCaps = RMobileCall::KCapsV42bisBothDirections;
       
  1513     
       
  1514     TMockLtsyCallData2<RMobileCall::TMobileCallHscsdInfoV1, RMobileCall::TMobileCallDataCapsV1> hscsdData(1, RMobilePhone::ECircuitDataService, hscsdInfo, dataCallCaps);
       
  1515     data.Close();
       
  1516     hscsdData.SerialiseL(data);
       
  1517 	
       
  1518 	TRequestStatus mockLtsyStatus;
       
  1519 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  1520 	iMockLTSY.CompleteL(EMobileCallNotifyHscsdInfoChange, KErrNone, data);
       
  1521 	User::WaitForRequest(mockLtsyStatus);
       
  1522 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int())
       
  1523 	
       
  1524 	//-------------------------------------------------------------------------
       
  1525 	// Test B: Test passing wrong descriptor size to parameter in
       
  1526 	// RMobileCall::GetCurrentHscsdInfo
       
  1527  	//-------------------------------------------------------------------------
       
  1528 
       
  1529 	TBuf8<1> info(KNullDesC8);
       
  1530 	TInt res = call.GetCurrentHscsdInfo(info);
       
  1531 	
       
  1532 	ASSERT_EQUALS(KErrArgument, res)
       
  1533 	
       
  1534 	CleanupStack::PopAndDestroy(4, this); // call, line, data, this
       
  1535 	
       
  1536 	}
       
  1537 
       
  1538 
       
  1539 
       
  1540 /**
       
  1541 @SYMTestCaseID BA-CTSY-DATC-CGCHI-0011
       
  1542 @SYMComponent  telephony_ctsy
       
  1543 @SYMTestCaseDesc Test support in CTSY for RMobileCall::GetCurrentHscsdInfo for fax calls
       
  1544 @SYMTestPriority High
       
  1545 @SYMTestActions Invokes RMobileCall::GetCurrentHscsdInfo for fax calls
       
  1546 @SYMTestExpectedResults Pass
       
  1547 @SYMTestType CT
       
  1548 */
       
  1549 void CCTsyDataCallControlFU::TestGetCurrentHscsdInfo0011L()
       
  1550 	{
       
  1551 
       
  1552 	OpenEtelServerL(EUseExtendedError);
       
  1553 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1554 	OpenPhoneL();
       
  1555 
       
  1556 	//-------------------------------------------------------------------------
       
  1557 	// TEST: failure to dispatch request to CTSY
       
  1558 	// because RMobileCall::GetCurrentHscsdInfo is not supported for fax calls
       
  1559  	//-------------------------------------------------------------------------
       
  1560 
       
  1561 	RLine line;
       
  1562 	RMobileCall call;
       
  1563 
       
  1564 	OpenLineLC(line, KMmTsyFaxLineName);
       
  1565 	OpenNewCallLC(line, call);
       
  1566 
       
  1567 	RMobileCall::TMobileCallHscsdInfoV1 info;
       
  1568 	RMobileCall::TMobileCallHscsdInfoV1Pckg infoPckg(info);
       
  1569 
       
  1570 	TInt res = call.GetCurrentHscsdInfo(infoPckg);
       
  1571 	ASSERT_EQUALS(KErrNotSupported, res)
       
  1572 
       
  1573 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
  1574 	
       
  1575 	}
       
  1576 
       
  1577 
       
  1578 /**
       
  1579 @SYMTestCaseID BA-CTSY-DATC-CNVF-0001
       
  1580 @SYMComponent  telephony_ctsy
       
  1581 @SYMTestCaseDesc Test support in CTSY for RMobileCall::NotifyVoiceFallback for voice calls
       
  1582 @SYMTestPriority High
       
  1583 @SYMTestActions Invokes RMobileCall::NotifyVoiceFallback for voice calls
       
  1584 @SYMTestExpectedResults Pass
       
  1585 @SYMTestType CT
       
  1586 */
       
  1587 void CCTsyDataCallControlFU::TestNotifyVoiceFallback0001L()
       
  1588 	{
       
  1589 
       
  1590 	OpenEtelServerL(EUseExtendedError);
       
  1591 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1592 	OpenPhoneL();
       
  1593 
       
  1594  	//-------------------------------------------------------------------------
       
  1595 	// TEST: failure to dispatch request to CTSY
       
  1596 	// because RMobileCall::NotifyVoiceFallback is not supported
       
  1597  	//-------------------------------------------------------------------------
       
  1598 
       
  1599 	RLine line;
       
  1600 	RMobileCall call;
       
  1601 	
       
  1602 	OpenLineLC(line, KMmTsyVoice1LineName);
       
  1603 	OpenNewCallLC(line, call);
       
  1604 	DialL(call, 1, RMobilePhone::EVoiceService);
       
  1605 	
       
  1606 	TRequestStatus reqStatus;
       
  1607 	TName name;
       
  1608 	call.NotifyVoiceFallback(reqStatus, name);
       
  1609 	User::WaitForRequest(reqStatus);
       
  1610 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
  1611 
       
  1612 	// same test for voice call from auxiliary voice line
       
  1613 	RLine line2;
       
  1614 	RMobileCall call2;
       
  1615 
       
  1616 	OpenLineLC(line2, KMmTsyVoice2LineName);
       
  1617 	OpenNewCallLC(line2, call2);
       
  1618 	DialL(call2, 2, RMobilePhone::EAuxVoiceService);
       
  1619 	
       
  1620 	call2.NotifyVoiceFallback(reqStatus, name);
       
  1621 	User::WaitForRequest(reqStatus);
       
  1622 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
  1623 	
       
  1624 	CleanupStack::PopAndDestroy(5, this); // call2, line2, call, line, this
       
  1625 	
       
  1626 	}
       
  1627 
       
  1628 
       
  1629 /**
       
  1630 @SYMTestCaseID BA-CTSY-DATC-CNVF-0006
       
  1631 @SYMComponent  telephony_ctsy
       
  1632 @SYMTestCaseDesc Test support in CTSY for RMobileCall::NotifyVoiceFallback for data calls
       
  1633 @SYMTestPriority High
       
  1634 @SYMTestActions Invokes RMobileCall::NotifyVoiceFallback for data calls
       
  1635 @SYMTestExpectedResults Pass
       
  1636 @SYMTestType CT
       
  1637 */
       
  1638 void CCTsyDataCallControlFU::TestNotifyVoiceFallback0006L()
       
  1639 	{
       
  1640 
       
  1641 	OpenEtelServerL(EUseExtendedError);
       
  1642 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1643 	OpenPhoneL();
       
  1644 
       
  1645  	//-------------------------------------------------------------------------
       
  1646 	// TEST: failure to dispatch request to CTSY
       
  1647 	// because RMobileCall::NotifyVoiceFallback is not supported
       
  1648  	//-------------------------------------------------------------------------
       
  1649 
       
  1650 	RLine line;
       
  1651 	RMobileCall call;
       
  1652 	
       
  1653 	OpenLineLC(line, KMmTsyDataLineName);
       
  1654 	OpenNewCallLC(line, call);
       
  1655 	DialL(call, 1, RMobilePhone::ECircuitDataService);
       
  1656 	
       
  1657 	TRequestStatus reqStatus;
       
  1658 	TName name;
       
  1659 	call.NotifyVoiceFallback(reqStatus, name);
       
  1660 	User::WaitForRequest(reqStatus);
       
  1661 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
  1662 	
       
  1663 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
  1664 	
       
  1665 	}
       
  1666 
       
  1667 
       
  1668 /**
       
  1669 @SYMTestCaseID BA-CTSY-DATC-CNVF-00011
       
  1670 @SYMComponent  telephony_ctsy
       
  1671 @SYMTestCaseDesc Test support in CTSY for RMobileCall::NotifyVoiceFallback for fax calls
       
  1672 @SYMTestPriority High
       
  1673 @SYMTestActions Invokes RMobileCall::NotifyVoiceFallback for fax calls
       
  1674 @SYMTestExpectedResults Pass
       
  1675 @SYMTestType CT
       
  1676 */
       
  1677 void CCTsyDataCallControlFU::TestNotifyVoiceFallback00011L()
       
  1678 	{
       
  1679 
       
  1680 	OpenEtelServerL(EUseExtendedError);
       
  1681 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1682 	OpenPhoneL();
       
  1683 
       
  1684  	//-------------------------------------------------------------------------
       
  1685 	// TEST: failure to dispatch request to CTSY
       
  1686 	// because RMobileCall::NotifyVoiceFallback is not supported
       
  1687  	//-------------------------------------------------------------------------
       
  1688 
       
  1689 	RLine line;
       
  1690 	RMobileCall call;
       
  1691 	
       
  1692 	OpenLineLC(line, KMmTsyFaxLineName);
       
  1693 
       
  1694 	TName name;
       
  1695 	CreateIncomingCallL(line, 1, KNullDesC, name, RMobilePhone::EFaxService, RMobileCall::EStatusConnected);
       
  1696 	TInt res = call.OpenExistingCall(line, name);
       
  1697 	ASSERT_EQUALS(KErrNone, res);
       
  1698 	CleanupClosePushL(call);
       
  1699 	
       
  1700 	TRequestStatus reqStatus;
       
  1701 	call.NotifyVoiceFallback(reqStatus, name);
       
  1702 	User::WaitForRequest(reqStatus);
       
  1703 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
  1704 	
       
  1705 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
  1706 	
       
  1707 	}
       
  1708 
       
  1709 
       
  1710 /**
       
  1711 @SYMTestCaseID BA-CTSY-DATC-CGMDCC-0001
       
  1712 @SYMComponent  telephony_ctsy
       
  1713 @SYMTestCaseDesc Test support in CTSY for RMobileCall::GetMobileDataCallCaps for voice calls
       
  1714 @SYMTestPriority High
       
  1715 @SYMTestActions Invokes RMobileCall::GetMobileDataCallCaps for voice calls
       
  1716 @SYMTestExpectedResults Pass
       
  1717 @SYMTestType CT
       
  1718 */
       
  1719 void CCTsyDataCallControlFU::TestGetMobileDataCallCaps0001L()
       
  1720 	{
       
  1721 
       
  1722 	OpenEtelServerL(EUseExtendedError);
       
  1723 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1724 	OpenPhoneL();
       
  1725 
       
  1726  	//-------------------------------------------------------------------------
       
  1727 	// TEST: failure to dispatch request to CTSY
       
  1728 	// because RMobileCall::GetMobileDataCallCaps is not supported for voice calls
       
  1729  	//-------------------------------------------------------------------------
       
  1730 
       
  1731 	RLine line;
       
  1732 	RMobileCall call;
       
  1733 	
       
  1734 	OpenLineLC(line, KMmTsyVoice1LineName);
       
  1735 	OpenNewCallLC(line, call);
       
  1736 
       
  1737 	RMobileCall::TMobileCallDataCapsV1 dataCallCaps;
       
  1738 	RMobileCall::TMobileCallDataCapsV1Pckg dataCallCapsPckg(dataCallCaps);
       
  1739 
       
  1740 	TInt res = call.GetMobileDataCallCaps(dataCallCapsPckg);
       
  1741 	ASSERT_EQUALS(KErrNotSupported, res)
       
  1742 	AssertMockLtsyStatusL();
       
  1743 
       
  1744 	// same test for voice call from auxiliary voice line
       
  1745 	RLine line2;
       
  1746 	RMobileCall call2;
       
  1747 
       
  1748 	OpenLineLC(line2, KMmTsyVoice2LineName);
       
  1749 	OpenNewCallLC(line2, call2);
       
  1750 
       
  1751 	res = call2.GetMobileDataCallCaps(dataCallCapsPckg);
       
  1752 	ASSERT_EQUALS(KErrNotSupported, res)
       
  1753 
       
  1754 	CleanupStack::PopAndDestroy(5, this); // call2, line2, call, line, this
       
  1755 	
       
  1756 	}
       
  1757 
       
  1758 
       
  1759 /**
       
  1760 @SYMTestCaseID BA-CTSY-DATC-CGMDCC-0006
       
  1761 @SYMComponent  telephony_ctsy
       
  1762 @SYMTestCaseDesc Test support in CTSY for RMobileCall::GetMobileDataCallCaps for data calls
       
  1763 @SYMTestPriority High
       
  1764 @SYMTestActions Invokes RMobileCall::GetMobileDataCallCaps for data calls
       
  1765 @SYMTestExpectedResults Pass
       
  1766 @SYMTestType CT
       
  1767 */
       
  1768 void CCTsyDataCallControlFU::TestGetMobileDataCallCaps0006L()
       
  1769 	{
       
  1770 
       
  1771 	OpenEtelServerL(EUseExtendedError);
       
  1772 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1773 	OpenPhoneL();
       
  1774 
       
  1775 	RBuf8 data;
       
  1776 	CleanupClosePushL(data);
       
  1777 
       
  1778 	RLine line;
       
  1779 	RMobileCall call;
       
  1780 	
       
  1781 	OpenLineLC(line, KMmTsyDataLineName);
       
  1782 	OpenNewCallLC(line, call);
       
  1783 	
       
  1784  	//-------------------------------------------------------------------------
       
  1785 	// TEST C: Successful completion request of
       
  1786 	// RMobileCall::GetMobileDataCallCaps.
       
  1787  	//-------------------------------------------------------------------------
       
  1788 
       
  1789 	RMobileCall::TMobileCallDataCapsV1 dataCallCaps;
       
  1790 	RMobileCall::TMobileCallDataCapsV1Pckg dataCallCapsPckg(dataCallCaps);
       
  1791 	TInt res = call.GetMobileDataCallCaps(dataCallCapsPckg);
       
  1792 	ASSERT_EQUALS(KErrNone, res)
       
  1793 	
       
  1794 	// check results
       
  1795 	TBool usingFeatureManager(EFalse);
       
  1796 	RFeatureControl featureControl;
       
  1797 	CleanupClosePushL(featureControl);
       
  1798 	res = featureControl.Open();
       
  1799 	if ( KErrNone == res )
       
  1800 		{
       
  1801 		usingFeatureManager = ETrue;
       
  1802 		}
       
  1803     // additional flags for videotelephony
       
  1804 	if ( (usingFeatureManager) && (featureControl.FeatureSupported(NFeature::KCsVideoTelephony) == KFeatureSupported) )
       
  1805 		{
       
  1806 		ASSERT_EQUALS((TUint32)(KMultimodeTsyDataSpeedCaps | KMultimodeTsyDataSpeedCapsVT), dataCallCaps.iSpeedCaps)
       
  1807 		ASSERT_EQUALS((TUint32)(KMultimodeTsyDataProtocolCaps | KMultimodeTsyDataProtocolCapsVT), dataCallCaps.iProtocolCaps)
       
  1808 		ASSERT_EQUALS((TUint32)(KMultimodeTsyDataServiceCaps | KMultimodeTsyDataServiceCapsVT), dataCallCaps.iServiceCaps)
       
  1809 		}
       
  1810 	else
       
  1811 		{
       
  1812 		ASSERT_EQUALS((TUint32)KMultimodeTsyDataSpeedCaps, dataCallCaps.iSpeedCaps)
       
  1813 		ASSERT_EQUALS((TUint32)KMultimodeTsyDataProtocolCaps, dataCallCaps.iProtocolCaps)
       
  1814 		ASSERT_EQUALS((TUint32)KMultimodeTsyDataServiceCaps, dataCallCaps.iServiceCaps)
       
  1815 		}
       
  1816 	ASSERT_EQUALS((TUint32)KMultimodeTsyDataQoSCaps, dataCallCaps.iQoSCaps)
       
  1817 	ASSERT_EQUALS((TBool)KMultimodeTsyDataHscsdSupport, dataCallCaps.iHscsdSupport)
       
  1818 	ASSERT_EQUALS((TInt)KMultimodeTsyDataMClassDefValue, dataCallCaps.iMClass)
       
  1819 	ASSERT_EQUALS((TInt)KMultimodeTsyDataMaxRxTSDefValue, dataCallCaps.iMaxRxTimeSlots)
       
  1820 	ASSERT_EQUALS((TInt)KMultimodeTsyDataMaxTxTSDefValue, dataCallCaps.iMaxTxTimeSlots)
       
  1821 	ASSERT_EQUALS((TInt)KMultimodeTsyDataTotalRxTxTSDefValue, dataCallCaps.iTotalRxTxTimeSlots)
       
  1822 	ASSERT_EQUALS((TUint32)KMultimodeTsyDataTchCodingsCaps, dataCallCaps.iCodingCaps)
       
  1823 	ASSERT_EQUALS((TUint32)KMultimodeTsyDataAsymmetryCaps, dataCallCaps.iAsymmetryCaps)
       
  1824 	ASSERT_EQUALS((TBool)KMultimodeTsyDataUserInitUpgrade, dataCallCaps.iUserInitUpgrade)
       
  1825 	ASSERT_EQUALS((TUint32)KMultimodeTsyDataRLPVersionCaps, dataCallCaps.iRLPVersionCaps)
       
  1826 	ASSERT_EQUALS((TUint32)KMultimodeTsyDataV42bisCaps, dataCallCaps.iV42bisCaps)
       
  1827 	CleanupStack::PopAndDestroy(&featureControl);
       
  1828 	AssertMockLtsyStatusL();
       
  1829 
       
  1830 	// change data in CTSY
       
  1831 
       
  1832 	//This is needed for assign a callId to Call for setting new callDataCaps values.
       
  1833 
       
  1834 	DialL(call, 1, RMobilePhone::ECircuitDataService);
       
  1835 	
       
  1836 	RMobileCall::TMobileCallDataCapsV1 newCaps;
       
  1837     newCaps.iAsymmetryCaps = RMobileCall::KCapsAsymmetryNoPreference;
       
  1838     newCaps.iUserInitUpgrade = EFalse;
       
  1839     newCaps.iCodingCaps = RMobileCall::KCapsAiurCoding144;
       
  1840     newCaps.iRLPVersionCaps = RMobileCall::KCapsRLPSingleLinkVersion1;
       
  1841     newCaps.iHscsdSupport = ETrue;
       
  1842     newCaps.iMaxRxTimeSlots = 2;
       
  1843     newCaps.iSpeedCaps = RMobileCall::KCapsSpeed14400;
       
  1844     newCaps.iMaxTxTimeSlots = 2;
       
  1845     newCaps.iProtocolCaps = RMobileCall::KCapsProtocolV32 | RMobileCall::KCapsPstnMultimedia;
       
  1846     newCaps.iQoSCaps = RMobileCall::KCapsTransparentPreferred;
       
  1847     newCaps.iServiceCaps = RMobileCall::KCapsDataCircuitAsynchronousRDI;
       
  1848     newCaps.iMClass = 1;
       
  1849     newCaps.iTotalRxTxTimeSlots = 4;
       
  1850     newCaps.iV42bisCaps = RMobileCall::KCapsV42bisBothDirections;
       
  1851     
       
  1852 	RMobilePhone::TMobileService mobileService = RMobilePhone::ECircuitDataService;
       
  1853     TMockLtsyCallData1<RMobileCall::TMobileCallDataCapsV1> newCapsData(1, mobileService, newCaps);
       
  1854     newCapsData.SerialiseL(data);
       
  1855 	
       
  1856 	TRequestStatus mockLtsyStatus;
       
  1857 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  1858 	iMockLTSY.CompleteL(EMobileCallNotifyMobileDataCallCapsChange, KErrNone, data);
       
  1859 	User::WaitForRequest(mockLtsyStatus);
       
  1860 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int())
       
  1861 	
       
  1862 	// test again
       
  1863 	res = call.GetMobileDataCallCaps(dataCallCapsPckg);
       
  1864 	ASSERT_EQUALS(KErrNone, res)
       
  1865 
       
  1866 	ASSERT_EQUALS(newCaps.iSpeedCaps, dataCallCaps.iSpeedCaps)
       
  1867 	ASSERT_EQUALS(newCaps.iProtocolCaps, dataCallCaps.iProtocolCaps)
       
  1868 	ASSERT_EQUALS(newCaps.iServiceCaps, dataCallCaps.iServiceCaps)
       
  1869 	ASSERT_EQUALS(newCaps.iQoSCaps, dataCallCaps.iQoSCaps)
       
  1870 	ASSERT_EQUALS(newCaps.iHscsdSupport, dataCallCaps.iHscsdSupport)
       
  1871 	ASSERT_EQUALS(newCaps.iMClass, dataCallCaps.iMClass)
       
  1872 	ASSERT_EQUALS(newCaps.iMaxRxTimeSlots, dataCallCaps.iMaxRxTimeSlots)
       
  1873 	ASSERT_EQUALS(newCaps.iMaxTxTimeSlots, dataCallCaps.iMaxTxTimeSlots)
       
  1874 	ASSERT_EQUALS(newCaps.iTotalRxTxTimeSlots, dataCallCaps.iTotalRxTxTimeSlots)
       
  1875 	ASSERT_EQUALS(newCaps.iCodingCaps, dataCallCaps.iCodingCaps)
       
  1876 	ASSERT_EQUALS(newCaps.iAsymmetryCaps, dataCallCaps.iAsymmetryCaps)
       
  1877 	ASSERT_EQUALS(newCaps.iUserInitUpgrade, dataCallCaps.iUserInitUpgrade)
       
  1878 	ASSERT_EQUALS(newCaps.iRLPVersionCaps, dataCallCaps.iRLPVersionCaps)
       
  1879 	ASSERT_EQUALS(newCaps.iV42bisCaps, dataCallCaps.iV42bisCaps)
       
  1880 	
       
  1881 	AssertMockLtsyStatusL();
       
  1882 	
       
  1883 	CleanupStack::PopAndDestroy(4, this); // call, line, data, this
       
  1884 		
       
  1885 	}
       
  1886 
       
  1887 
       
  1888 /**
       
  1889 @SYMTestCaseID BA-CTSY-DATC-CGMDCC-0008
       
  1890 @SYMComponent  telephony_ctsy
       
  1891 @SYMTestCaseDesc Test support in CTSY for RMobileCall::GetMobileDataCallCaps with bad parameter data for data calls
       
  1892 @SYMTestPriority High
       
  1893 @SYMTestActions Invokes RMobileCall::GetMobileDataCallCaps with bad parameter data for data calls
       
  1894 @SYMTestExpectedResults Pass
       
  1895 @SYMTestType CT
       
  1896 */
       
  1897 void CCTsyDataCallControlFU::TestGetMobileDataCallCaps0008L()
       
  1898 	{
       
  1899 
       
  1900 	OpenEtelServerL(EUseExtendedError);
       
  1901 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1902 	OpenPhoneL();
       
  1903 
       
  1904 	RLine line;
       
  1905 	RMobileCall call;
       
  1906 	
       
  1907 	OpenLineLC(line, KMmTsyDataLineName);
       
  1908 	OpenNewCallLC(line, call);
       
  1909 
       
  1910 	//-------------------------------------------------------------------------
       
  1911 	// Test B: Test passing wrong descriptor size to parameter in
       
  1912 	// RMobileCall::GetMobileDataCallCaps
       
  1913  	//-------------------------------------------------------------------------
       
  1914 	
       
  1915 	TBuf8<1> caps(KNullDesC8);
       
  1916 	TInt res = call.GetMobileDataCallCaps(caps);
       
  1917 	ASSERT_EQUALS(KErrArgument, res);
       
  1918 	
       
  1919 	//-------------------------------------------------------------------------
       
  1920 	// Test B: Test passing wrong parameter to
       
  1921 	// RMobileCall::GetMobileDataCallCaps method
       
  1922  	//-------------------------------------------------------------------------
       
  1923 	
       
  1924 	const TInt bufSize = sizeof ( RMobileCall::TMobileCallDataCapsV1 );
       
  1925 	TBuf8<bufSize> caps2;
       
  1926 	caps2.FillZ();      //Fill buffer with zeros
       
  1927 	res = call.GetMobileDataCallCaps(caps2);		
       
  1928 	ASSERT_EQUALS(KErrArgument, res);
       
  1929 
       
  1930 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
  1931 
       
  1932 	}
       
  1933 
       
  1934 /**
       
  1935 @SYMTestCaseID BA-CTSY-DATC-CGMDCC-00011
       
  1936 @SYMComponent  telephony_ctsy
       
  1937 @SYMTestCaseDesc Test support in CTSY for RMobileCall::GetMobileDataCallCaps for fax calls
       
  1938 @SYMTestPriority High
       
  1939 @SYMTestActions Invokes RMobileCall::GetMobileDataCallCaps for fax calls
       
  1940 @SYMTestExpectedResults Pass
       
  1941 @SYMTestType CT
       
  1942 */
       
  1943 void CCTsyDataCallControlFU::TestGetMobileDataCallCaps00011L()
       
  1944 	{
       
  1945 
       
  1946 	OpenEtelServerL(EUseExtendedError);
       
  1947 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1948 	OpenPhoneL();
       
  1949 
       
  1950 	RLine line;
       
  1951 	RMobileCall call;
       
  1952 	
       
  1953 	OpenLineLC(line, KMmTsyFaxLineName);
       
  1954 	OpenNewCallLC(line, call);
       
  1955 	
       
  1956 	RMobileCall::TMobileCallDataCapsV1 dataCallCaps;
       
  1957 	RMobileCall::TMobileCallDataCapsV1Pckg dataCallCapsPckg(dataCallCaps);
       
  1958 
       
  1959 	//-------------------------------------------------------------------------
       
  1960 	// TEST: failure to dispatch request to CTSY
       
  1961 	// because RMobileCall::GetMobileDataCallCaps is not supported for fax calls
       
  1962  	//-------------------------------------------------------------------------
       
  1963 
       
  1964 	TInt res = call.GetMobileDataCallCaps(dataCallCapsPckg);
       
  1965 	ASSERT_EQUALS(KErrNotSupported, res)
       
  1966 	
       
  1967 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
  1968 	
       
  1969 	}
       
  1970 
       
  1971 
       
  1972 
       
  1973 /**
       
  1974 @SYMTestCaseID BA-CTSY-DATC-CNHIC-0001
       
  1975 @SYMComponent  telephony_ctsy
       
  1976 @SYMTestCaseDesc Test support in CTSY for RMobileCall::NotifyHscsdInfoChange for voice calls
       
  1977 @SYMTestPriority High
       
  1978 @SYMTestActions Invokes RMobileCall::NotifyHscsdInfoChange for voice calls
       
  1979 @SYMTestExpectedResults Pass
       
  1980 @SYMTestType CT
       
  1981 */
       
  1982 void CCTsyDataCallControlFU::TestNotifyHscsdInfoChange0001L()
       
  1983 	{
       
  1984 
       
  1985 	OpenEtelServerL(EUseExtendedError);
       
  1986 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1987 	OpenPhoneL();
       
  1988 
       
  1989 	RLine line;
       
  1990 	RMobileCall call;
       
  1991 	
       
  1992 	//-------------------------------------------------------------------------
       
  1993 	// TEST: failure to dispatch request to CTSY
       
  1994 	// because RMobileCall::NotifyHscsdInfoChange is not supported for voice calls
       
  1995  	//-------------------------------------------------------------------------
       
  1996 
       
  1997 	OpenLineLC(line, KMmTsyVoice1LineName);
       
  1998 	OpenNewCallLC(line, call);
       
  1999 	
       
  2000 	TRequestStatus reqStatus;
       
  2001 	RMobileCall::TMobileCallHscsdInfoV1 info;
       
  2002 	RMobileCall::TMobileCallHscsdInfoV1Pckg infoPckg(info);
       
  2003 	call.NotifyHscsdInfoChange(reqStatus, infoPckg);
       
  2004 	User::WaitForRequest(reqStatus);
       
  2005 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
  2006 
       
  2007 	CleanupStack::PopAndDestroy(2); // call, line
       
  2008 
       
  2009 	// same test for voice call from auxiliary voice line
       
  2010 	OpenLineLC(line, KMmTsyVoice2LineName);
       
  2011 	OpenNewCallLC(line, call);
       
  2012 	
       
  2013 	call.NotifyHscsdInfoChange(reqStatus, infoPckg);
       
  2014 	User::WaitForRequest(reqStatus);
       
  2015 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
  2016 
       
  2017 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
  2018 	
       
  2019 	}
       
  2020 
       
  2021 /**
       
  2022 @SYMTestCaseID BA-CTSY-DATC-CNHIC-0006
       
  2023 @SYMComponent  telephony_ctsy
       
  2024 @SYMTestCaseDesc Test support in CTSY for RMobileCall::NotifyHscsdInfoChange for data calls
       
  2025 @SYMTestPriority High
       
  2026 @SYMTestActions Invokes RMobileCall::NotifyHscsdInfoChange for data calls
       
  2027 @SYMTestExpectedResults Pass
       
  2028 @SYMTestType CT
       
  2029 */
       
  2030 void CCTsyDataCallControlFU::TestNotifyHscsdInfoChange0006L()
       
  2031 	{
       
  2032 
       
  2033 	OpenEtelServerL(EUseExtendedError);
       
  2034 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2035 	OpenPhoneL();
       
  2036 
       
  2037 	RBuf8 data;
       
  2038 	CleanupClosePushL(data);
       
  2039 
       
  2040 	RLine line;
       
  2041 	RMobileCall call;
       
  2042 	
       
  2043 	OpenLineLC(line, KMmTsyDataLineName);
       
  2044 	OpenNewCallLC(line, call);
       
  2045 	DialL(call, 1, RMobilePhone::ECircuitDataService);
       
  2046 	
       
  2047 	TRequestStatus reqStatus;
       
  2048 
       
  2049 	RMobileCall::TMobileCallHscsdInfoV1 info;
       
  2050 	RMobileCall::TMobileCallHscsdInfoV1Pckg infoPckg(info);
       
  2051 	
       
  2052     RMobileCall::TMobileCallHscsdInfoV1 hscsdInfo;
       
  2053     RMobileCall::TMobileCallDataCapsV1 dataCallCaps;
       
  2054 
       
  2055     hscsdInfo.iAiur = RMobileCall::EAiurBps38400;
       
  2056     hscsdInfo.iRxTimeSlots = 2;
       
  2057     hscsdInfo.iTxTimeSlots = 2;
       
  2058     hscsdInfo.iCodings = RMobileCall::ETchCoding320;
       
  2059     
       
  2060     dataCallCaps.iAsymmetryCaps = RMobileCall::KCapsAsymmetryNoPreference;
       
  2061     dataCallCaps.iUserInitUpgrade = EFalse;
       
  2062     dataCallCaps.iCodingCaps = RMobileCall::KCapsAiurCoding144;
       
  2063     dataCallCaps.iRLPVersionCaps = RMobileCall::KCapsRLPSingleLinkVersion1;
       
  2064     dataCallCaps.iHscsdSupport = ETrue; // should be ETrue
       
  2065     dataCallCaps.iMaxRxTimeSlots = 2;
       
  2066     dataCallCaps.iSpeedCaps = RMobileCall::KCapsSpeed14400;
       
  2067     dataCallCaps.iMaxTxTimeSlots = 2;
       
  2068     dataCallCaps.iProtocolCaps = RMobileCall::KCapsProtocolV32 | RMobileCall::KCapsPstnMultimedia;
       
  2069     dataCallCaps.iQoSCaps = RMobileCall::KCapsTransparentPreferred;
       
  2070     dataCallCaps.iServiceCaps = RMobileCall::KCapsDataCircuitAsynchronousRDI;
       
  2071     dataCallCaps.iMClass = 1;
       
  2072     dataCallCaps.iTotalRxTxTimeSlots = 4;
       
  2073     dataCallCaps.iV42bisCaps = RMobileCall::KCapsV42bisBothDirections;
       
  2074     
       
  2075     TMockLtsyCallData2<RMobileCall::TMobileCallHscsdInfoV1, RMobileCall::TMobileCallDataCapsV1> hscsdData(1, RMobilePhone::ECircuitDataService, hscsdInfo, dataCallCaps);
       
  2076     data.Close();
       
  2077     hscsdData.SerialiseL(data);
       
  2078 	
       
  2079  	//-------------------------------------------------------------------------
       
  2080 	// TEST C: Successful completion request of
       
  2081 	// RMobileCall::NotifyHscsdInfoChange.
       
  2082  	//-------------------------------------------------------------------------
       
  2083 
       
  2084 	call.NotifyHscsdInfoChange(reqStatus, infoPckg);
       
  2085 
       
  2086 	TRequestStatus mockLtsyStatus;
       
  2087 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2088 	iMockLTSY.CompleteL(EMobileCallNotifyHscsdInfoChange, KErrNone, data);
       
  2089 	User::WaitForRequest(mockLtsyStatus);
       
  2090 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int())
       
  2091 
       
  2092 	User::WaitForRequest(reqStatus);
       
  2093 	ASSERT_EQUALS(KErrNone, reqStatus.Int())
       
  2094 	
       
  2095 	ASSERT_EQUALS(hscsdInfo.iAiur, info.iAiur)
       
  2096 	ASSERT_EQUALS(hscsdInfo.iRxTimeSlots, info.iRxTimeSlots)
       
  2097 	ASSERT_EQUALS(hscsdInfo.iTxTimeSlots, info.iTxTimeSlots)
       
  2098 	ASSERT_EQUALS(hscsdInfo.iCodings, info.iCodings)
       
  2099 
       
  2100  	//-------------------------------------------------------------------------
       
  2101 	// TEST E: Unsolicited completion of RMobileCall::NotifyHscsdInfoChange
       
  2102 	// from LTSY.
       
  2103  	//-------------------------------------------------------------------------
       
  2104 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2105 	iMockLTSY.CompleteL(EMobileCallNotifyHscsdInfoChange, KErrNone, data);
       
  2106 	User::WaitForRequest(mockLtsyStatus);
       
  2107 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int())
       
  2108 
       
  2109 	AssertMockLtsyStatusL();
       
  2110 	CleanupStack::PopAndDestroy(4, this); // call, line, data, this
       
  2111 	
       
  2112 	}
       
  2113 
       
  2114 
       
  2115 /**
       
  2116 @SYMTestCaseID BA-CTSY-DATC-CNHIC-0007
       
  2117 @SYMComponent  telephony_ctsy
       
  2118 @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileCall::NotifyHscsdInfoChange for data calls
       
  2119 @SYMTestPriority High
       
  2120 @SYMTestActions Invokes cancelling of RMobileCall::NotifyHscsdInfoChange for data calls
       
  2121 @SYMTestExpectedResults Pass
       
  2122 @SYMTestType CT
       
  2123 */
       
  2124 void CCTsyDataCallControlFU::TestNotifyHscsdInfoChange0007L()
       
  2125 	{
       
  2126 
       
  2127 	OpenEtelServerL(EUseExtendedError);
       
  2128 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2129 	OpenPhoneL();
       
  2130 
       
  2131 	RBuf8 data;
       
  2132 	CleanupClosePushL(data);
       
  2133 
       
  2134 	RLine line;
       
  2135 	RMobileCall call;
       
  2136 	
       
  2137 	OpenLineLC(line, KMmTsyDataLineName);
       
  2138 	OpenNewCallLC(line, call);
       
  2139 	DialL(call, 1, RMobilePhone::ECircuitDataService);
       
  2140 	
       
  2141 	TRequestStatus reqStatus;
       
  2142 
       
  2143  	//-------------------------------------------------------------------------
       
  2144 	// Test cancelling of RMobileCall::NotifyHscsdInfoChange
       
  2145  	//-------------------------------------------------------------------------
       
  2146  	
       
  2147 	RMobileCall::TMobileCallHscsdInfoV1 info;
       
  2148 	RMobileCall::TMobileCallHscsdInfoV1Pckg infoPckg(info);
       
  2149 	call.NotifyHscsdInfoChange(reqStatus, infoPckg);
       
  2150 
       
  2151 	call.CancelAsyncRequest(EMobileCallNotifyHscsdInfoChange);
       
  2152 
       
  2153 	User::WaitForRequest(reqStatus);
       
  2154 	ASSERT_EQUALS(KErrCancel, reqStatus.Int())
       
  2155 
       
  2156 	CleanupStack::PopAndDestroy(4, this); // call, line, data, this
       
  2157 	
       
  2158 	}
       
  2159 
       
  2160 
       
  2161 /**
       
  2162 @SYMTestCaseID BA-CTSY-DATC-CNHIC-0008
       
  2163 @SYMComponent  telephony_ctsy
       
  2164 @SYMTestCaseDesc Test support in CTSY for RMobileCall::NotifyHscsdInfoChange with bad parameter data for data calls
       
  2165 @SYMTestPriority High
       
  2166 @SYMTestActions Invokes RMobileCall::NotifyHscsdInfoChange with bad parameter data for data calls
       
  2167 @SYMTestExpectedResults Pass
       
  2168 @SYMTestType CT
       
  2169 */
       
  2170 void CCTsyDataCallControlFU::TestNotifyHscsdInfoChange0008L()
       
  2171 	{
       
  2172 
       
  2173 	OpenEtelServerL(EUseExtendedError);
       
  2174 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2175 	OpenPhoneL();
       
  2176 
       
  2177 	RBuf8 data;
       
  2178 	CleanupClosePushL(data);
       
  2179 
       
  2180 	RLine line;
       
  2181 	RMobileCall call;
       
  2182 	
       
  2183 	OpenLineLC(line, KMmTsyDataLineName);
       
  2184 	OpenNewCallLC(line, call);
       
  2185 	DialL(call, 1, RMobilePhone::ECircuitDataService);
       
  2186 	
       
  2187 	TRequestStatus reqStatus;
       
  2188 
       
  2189     RMobilePhone::TMobileService mobileService = RMobilePhone::ECircuitDataService;
       
  2190     
       
  2191     RMobileCall::TMobileCallHscsdInfoV1 hscsdInfo;
       
  2192     hscsdInfo.iAiur = RMobileCall::EAiurBps38400;
       
  2193     hscsdInfo.iRxTimeSlots = 2;
       
  2194     hscsdInfo.iTxTimeSlots = 2;
       
  2195     hscsdInfo.iCodings = RMobileCall::ETchCoding320;
       
  2196     
       
  2197     RMobileCall::TMobileCallDataCapsV1 dataCallCaps;
       
  2198     dataCallCaps.iAsymmetryCaps = RMobileCall::KCapsAsymmetryNoPreference;
       
  2199     dataCallCaps.iUserInitUpgrade = EFalse;
       
  2200     dataCallCaps.iCodingCaps = RMobileCall::KCapsAiurCoding144;
       
  2201     dataCallCaps.iRLPVersionCaps = RMobileCall::KCapsRLPSingleLinkVersion1;
       
  2202     dataCallCaps.iHscsdSupport = ETrue; // should be ETrue
       
  2203     dataCallCaps.iMaxRxTimeSlots = 2;
       
  2204     dataCallCaps.iSpeedCaps = RMobileCall::KCapsSpeed14400;
       
  2205     dataCallCaps.iMaxTxTimeSlots = 2;
       
  2206     dataCallCaps.iProtocolCaps = RMobileCall::KCapsProtocolV32 | RMobileCall::KCapsPstnMultimedia;
       
  2207     dataCallCaps.iQoSCaps = RMobileCall::KCapsTransparentPreferred;
       
  2208     dataCallCaps.iServiceCaps = RMobileCall::KCapsDataCircuitAsynchronousRDI;
       
  2209     dataCallCaps.iMClass = 1;
       
  2210     dataCallCaps.iTotalRxTxTimeSlots = 4;
       
  2211     dataCallCaps.iV42bisCaps = RMobileCall::KCapsV42bisBothDirections;
       
  2212     
       
  2213     TMockLtsyCallData2<RMobileCall::TMobileCallHscsdInfoV1, RMobileCall::TMobileCallDataCapsV1> hscsdData(1, mobileService, hscsdInfo, dataCallCaps);
       
  2214     data.Close();
       
  2215     hscsdData.SerialiseL(data);
       
  2216 	
       
  2217 	//-------------------------------------------------------------------------
       
  2218 	// Test B: Test passing wrong descriptor size to parameter in
       
  2219 	// RMobileCall::NotifyHscsdInfoChange
       
  2220  	//-------------------------------------------------------------------------
       
  2221  	
       
  2222     TBuf8<1> smallBuf(KNullDesC8);
       
  2223 	call.NotifyHscsdInfoChange(reqStatus, smallBuf);
       
  2224 
       
  2225 	TRequestStatus mockLtsyStatus;
       
  2226 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2227 	iMockLTSY.CompleteL(EMobileCallNotifyHscsdInfoChange, KErrNone, data);
       
  2228 	User::WaitForRequest(mockLtsyStatus);
       
  2229 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int())
       
  2230 
       
  2231 	User::WaitForRequest(reqStatus);
       
  2232 	
       
  2233 	ASSERT_EQUALS(KErrArgument, reqStatus.Int());
       
  2234 	
       
  2235 	CleanupStack::PopAndDestroy(4, this); // call, line, data, this
       
  2236 
       
  2237 	}
       
  2238 
       
  2239 
       
  2240 /**
       
  2241 @SYMTestCaseID BA-CTSY-DATC-CNHIC-0009
       
  2242 @SYMComponent  telephony_ctsy
       
  2243 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileCall::NotifyHscsdInfoChange for data calls
       
  2244 @SYMTestPriority High
       
  2245 @SYMTestActions Invokes multiple client requests to RMobileCall::NotifyHscsdInfoChange for data calls
       
  2246 @SYMTestExpectedResults Pass
       
  2247 @SYMTestType CT
       
  2248 */
       
  2249 void CCTsyDataCallControlFU::TestNotifyHscsdInfoChange0009L()
       
  2250 	{
       
  2251 
       
  2252 	OpenEtelServerL(EUseExtendedError);
       
  2253 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2254 	OpenPhoneL();
       
  2255 
       
  2256 	RBuf8 data;
       
  2257 	CleanupClosePushL(data);
       
  2258 
       
  2259 	// Open second client
       
  2260 	RTelServer telServer2;
       
  2261 	TInt ret = telServer2.Connect();
       
  2262 	ASSERT_EQUALS(KErrNone, ret);
       
  2263 	CleanupClosePushL(telServer2);
       
  2264 
       
  2265 	RMobilePhone phone2;
       
  2266 	ret = phone2.Open(telServer2, KMmTsyPhoneName);
       
  2267 	ASSERT_EQUALS(KErrNone, ret);
       
  2268 	CleanupClosePushL(phone2);
       
  2269 
       
  2270 	// prepare first call
       
  2271 	RLine line;
       
  2272 	RMobileCall call;
       
  2273 	
       
  2274 	OpenLineLC(line, KMmTsyDataLineName);
       
  2275 	TName callName;
       
  2276 	ret = call.OpenNewCall(line, callName);
       
  2277 	ASSERT_EQUALS(KErrNone, ret);
       
  2278 	CleanupClosePushL(call);
       
  2279 	DialL(call, 1, RMobilePhone::ECircuitDataService);
       
  2280 	
       
  2281 	RMobileCall::TMobileCallHscsdInfoV1 info;
       
  2282 	RMobileCall::TMobileCallHscsdInfoV1Pckg infoPckg(info);
       
  2283 		
       
  2284 	TRequestStatus reqStatus;
       
  2285 
       
  2286 	// prepare second call
       
  2287 	RLine line2;
       
  2288 	RMobileCall call2;
       
  2289 
       
  2290 	TInt errorCode = line2.Open(phone2, KMmTsyDataLineName);
       
  2291 	ASSERT_EQUALS(KErrNone, errorCode)
       
  2292    	CleanupClosePushL(line2);
       
  2293 
       
  2294 	OpenNewCallLC(line2, call2);
       
  2295 	DialL(call2, 2, RMobilePhone::ECircuitDataService);
       
  2296 
       
  2297 	RMobileCall::TMobileCallHscsdInfoV1 info2;
       
  2298 	RMobileCall::TMobileCallHscsdInfoV1Pckg infoPckg2(info2);
       
  2299 		
       
  2300 	TRequestStatus reqStatus2;
       
  2301 
       
  2302 	// prepare third call
       
  2303 	RMobileCall call3;
       
  2304 	ret = call3.OpenExistingCall(line, callName);
       
  2305 	ASSERT_EQUALS(KErrNone, ret);
       
  2306 	CleanupClosePushL(call3);
       
  2307 
       
  2308 	RMobileCall::TMobileCallHscsdInfoV1 info3;
       
  2309 	RMobileCall::TMobileCallHscsdInfoV1Pckg infoPckg3(info3);
       
  2310 		
       
  2311 	TRequestStatus reqStatus3;
       
  2312 
       
  2313 	// prepare ltsy data
       
  2314     RMobileCall::TMobileCallHscsdInfoV1 hscsdInfo;
       
  2315     hscsdInfo.iAiur = RMobileCall::EAiurBps38400;
       
  2316     hscsdInfo.iRxTimeSlots = 2;
       
  2317     hscsdInfo.iTxTimeSlots = 2;
       
  2318     hscsdInfo.iCodings = RMobileCall::ETchCoding320;
       
  2319     
       
  2320     RMobileCall::TMobileCallHscsdInfoV1 hscsdInfo2;
       
  2321     hscsdInfo2.iAiur = RMobileCall::EAiurBps43200;
       
  2322     hscsdInfo2.iRxTimeSlots = 4;
       
  2323     hscsdInfo2.iTxTimeSlots = 4;
       
  2324     hscsdInfo2.iCodings = RMobileCall::ETchCoding432;
       
  2325     
       
  2326     RMobileCall::TMobileCallDataCapsV1 dataCallCaps;
       
  2327     dataCallCaps.iAsymmetryCaps = RMobileCall::KCapsAsymmetryNoPreference;
       
  2328     dataCallCaps.iUserInitUpgrade = EFalse;
       
  2329     dataCallCaps.iCodingCaps = RMobileCall::KCapsAiurCoding144;
       
  2330     dataCallCaps.iRLPVersionCaps = RMobileCall::KCapsRLPSingleLinkVersion1;
       
  2331     dataCallCaps.iHscsdSupport = ETrue; // should be ETrue
       
  2332     dataCallCaps.iMaxRxTimeSlots = 2;
       
  2333     dataCallCaps.iSpeedCaps = RMobileCall::KCapsSpeed14400;
       
  2334     dataCallCaps.iMaxTxTimeSlots = 2;
       
  2335     dataCallCaps.iProtocolCaps = RMobileCall::KCapsProtocolV32 | RMobileCall::KCapsPstnMultimedia;
       
  2336     dataCallCaps.iQoSCaps = RMobileCall::KCapsTransparentPreferred;
       
  2337     dataCallCaps.iServiceCaps = RMobileCall::KCapsDataCircuitAsynchronousRDI;
       
  2338     dataCallCaps.iMClass = 1;
       
  2339     dataCallCaps.iTotalRxTxTimeSlots = 4;
       
  2340     dataCallCaps.iV42bisCaps = RMobileCall::KCapsV42bisBothDirections;
       
  2341     
       
  2342     RMobileCall::TMobileCallDataCapsV1 dataCallCaps2;
       
  2343     dataCallCaps2.iAsymmetryCaps = RMobileCall::KCapsAsymmetryDownlink;
       
  2344     dataCallCaps2.iUserInitUpgrade = ETrue;
       
  2345     dataCallCaps2.iCodingCaps = RMobileCall::KCapsAiurCoding96;
       
  2346     dataCallCaps2.iRLPVersionCaps = RMobileCall::KCapsRLPMultiLinkVersion2;
       
  2347     dataCallCaps2.iHscsdSupport = ETrue; // should be ETrue
       
  2348     dataCallCaps2.iMaxRxTimeSlots = 4;
       
  2349     dataCallCaps2.iSpeedCaps = RMobileCall::KCapsSpeed28800;
       
  2350     dataCallCaps2.iMaxTxTimeSlots = 4;
       
  2351     dataCallCaps2.iProtocolCaps = RMobileCall::KCapsProtocolV34 | RMobileCall::KCapsIsdnMultimedia;
       
  2352     dataCallCaps2.iQoSCaps = RMobileCall::KCapsTransparent;
       
  2353     dataCallCaps2.iServiceCaps = RMobileCall::KCapsDataCircuitSynchronous;
       
  2354     dataCallCaps2.iMClass = 2;
       
  2355     dataCallCaps2.iTotalRxTxTimeSlots = 6;
       
  2356     dataCallCaps2.iV42bisCaps = RMobileCall::KCapsV42bisRxDirection;
       
  2357     
       
  2358     TMockLtsyCallData2<RMobileCall::TMobileCallHscsdInfoV1, RMobileCall::TMobileCallDataCapsV1> hscsdData(1, RMobilePhone::ECircuitDataService, hscsdInfo, dataCallCaps);
       
  2359     TMockLtsyCallData2<RMobileCall::TMobileCallHscsdInfoV1, RMobileCall::TMobileCallDataCapsV1> hscsdData2(2, RMobilePhone::ECircuitDataService, hscsdInfo2, dataCallCaps2);
       
  2360     
       
  2361 	//-------------------------------------------------------------------------
       
  2362 	// Test A: Test multiple clients requesting RMobileCall::NotifyHscsdInfoChange
       
  2363  	//-------------------------------------------------------------------------
       
  2364 	
       
  2365 	call.NotifyHscsdInfoChange(reqStatus, infoPckg);
       
  2366 	call2.NotifyHscsdInfoChange(reqStatus2, infoPckg2);
       
  2367 	call3.NotifyHscsdInfoChange(reqStatus3, infoPckg3);
       
  2368 
       
  2369 	TRequestStatus mockLtsyStatus;
       
  2370 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2371 	data.Close();
       
  2372     hscsdData.SerialiseL(data);
       
  2373 	iMockLTSY.CompleteL(EMobileCallNotifyHscsdInfoChange, KErrNone, data);
       
  2374 	User::WaitForRequest(mockLtsyStatus);
       
  2375 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int())
       
  2376 
       
  2377 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2378 	data.Close();
       
  2379     hscsdData2.SerialiseL(data);
       
  2380 	iMockLTSY.CompleteL(EMobileCallNotifyHscsdInfoChange, KErrNone, data);
       
  2381 	User::WaitForRequest(mockLtsyStatus);
       
  2382 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int())
       
  2383 
       
  2384 	User::WaitForRequest(reqStatus);
       
  2385 	ASSERT_EQUALS(KErrNone, reqStatus.Int())
       
  2386 	ASSERT_EQUALS(hscsdInfo.iAiur, info.iAiur)
       
  2387 	ASSERT_EQUALS(hscsdInfo.iRxTimeSlots, info.iRxTimeSlots)
       
  2388 	ASSERT_EQUALS(hscsdInfo.iTxTimeSlots, info.iTxTimeSlots)
       
  2389 	ASSERT_EQUALS(hscsdInfo.iCodings, info.iCodings)
       
  2390 	
       
  2391  	User::WaitForRequest(reqStatus2);
       
  2392 	ASSERT_EQUALS(KErrNone, reqStatus2.Int())
       
  2393 	ASSERT_EQUALS(hscsdInfo2.iAiur, info2.iAiur)
       
  2394 	ASSERT_EQUALS(hscsdInfo2.iRxTimeSlots, info2.iRxTimeSlots)
       
  2395 	ASSERT_EQUALS(hscsdInfo2.iTxTimeSlots, info2.iTxTimeSlots)
       
  2396 	ASSERT_EQUALS(hscsdInfo2.iCodings, info2.iCodings)
       
  2397 
       
  2398 	User::WaitForRequest(reqStatus3);
       
  2399 	ASSERT_EQUALS(KErrNone, reqStatus3.Int())
       
  2400 	// same data as for 1st call because 3rd call object
       
  2401 	// is opened from existing call
       
  2402 	ASSERT_EQUALS(hscsdInfo.iAiur, info3.iAiur)
       
  2403 	ASSERT_EQUALS(hscsdInfo.iRxTimeSlots, info3.iRxTimeSlots)
       
  2404 	ASSERT_EQUALS(hscsdInfo.iTxTimeSlots, info3.iTxTimeSlots)
       
  2405 	ASSERT_EQUALS(hscsdInfo.iCodings, info3.iCodings)
       
  2406 
       
  2407 	AssertMockLtsyStatusL();
       
  2408 	CleanupStack::PopAndDestroy(9, this); // call3, call2, line2, call, line, phone2, telServer2, data, this
       
  2409 
       
  2410 	}
       
  2411 
       
  2412 
       
  2413 /**
       
  2414 @SYMTestCaseID BA-CTSY-DATC-CNHIC-00011
       
  2415 @SYMComponent  telephony_ctsy
       
  2416 @SYMTestCaseDesc Test support in CTSY for RMobileCall::NotifyHscsdInfoChange for fax calls
       
  2417 @SYMTestPriority High
       
  2418 @SYMTestActions Invokes RMobileCall::NotifyHscsdInfoChange for fax calls
       
  2419 @SYMTestExpectedResults Pass
       
  2420 @SYMTestType CT
       
  2421 */
       
  2422 void CCTsyDataCallControlFU::TestNotifyHscsdInfoChange00011L()
       
  2423 	{
       
  2424 
       
  2425 	OpenEtelServerL(EUseExtendedError);
       
  2426 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2427 	OpenPhoneL();
       
  2428 
       
  2429 	RLine line;
       
  2430 	RMobileCall call;
       
  2431 	
       
  2432 	OpenLineLC(line, KMmTsyFaxLineName);
       
  2433 	OpenNewCallLC(line, call);
       
  2434 	
       
  2435 	TRequestStatus reqStatus;
       
  2436 
       
  2437 	//-------------------------------------------------------------------------
       
  2438 	// TEST: failure to dispatch request to CTSY
       
  2439 	// because RMobileCall::NotifyHscsdInfoChange is not supported for fax calls
       
  2440  	//-------------------------------------------------------------------------
       
  2441 
       
  2442 	RMobileCall::TMobileCallHscsdInfoV1 info;
       
  2443 	RMobileCall::TMobileCallHscsdInfoV1Pckg infoPckg(info);
       
  2444 	
       
  2445 	call.NotifyHscsdInfoChange(reqStatus, infoPckg);
       
  2446 	User::WaitForRequest(reqStatus);
       
  2447 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
  2448 	AssertMockLtsyStatusL();
       
  2449 
       
  2450 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
  2451 	
       
  2452 	}
       
  2453 
       
  2454 
       
  2455 /**
       
  2456 @SYMTestCaseID BA-CTSY-DATC-CSDHP-0001
       
  2457 @SYMComponent  telephony_ctsy
       
  2458 @SYMTestCaseDesc Test support in CTSY for RMobileCall::SetDynamicHscsdParams for voice calls
       
  2459 @SYMTestPriority High
       
  2460 @SYMTestActions Invokes RMobileCall::SetDynamicHscsdParams for voice calls
       
  2461 @SYMTestExpectedResults Pass
       
  2462 @SYMTestType CT
       
  2463 */
       
  2464 void CCTsyDataCallControlFU::TestSetDynamicHscsdParams0001L()
       
  2465 	{
       
  2466 
       
  2467 	OpenEtelServerL(EUseExtendedError);
       
  2468 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2469 	OpenPhoneL();
       
  2470 
       
  2471 	RLine line;
       
  2472 	RMobileCall call;
       
  2473 	
       
  2474 	//-------------------------------------------------------------------------
       
  2475 	// TEST: failure to dispatch request to CTSY
       
  2476 	// because RMobileCall::SetDynamicHscsdParams is not supported for voice calls
       
  2477  	//-------------------------------------------------------------------------
       
  2478 
       
  2479 	OpenLineLC(line, KMmTsyVoice1LineName);
       
  2480 	OpenNewCallLC(line, call);
       
  2481 	
       
  2482 	TRequestStatus reqStatus;
       
  2483 	call.SetDynamicHscsdParams(reqStatus, RMobileCall::EAiurBps38400, 2);
       
  2484 	User::WaitForRequest(reqStatus);
       
  2485 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
  2486 
       
  2487 	CleanupStack::PopAndDestroy(2); // call, line
       
  2488 
       
  2489 	// same test for voice call from auxiliary voice line
       
  2490 	OpenLineLC(line, KMmTsyVoice2LineName);
       
  2491 	OpenNewCallLC(line, call);
       
  2492 	
       
  2493 	call.SetDynamicHscsdParams(reqStatus, RMobileCall::EAiurBps38400, 2);
       
  2494 	User::WaitForRequest(reqStatus);
       
  2495 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
  2496 	
       
  2497 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
  2498 	
       
  2499 	}
       
  2500 
       
  2501 /**
       
  2502 @SYMTestCaseID BA-CTSY-DATC-CSDHP-0006
       
  2503 @SYMComponent  telephony_ctsy
       
  2504 @SYMTestCaseDesc Test support in CTSY for RMobileCall::SetDynamicHscsdParams for data calls
       
  2505 @SYMTestPriority High
       
  2506 @SYMTestActions Invokes RMobileCall::SetDynamicHscsdParams for data calls
       
  2507 @SYMTestExpectedResults Pass
       
  2508 @SYMTestType CT
       
  2509 */
       
  2510 void CCTsyDataCallControlFU::TestSetDynamicHscsdParams0006L()
       
  2511 	{
       
  2512 
       
  2513 	OpenEtelServerL(EUseExtendedError);
       
  2514 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2515 	OpenPhoneL();
       
  2516 
       
  2517 	RBuf8 expData;
       
  2518 	CleanupClosePushL(expData);
       
  2519 	RBuf8 completeData;
       
  2520 	CleanupClosePushL(completeData);
       
  2521 
       
  2522 	RLine line;
       
  2523 	RMobileCall call;
       
  2524 	
       
  2525 	OpenLineLC(line, KMmTsyDataLineName);
       
  2526 	const TInt KCallId = 1;
       
  2527 	OpenNewCallLC(line, call);
       
  2528 	DialL(call, KCallId, RMobilePhone::ECircuitDataService);
       
  2529 	
       
  2530 	TRequestStatus reqStatus;
       
  2531 	
       
  2532 	RMobileCall::TMobileHscsdCallParamsV8 hscsdParams;
       
  2533 	hscsdParams.iWantedAiur = RMobileCall::EAiurBps38400;
       
  2534 	hscsdParams.iWantedRxTimeSlots = 2;
       
  2535 		
       
  2536 	RMobilePhone::TMobileService mobileService = RMobilePhone::ECircuitDataService;
       
  2537 	TMockLtsyCallData1<RMobileCall::TMobileHscsdCallParamsV1>
       
  2538 	                 expLtsyData(KCallId, mobileService, hscsdParams);
       
  2539 	expLtsyData.SerialiseL(expData);
       
  2540 	
       
  2541 	TMockLtsyCallData0 completeLtsyData(KCallId, mobileService);
       
  2542 	completeLtsyData.SerialiseL(completeData);
       
  2543 	
       
  2544  	//-------------------------------------------------------------------------
       
  2545 	// TEST A: failure to dispatch request to LTSY
       
  2546  	//-------------------------------------------------------------------------
       
  2547 
       
  2548 	iMockLTSY.ExpectL(EMobileCallSetDynamicHscsdParams, expData, KErrNotSupported);
       
  2549 	
       
  2550 	call.SetDynamicHscsdParams(reqStatus, hscsdParams.iWantedAiur, hscsdParams.iWantedRxTimeSlots);
       
  2551 	User::WaitForRequest(reqStatus);
       
  2552 	ASSERT_EQUALS(KErrNotFound, reqStatus.Int())
       
  2553 	AssertMockLtsyStatusL();
       
  2554 	
       
  2555 	//-------------------------------------------------------------------------
       
  2556 	// TEST B: failure on completion of pending request from LTSY->CTSY
       
  2557  	//-------------------------------------------------------------------------
       
  2558 
       
  2559 	iMockLTSY.ExpectL(EMobileCallSetDynamicHscsdParams, expData, KErrNone);
       
  2560 	iMockLTSY.CompleteL(EMobileCallSetDynamicHscsdParams, KErrGeneral, completeData);
       
  2561 
       
  2562 	call.SetDynamicHscsdParams(reqStatus, hscsdParams.iWantedAiur, hscsdParams.iWantedRxTimeSlots);
       
  2563 	User::WaitForRequest(reqStatus);
       
  2564 	ASSERT_EQUALS(KErrGeneral, reqStatus.Int())
       
  2565 	AssertMockLtsyStatusL();
       
  2566 
       
  2567  	//-------------------------------------------------------------------------
       
  2568 	// TEST C: Successful completion request of
       
  2569 	// RMobileCall::SetDynamicHscsdParams.
       
  2570  	//-------------------------------------------------------------------------
       
  2571 
       
  2572 	iMockLTSY.ExpectL(EMobileCallSetDynamicHscsdParams, expData, KErrNone);
       
  2573 	iMockLTSY.CompleteL(EMobileCallSetDynamicHscsdParams, KErrNone, completeData);
       
  2574 
       
  2575 	call.SetDynamicHscsdParams(reqStatus, hscsdParams.iWantedAiur, hscsdParams.iWantedRxTimeSlots);
       
  2576 	User::WaitForRequest(reqStatus);
       
  2577 	ASSERT_EQUALS(KErrNone, reqStatus.Int())
       
  2578 	AssertMockLtsyStatusL();
       
  2579 
       
  2580  	//-------------------------------------------------------------------------
       
  2581 	// TEST E: Unsolicited completion of RMobileCall::SetDynamicHscsdParams
       
  2582 	// from LTSY.
       
  2583  	//-------------------------------------------------------------------------
       
  2584 
       
  2585 	TRequestStatus mockLtsyStatus;
       
  2586 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2587 	iMockLTSY.CompleteL(EMobileCallSetDynamicHscsdParams, KErrNone, completeData);
       
  2588 	User::WaitForRequest(mockLtsyStatus);
       
  2589 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int())
       
  2590 	AssertMockLtsyStatusL();
       
  2591 
       
  2592 	CleanupStack::PopAndDestroy(5, this); // call, line, completeData, expData, this
       
  2593 	
       
  2594 	}
       
  2595 
       
  2596 
       
  2597 /**
       
  2598 @SYMTestCaseID BA-CTSY-DATC-CSDHP-0007
       
  2599 @SYMComponent  telephony_ctsy
       
  2600 @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileCall::SetDynamicHscsdParams for data calls
       
  2601 @SYMTestPriority High
       
  2602 @SYMTestActions Invokes cancelling of RMobileCall::SetDynamicHscsdParams for data calls
       
  2603 @SYMTestExpectedResults Pass
       
  2604 @SYMTestType CT
       
  2605 */
       
  2606 void CCTsyDataCallControlFU::TestSetDynamicHscsdParams0007L()
       
  2607 	{
       
  2608 
       
  2609 	OpenEtelServerL(EUseExtendedError);
       
  2610 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2611 	OpenPhoneL();
       
  2612 
       
  2613 	RBuf8 expData;
       
  2614 	CleanupClosePushL(expData);
       
  2615 	RBuf8 completeData;
       
  2616 	CleanupClosePushL(completeData);
       
  2617 
       
  2618 	RLine line;
       
  2619 	RMobileCall call;
       
  2620 	
       
  2621 	OpenLineLC(line, KMmTsyDataLineName);
       
  2622 	const TInt KCallId = 1;
       
  2623 	OpenNewCallLC(line, call);
       
  2624 	DialL(call, KCallId, RMobilePhone::ECircuitDataService);
       
  2625 	
       
  2626 	TRequestStatus reqStatus;
       
  2627 	
       
  2628 	RMobileCall::TMobileHscsdCallParamsV8 hscsdParams;
       
  2629 	hscsdParams.iWantedAiur = RMobileCall::EAiurBps38400;
       
  2630 	hscsdParams.iWantedRxTimeSlots = 2;
       
  2631 	
       
  2632 	RMobilePhone::TMobileService mobileService = RMobilePhone::ECircuitDataService;
       
  2633 	TMockLtsyCallData1<RMobileCall::TMobileHscsdCallParamsV1>
       
  2634 	                 expLtsyData(KCallId, mobileService, hscsdParams);
       
  2635 	expLtsyData.SerialiseL(expData);
       
  2636 	
       
  2637 	TMockLtsyCallData0 completeLtsyData(KCallId, mobileService);
       
  2638 	completeLtsyData.SerialiseL(completeData);
       
  2639 
       
  2640  	//-------------------------------------------------------------------------
       
  2641 	// Test cancelling of RMobileCall::SetDynamicHscsdParams
       
  2642  	//-------------------------------------------------------------------------
       
  2643  	
       
  2644 	iMockLTSY.ExpectL(EMobileCallSetDynamicHscsdParams, expData, KErrNone);
       
  2645 	iMockLTSY.CompleteL(EMobileCallSetDynamicHscsdParams, KErrNone, completeData);
       
  2646 
       
  2647 	call.SetDynamicHscsdParams(reqStatus, hscsdParams.iWantedAiur, hscsdParams.iWantedRxTimeSlots);
       
  2648 	
       
  2649 	call.CancelAsyncRequest(EMobileCallSetDynamicHscsdParams);
       
  2650 	
       
  2651 	User::WaitForRequest(reqStatus);
       
  2652 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  2653 	AssertMockLtsyStatusL();
       
  2654 
       
  2655 	CleanupStack::PopAndDestroy(5, this); // call, line, completeData, expData, this
       
  2656 	
       
  2657 	
       
  2658 	}
       
  2659 
       
  2660 
       
  2661 /**
       
  2662 @SYMTestCaseID BA-CTSY-DATC-CSDHP-0009
       
  2663 @SYMComponent  telephony_ctsy
       
  2664 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileCall::SetDynamicHscsdParams for data calls
       
  2665 @SYMTestPriority High
       
  2666 @SYMTestActions Invokes multiple client requests to RMobileCall::SetDynamicHscsdParams for data calls
       
  2667 @SYMTestExpectedResults Pass
       
  2668 @SYMTestType CT
       
  2669 */
       
  2670 void CCTsyDataCallControlFU::TestSetDynamicHscsdParams0009L()
       
  2671 	{
       
  2672 
       
  2673 	OpenEtelServerL(EUseExtendedError);
       
  2674 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2675 	OpenPhoneL();
       
  2676 
       
  2677 	RBuf8 expData;
       
  2678 	CleanupClosePushL(expData);
       
  2679 	RBuf8 completeData;
       
  2680 	CleanupClosePushL(completeData);
       
  2681 
       
  2682 	RLine line;
       
  2683 	RMobileCall call;
       
  2684 	
       
  2685 	OpenLineLC(line, KMmTsyDataLineName);
       
  2686 	const TInt KCallId = 1;
       
  2687 	TName callName;
       
  2688 	TInt ret = call.OpenNewCall(line, callName);
       
  2689 	ASSERT_EQUALS(KErrNone, ret);
       
  2690 	CleanupClosePushL(call);
       
  2691 	DialL(call, KCallId, RMobilePhone::ECircuitDataService);
       
  2692 	
       
  2693 	TRequestStatus reqStatus;
       
  2694 	
       
  2695 	RMobileCall::TMobileHscsdCallParamsV8 hscsdParams;
       
  2696 	hscsdParams.iWantedAiur = RMobileCall::EAiurBps38400;
       
  2697 	hscsdParams.iWantedRxTimeSlots = 2;
       
  2698 	
       
  2699 	RMobilePhone::TMobileService mobileService = RMobilePhone::ECircuitDataService;
       
  2700 	TMockLtsyCallData1<RMobileCall::TMobileHscsdCallParamsV1>
       
  2701 	                 expLtsyData(KCallId, mobileService, hscsdParams);
       
  2702 	expLtsyData.SerialiseL(expData);
       
  2703 	
       
  2704 	TMockLtsyCallData0 completeLtsyData(KCallId, mobileService);
       
  2705 	completeLtsyData.SerialiseL(completeData);
       
  2706 
       
  2707 	// Open second client
       
  2708 	RTelServer telServer2;
       
  2709 	ret = telServer2.Connect();
       
  2710 	ASSERT_EQUALS(KErrNone, ret);
       
  2711 	CleanupClosePushL(telServer2);
       
  2712 
       
  2713 	RMobilePhone phone2;
       
  2714 	ret = phone2.Open(telServer2, KMmTsyPhoneName);
       
  2715 	ASSERT_EQUALS(KErrNone, ret);
       
  2716 	CleanupClosePushL(phone2);
       
  2717 
       
  2718 	RBuf8 expData2;
       
  2719 	CleanupClosePushL(expData2);
       
  2720 	RBuf8 completeData2;
       
  2721 	CleanupClosePushL(completeData2);
       
  2722 
       
  2723 	RLine line2;
       
  2724 	RMobileCall call2;
       
  2725 	
       
  2726 	const TInt KCallId2 = 2;
       
  2727 
       
  2728 	ret = line2.Open(phone2, KMmTsyDataLineName);
       
  2729 	ASSERT_EQUALS(KErrNone, ret)
       
  2730    	CleanupClosePushL(line2);
       
  2731 
       
  2732 	OpenNewCallLC(line2, call2);
       
  2733 	DialL(call2, KCallId2, RMobilePhone::ECircuitDataService);
       
  2734 
       
  2735 	TRequestStatus reqStatus2;
       
  2736 	
       
  2737 	RMobileCall::TMobileHscsdCallParamsV8 hscsdParams2;
       
  2738 	hscsdParams2.iWantedAiur = RMobileCall::EAiurBps43200;
       
  2739 	hscsdParams2.iWantedRxTimeSlots = 3;
       
  2740 	
       
  2741 	TMockLtsyCallData1<RMobileCall::TMobileHscsdCallParamsV1>
       
  2742 	                 expLtsyData2(KCallId2, mobileService, hscsdParams2);
       
  2743 	expLtsyData2.SerialiseL(expData2);
       
  2744 	
       
  2745 	TMockLtsyCallData0 completeLtsyData2(KCallId2, mobileService);
       
  2746 	completeLtsyData2.SerialiseL(completeData2);
       
  2747 
       
  2748 	// Open third call
       
  2749 	RBuf8 expData3;
       
  2750 	CleanupClosePushL(expData3);
       
  2751 
       
  2752 	RMobileCall call3;
       
  2753 	ret = call3.OpenExistingCall(line2, callName);
       
  2754 	ASSERT_EQUALS(KErrNone, ret);
       
  2755 	CleanupClosePushL(call3);
       
  2756 
       
  2757 	TRequestStatus reqStatus3;
       
  2758 
       
  2759 	RMobileCall::TMobileHscsdCallParamsV8 hscsdParams3;
       
  2760 	hscsdParams3.iWantedAiur = RMobileCall::EAiurBps57600;
       
  2761 	hscsdParams3.iWantedRxTimeSlots = 4;
       
  2762 	
       
  2763 	TMockLtsyCallData1<RMobileCall::TMobileHscsdCallParamsV1>
       
  2764 	                 expLtsyData3(KCallId, mobileService, hscsdParams3);
       
  2765 	expLtsyData3.SerialiseL(expData3);
       
  2766 
       
  2767 	//-------------------------------------------------------------------------
       
  2768 	// Test A: Test multiple clients requesting RMobileCall::SetDynamicHscsdParams
       
  2769  	//-------------------------------------------------------------------------
       
  2770 
       
  2771 	iMockLTSY.ExpectL(EMobileCallSetDynamicHscsdParams, expData, KErrNone);
       
  2772 	iMockLTSY.CompleteL(EMobileCallSetDynamicHscsdParams, KErrNone, completeData);
       
  2773 	call.SetDynamicHscsdParams(reqStatus, hscsdParams.iWantedAiur, hscsdParams.iWantedRxTimeSlots);
       
  2774 	
       
  2775 	iMockLTSY.ExpectL(EMobileCallSetDynamicHscsdParams, expData2, KErrNone);
       
  2776 	iMockLTSY.CompleteL(EMobileCallSetDynamicHscsdParams, KErrNone, completeData2);
       
  2777 	call2.SetDynamicHscsdParams(reqStatus2, hscsdParams2.iWantedAiur, hscsdParams2.iWantedRxTimeSlots);
       
  2778 	
       
  2779 	iMockLTSY.ExpectL(EMobileCallSetDynamicHscsdParams, expData3, KErrNone);
       
  2780 	iMockLTSY.CompleteL(EMobileCallSetDynamicHscsdParams, KErrNone, completeData);
       
  2781 	call3.SetDynamicHscsdParams(reqStatus3, hscsdParams3.iWantedAiur, hscsdParams3.iWantedRxTimeSlots);
       
  2782 	
       
  2783 	User::WaitForRequest(reqStatus);
       
  2784 	ASSERT_EQUALS(KErrNone, reqStatus.Int())
       
  2785 
       
  2786 	User::WaitForRequest(reqStatus2);
       
  2787 	ASSERT_EQUALS(KErrNone, reqStatus2.Int())
       
  2788 
       
  2789 	User::WaitForRequest(reqStatus3);
       
  2790 	ASSERT_EQUALS(KErrNone, reqStatus3.Int())
       
  2791 
       
  2792 	AssertMockLtsyStatusL();
       
  2793 
       
  2794 	CleanupStack::PopAndDestroy(8); // call3, expData3, call2, line2, completeData2, expData2, phone2, telServer2
       
  2795 	CleanupStack::PopAndDestroy(5, this); // call, line, completeData, expData, this
       
  2796 
       
  2797 	}
       
  2798 
       
  2799 
       
  2800 /**
       
  2801 @SYMTestCaseID BA-CTSY-DATC-CSDHP-00010
       
  2802 @SYMComponent  telephony_ctsy
       
  2803 @SYMTestCaseDesc Test support in CTSY for RMobileCall::SetDynamicHscsdParams with timeout for data calls
       
  2804 @SYMTestPriority High
       
  2805 @SYMTestActions Invokes RMobileCall::SetDynamicHscsdParams and tests for timeout for data calls
       
  2806 @SYMTestExpectedResults Pass
       
  2807 @SYMTestType CT
       
  2808 */
       
  2809 void CCTsyDataCallControlFU::TestSetDynamicHscsdParams00010L()
       
  2810 	{
       
  2811 
       
  2812 	OpenEtelServerL(EUseExtendedError);
       
  2813 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2814 	OpenPhoneL();
       
  2815 
       
  2816 	RBuf8 expData;
       
  2817 	CleanupClosePushL(expData);
       
  2818 
       
  2819 	RLine line;
       
  2820 	RMobileCall call;
       
  2821 	
       
  2822 	OpenLineLC(line, KMmTsyDataLineName);
       
  2823 	const TInt KCallId = 1;
       
  2824 	OpenNewCallLC(line, call);
       
  2825 	DialL(call, KCallId, RMobilePhone::ECircuitDataService);
       
  2826 	
       
  2827 	TRequestStatus reqStatus;
       
  2828 	
       
  2829 	RMobileCall::TMobileHscsdCallParamsV1 hscsdParams;
       
  2830 	hscsdParams.iWantedAiur = RMobileCall::EAiurBps38400;
       
  2831 	hscsdParams.iWantedRxTimeSlots = 2;
       
  2832 	
       
  2833 	RMobilePhone::TMobileService mobileService = RMobilePhone::ECircuitDataService;
       
  2834 	TMockLtsyCallData1<RMobileCall::TMobileHscsdCallParamsV1>
       
  2835 	                 expLtsyData(KCallId, mobileService, hscsdParams);
       
  2836 	expLtsyData.SerialiseL(expData);
       
  2837 	
       
  2838 	//-------------------------------------------------------------------------
       
  2839 	// Test A: Test timeout of RMobileCall::SetDynamicHscsdParams
       
  2840  	//-------------------------------------------------------------------------
       
  2841 
       
  2842 	iMockLTSY.ExpectL(EMobileCallSetDynamicHscsdParams, expData, KErrNone);
       
  2843 	call.SetDynamicHscsdParams(reqStatus, hscsdParams.iWantedAiur, hscsdParams.iWantedRxTimeSlots);
       
  2844 	User::WaitForRequest(reqStatus);
       
  2845 	ASSERT_EQUALS(KErrTimedOut, reqStatus.Int())
       
  2846 	AssertMockLtsyStatusL();
       
  2847 
       
  2848 	CleanupStack::PopAndDestroy(4, this); // call, line, expData, this
       
  2849 
       
  2850 	}
       
  2851 
       
  2852 
       
  2853 /**
       
  2854 @SYMTestCaseID BA-CTSY-DATC-CSDHP-00011
       
  2855 @SYMComponent  telephony_ctsy
       
  2856 @SYMTestCaseDesc Test support in CTSY for RMobileCall::SetDynamicHscsdParams for fax calls
       
  2857 @SYMTestPriority High
       
  2858 @SYMTestActions Invokes RMobileCall::SetDynamicHscsdParams for fax calls
       
  2859 @SYMTestExpectedResults Pass
       
  2860 @SYMTestType CT
       
  2861 */
       
  2862 void CCTsyDataCallControlFU::TestSetDynamicHscsdParams00011L()
       
  2863 	{
       
  2864 
       
  2865 	OpenEtelServerL(EUseExtendedError);
       
  2866 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2867 	OpenPhoneL();
       
  2868 
       
  2869 	RLine line;
       
  2870 	RMobileCall call;
       
  2871 	
       
  2872 	OpenLineLC(line, KMmTsyFaxLineName);
       
  2873 	OpenNewCallLC(line, call);
       
  2874 	
       
  2875 	//-------------------------------------------------------------------------
       
  2876 	// TEST: failure to dispatch request to CTSY
       
  2877 	// because RMobileCall::SetDynamicHscsdParams is not supported for fax calls
       
  2878  	//-------------------------------------------------------------------------
       
  2879 
       
  2880 	TRequestStatus reqStatus;
       
  2881 	call.SetDynamicHscsdParams(reqStatus, RMobileCall::EAiurBps38400, 2);
       
  2882 	User::WaitForRequest(reqStatus);
       
  2883 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
  2884 
       
  2885 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
  2886 	
       
  2887 	}
       
  2888 
       
  2889 
       
  2890 /**
       
  2891 @SYMTestCaseID BA-CTSY-DATC-CGMDCRR-0001
       
  2892 @SYMComponent  telephony_ctsy
       
  2893 @SYMTestCaseDesc Test support in CTSY for RMobileCall::GetMobileDataCallRLPRange for voice calls
       
  2894 @SYMTestPriority High
       
  2895 @SYMTestActions Invokes RMobileCall::GetMobileDataCallRLPRange for voice calls
       
  2896 @SYMTestExpectedResults Pass
       
  2897 @SYMTestType CT
       
  2898 */
       
  2899 void CCTsyDataCallControlFU::TestGetMobileDataCallRLPRange0001L()
       
  2900 	{
       
  2901 
       
  2902 	OpenEtelServerL(EUseExtendedError);
       
  2903 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2904 	OpenPhoneL();
       
  2905 
       
  2906 	RLine line;
       
  2907 	RMobileCall call;
       
  2908 	
       
  2909 	//-------------------------------------------------------------------------
       
  2910 	// TEST: failure to dispatch request to CTSY
       
  2911 	// because RMobileCall::GetMobileDataCallRLPRange is not supported
       
  2912  	//-------------------------------------------------------------------------
       
  2913 
       
  2914 	OpenLineLC(line, KMmTsyVoice1LineName);
       
  2915 	OpenNewCallLC(line, call);
       
  2916 	
       
  2917 	TRequestStatus reqStatus;
       
  2918 	RMobileCall::TMobileDataRLPRangesV1 ranges;
       
  2919 	RMobileCall::TMobileDataRLPRangesV1Pckg rangesPckg(ranges);
       
  2920 	call.GetMobileDataCallRLPRange(reqStatus, 0, rangesPckg);
       
  2921 	User::WaitForRequest(reqStatus);
       
  2922 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
  2923 	
       
  2924 	CleanupStack::PopAndDestroy(2); // call, line
       
  2925 
       
  2926 	// same test for voice call from auxiliary voice line
       
  2927 	OpenLineLC(line, KMmTsyVoice2LineName);
       
  2928 	OpenNewCallLC(line, call);
       
  2929 	
       
  2930 	call.GetMobileDataCallRLPRange(reqStatus, 0, rangesPckg);
       
  2931 	User::WaitForRequest(reqStatus);
       
  2932 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
  2933 
       
  2934 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
  2935 	
       
  2936 	}
       
  2937 
       
  2938 
       
  2939 /**
       
  2940 @SYMTestCaseID BA-CTSY-DATC-CGMDCRR-0006
       
  2941 @SYMComponent  telephony_ctsy
       
  2942 @SYMTestCaseDesc Test support in CTSY for RMobileCall::GetMobileDataCallRLPRange for data calls
       
  2943 @SYMTestPriority High
       
  2944 @SYMTestActions Invokes RMobileCall::GetMobileDataCallRLPRange for data calls
       
  2945 @SYMTestExpectedResults Pass
       
  2946 @SYMTestType CT
       
  2947 */
       
  2948 void CCTsyDataCallControlFU::TestGetMobileDataCallRLPRange0006L()
       
  2949 	{
       
  2950 
       
  2951 	OpenEtelServerL(EUseExtendedError);
       
  2952 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2953 	OpenPhoneL();
       
  2954 
       
  2955 	RLine line;
       
  2956 	RMobileCall call;
       
  2957 	
       
  2958 	OpenLineLC(line, KMmTsyDataLineName);
       
  2959 	OpenNewCallLC(line, call);
       
  2960 	
       
  2961 	TRequestStatus reqStatus;
       
  2962 	RMobileCall::TMobileDataRLPRangesV1 ranges;
       
  2963 	RMobileCall::TMobileDataRLPRangesV1Pckg rangesPckg(ranges);
       
  2964 
       
  2965 	//-------------------------------------------------------------------------
       
  2966 	// TEST: failure to dispatch request to CTSY
       
  2967 	// because RMobileCall::GetMobileDataCallRLPRange is not supported
       
  2968  	//-------------------------------------------------------------------------
       
  2969 
       
  2970 	call.GetMobileDataCallRLPRange(reqStatus, 0, rangesPckg);
       
  2971 	User::WaitForRequest(reqStatus);
       
  2972 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
  2973 
       
  2974 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
  2975 	
       
  2976 	}
       
  2977 
       
  2978 
       
  2979 /**
       
  2980 @SYMTestCaseID BA-CTSY-DATC-CGMDCRR-00011
       
  2981 @SYMComponent  telephony_ctsy
       
  2982 @SYMTestCaseDesc Test support in CTSY for RMobileCall::GetMobileDataCallRLPRange for fax calls
       
  2983 @SYMTestPriority High
       
  2984 @SYMTestActions Invokes RMobileCall::GetMobileDataCallRLPRange for fax calls
       
  2985 @SYMTestExpectedResults Pass
       
  2986 @SYMTestType CT
       
  2987 */
       
  2988 void CCTsyDataCallControlFU::TestGetMobileDataCallRLPRange00011L()
       
  2989 	{
       
  2990 
       
  2991 	OpenEtelServerL(EUseExtendedError);
       
  2992 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2993 	OpenPhoneL();
       
  2994 
       
  2995 	RLine line;
       
  2996 	RMobileCall call;
       
  2997 	
       
  2998 	OpenLineLC(line, KMmTsyFaxLineName);
       
  2999 	OpenNewCallLC(line, call);
       
  3000 	
       
  3001 	TRequestStatus reqStatus;
       
  3002 	RMobileCall::TMobileDataRLPRangesV1 ranges;
       
  3003 	RMobileCall::TMobileDataRLPRangesV1Pckg rangesPckg(ranges);
       
  3004 
       
  3005 	//-------------------------------------------------------------------------
       
  3006 	// TEST: failure to dispatch request to CTSY
       
  3007 	// because RMobileCall::GetMobileDataCallRLPRange is not supported
       
  3008  	//-------------------------------------------------------------------------
       
  3009 
       
  3010 	call.GetMobileDataCallRLPRange(reqStatus, 0, rangesPckg);
       
  3011 	User::WaitForRequest(reqStatus);
       
  3012 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
  3013 
       
  3014 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
  3015 	
       
  3016 	}
       
  3017 
       
  3018 
       
  3019 /**
       
  3020 @SYMTestCaseID BA-CTSY-DATC-CNMDCCC-0001
       
  3021 @SYMComponent  telephony_ctsy
       
  3022 @SYMTestCaseDesc Test support in CTSY for RMobileCall::NotifyMobileDataCallCapsChange for voice calls
       
  3023 @SYMTestPriority High
       
  3024 @SYMTestActions Invokes RMobileCall::NotifyMobileDataCallCapsChange for voice calls
       
  3025 @SYMTestExpectedResults Pass
       
  3026 @SYMTestType CT
       
  3027 */
       
  3028 void CCTsyDataCallControlFU::TestNotifyMobileDataCallCapsChange0001L()
       
  3029 	{
       
  3030 
       
  3031 	OpenEtelServerL(EUseExtendedError);
       
  3032 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3033 	OpenPhoneL();
       
  3034 
       
  3035 	RLine line;
       
  3036 	RMobileCall call;
       
  3037 	
       
  3038 	//-------------------------------------------------------------------------
       
  3039 	// TEST: failure to dispatch request to CTSY
       
  3040 	// because RMobileCall::NotifyMobileDataCallCapsChange is not supported for voice calls
       
  3041  	//-------------------------------------------------------------------------
       
  3042 
       
  3043 	OpenLineLC(line, KMmTsyVoice1LineName);
       
  3044 	OpenNewCallLC(line, call);
       
  3045 	
       
  3046 	TRequestStatus reqStatus;
       
  3047 	RMobileCall::TMobileCallDataCapsV1 callCaps;
       
  3048 	RMobileCall::TMobileCallDataCapsV1Pckg callCapsPckg(callCaps);
       
  3049 	call.NotifyMobileDataCallCapsChange(reqStatus, callCapsPckg);
       
  3050 	User::WaitForRequest(reqStatus);
       
  3051 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
  3052 
       
  3053 	CleanupStack::PopAndDestroy(2); // call, line
       
  3054 
       
  3055 	// same test for voice call from auxiliary voice line
       
  3056 	OpenLineLC(line, KMmTsyVoice2LineName);
       
  3057 	OpenNewCallLC(line, call);
       
  3058 	
       
  3059 	call.NotifyMobileDataCallCapsChange(reqStatus, callCapsPckg);
       
  3060 	User::WaitForRequest(reqStatus);
       
  3061 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
  3062 	
       
  3063 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
  3064 	
       
  3065 	}
       
  3066 
       
  3067 
       
  3068 /**
       
  3069 @SYMTestCaseID BA-CTSY-DATC-CNMDCCC-0006
       
  3070 @SYMComponent  telephony_ctsy
       
  3071 @SYMTestCaseDesc Test support in CTSY for RMobileCall::NotifyMobileDataCallCapsChange for data calls
       
  3072 @SYMTestPriority High
       
  3073 @SYMTestActions Invokes RMobileCall::NotifyMobileDataCallCapsChange for data calls
       
  3074 @SYMTestExpectedResults Pass
       
  3075 @SYMTestType CT
       
  3076 */
       
  3077 void CCTsyDataCallControlFU::TestNotifyMobileDataCallCapsChange0006L()
       
  3078 	{
       
  3079 
       
  3080 	OpenEtelServerL(EUseExtendedError);
       
  3081 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3082 	OpenPhoneL();
       
  3083 
       
  3084 	RBuf8 completeData;
       
  3085 	CleanupClosePushL(completeData);
       
  3086 
       
  3087 	RLine line;
       
  3088 	RMobileCall call;
       
  3089 	
       
  3090 	OpenLineLC(line, KMmTsyDataLineName);
       
  3091 	const TInt KCallId = 1;
       
  3092 	OpenNewCallLC(line, call);
       
  3093 	DialL(call, KCallId, RMobilePhone::ECircuitDataService);
       
  3094 	
       
  3095 	RMobileCall::TMobileCallDataCapsV1 completeCallCaps;
       
  3096 	completeCallCaps.iSpeedCaps = RMobileCall::KCapsSpeed48000;
       
  3097 	completeCallCaps.iProtocolCaps = RMobileCall::KCapsProtocolV34;
       
  3098 	completeCallCaps.iServiceCaps = RMobileCall::KCapsPacketAccessSyncUDI;
       
  3099 	completeCallCaps.iQoSCaps = RMobileCall::KCapsTransparentPreferred;
       
  3100 	completeCallCaps.iHscsdSupport = ETrue;
       
  3101 	completeCallCaps.iMClass = 2;
       
  3102 	completeCallCaps.iMaxRxTimeSlots = 4;
       
  3103 	completeCallCaps.iMaxTxTimeSlots = 8;
       
  3104 	completeCallCaps.iTotalRxTxTimeSlots = 10;
       
  3105 	completeCallCaps.iCodingCaps = RMobileCall::KCapsAiurCoding96;
       
  3106 	completeCallCaps.iAsymmetryCaps = RMobileCall::KCapsAsymmetryDownlink;
       
  3107 	completeCallCaps.iUserInitUpgrade = ETrue;
       
  3108 	completeCallCaps.iRLPVersionCaps = RMobileCall::KCapsRLPSingleLinkVersion1;
       
  3109 	completeCallCaps.iV42bisCaps = RMobileCall::KCapsV42bisRxDirection;
       
  3110 	
       
  3111 	TMockLtsyCallData1<RMobileCall::TMobileCallDataCapsV1>
       
  3112 	                     completeLtsyData(KCallId, RMobilePhone::ECircuitDataService, completeCallCaps);
       
  3113 	completeLtsyData.SerialiseL(completeData);
       
  3114 
       
  3115  	//-------------------------------------------------------------------------
       
  3116 	// TEST C: Successful completion request of
       
  3117 	// RMobileCall::NotifyMobileDataCallCapsChange when result is not cached.
       
  3118  	//-------------------------------------------------------------------------
       
  3119 
       
  3120 	TRequestStatus reqStatus;
       
  3121 	RMobileCall::TMobileCallDataCapsV1 callCaps;
       
  3122 	RMobileCall::TMobileCallDataCapsV1Pckg callCapsPckg(callCaps);
       
  3123 	call.NotifyMobileDataCallCapsChange(reqStatus, callCapsPckg);
       
  3124 	
       
  3125 	TRequestStatus mockLtsyStatus;
       
  3126 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  3127 	iMockLTSY.CompleteL(EMobileCallNotifyMobileDataCallCapsChange, KErrNone, completeData);
       
  3128 	User::WaitForRequest(mockLtsyStatus);
       
  3129 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int())
       
  3130 
       
  3131 	User::WaitForRequest(reqStatus);
       
  3132 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  3133 	ASSERT_TRUE(TComparator<RMobileCall::TMobileCallDataCapsV1>::IsEqual(completeCallCaps, callCaps));
       
  3134 
       
  3135 	AssertMockLtsyStatusL();
       
  3136 
       
  3137  	//-------------------------------------------------------------------------
       
  3138 	// TEST E: Unsolicited completion of RMobileCall::NotifyMobileDataCallCapsChange
       
  3139 	// from LTSY.
       
  3140  	//-------------------------------------------------------------------------
       
  3141 
       
  3142 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  3143 	iMockLTSY.CompleteL(EMobileCallNotifyMobileDataCallCapsChange, KErrNone, completeData);
       
  3144 	User::WaitForRequest(mockLtsyStatus);
       
  3145 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int())
       
  3146 	AssertMockLtsyStatusL();
       
  3147 
       
  3148 	CleanupStack::PopAndDestroy(4, this); // call, line, completeData, this
       
  3149 	
       
  3150 	}
       
  3151 
       
  3152 
       
  3153 /**
       
  3154 @SYMTestCaseID BA-CTSY-DATC-CNMDCCC-0007
       
  3155 @SYMComponent  telephony_ctsy
       
  3156 @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileCall::NotifyMobileDataCallCapsChange for data calls
       
  3157 @SYMTestPriority High
       
  3158 @SYMTestActions Invokes cancelling of RMobileCall::NotifyMobileDataCallCapsChange for data calls
       
  3159 @SYMTestExpectedResults Pass
       
  3160 @SYMTestType CT
       
  3161 */
       
  3162 void CCTsyDataCallControlFU::TestNotifyMobileDataCallCapsChange0007L()
       
  3163 	{
       
  3164 
       
  3165 	OpenEtelServerL(EUseExtendedError);
       
  3166 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3167 	OpenPhoneL();
       
  3168 
       
  3169 	RLine line;
       
  3170 	RMobileCall call;
       
  3171 	
       
  3172 	OpenLineLC(line, KMmTsyDataLineName);
       
  3173 	const TInt KCallId = 1;
       
  3174 	OpenNewCallLC(line, call);
       
  3175 	DialL(call, KCallId, RMobilePhone::ECircuitDataService);
       
  3176 
       
  3177  	//-------------------------------------------------------------------------
       
  3178 	// Test cancelling of RMobileCall::NotifyMobileDataCallCapsChange
       
  3179  	//-------------------------------------------------------------------------
       
  3180  	
       
  3181 	TRequestStatus reqStatus;
       
  3182 	RMobileCall::TMobileCallDataCapsV1 callCaps;
       
  3183 	RMobileCall::TMobileCallDataCapsV1Pckg callCapsPckg(callCaps);
       
  3184 	call.NotifyMobileDataCallCapsChange(reqStatus, callCapsPckg);
       
  3185 	
       
  3186 	call.CancelAsyncRequest(EMobileCallNotifyMobileDataCallCapsChange);
       
  3187 
       
  3188 	User::WaitForRequest(reqStatus);
       
  3189 	ASSERT_EQUALS(KErrCancel, reqStatus.Int());
       
  3190 
       
  3191 	AssertMockLtsyStatusL();
       
  3192 	CleanupStack::PopAndDestroy(3, this); // line, call, this
       
  3193 	
       
  3194 	}
       
  3195 
       
  3196 
       
  3197 /**
       
  3198 @SYMTestCaseID BA-CTSY-DATC-CNMDCCC-0008
       
  3199 @SYMComponent  telephony_ctsy
       
  3200 @SYMTestCaseDesc Test support in CTSY for RMobileCall::NotifyMobileDataCallCapsChange with bad parameter data for data calls
       
  3201 @SYMTestPriority High
       
  3202 @SYMTestActions Invokes RMobileCall::NotifyMobileDataCallCapsChange with bad parameter data for data calls
       
  3203 @SYMTestExpectedResults Pass
       
  3204 @SYMTestType CT
       
  3205 */
       
  3206 void CCTsyDataCallControlFU::TestNotifyMobileDataCallCapsChange0008L()
       
  3207 	{
       
  3208 
       
  3209 	OpenEtelServerL(EUseExtendedError);
       
  3210 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3211 	OpenPhoneL();
       
  3212 
       
  3213 	RBuf8 completeData;
       
  3214 	CleanupClosePushL(completeData);
       
  3215 
       
  3216 	RLine line;
       
  3217 	RMobileCall call;
       
  3218 	
       
  3219 	OpenLineLC(line, KMmTsyDataLineName);
       
  3220 	const TInt KCallId = 1;
       
  3221 	OpenNewCallLC(line, call);
       
  3222 	DialL(call, KCallId, RMobilePhone::ECircuitDataService);
       
  3223 	
       
  3224 	RMobileCall::TMobileCallDataCapsV1 completeCallCaps;
       
  3225 	completeCallCaps.iSpeedCaps = RMobileCall::KCapsSpeed48000;
       
  3226 	completeCallCaps.iProtocolCaps = RMobileCall::KCapsProtocolV34;
       
  3227 	completeCallCaps.iServiceCaps = RMobileCall::KCapsPacketAccessSyncUDI;
       
  3228 	completeCallCaps.iQoSCaps = RMobileCall::KCapsTransparentPreferred;
       
  3229 	completeCallCaps.iHscsdSupport = ETrue;
       
  3230 	completeCallCaps.iMClass = 2;
       
  3231 	completeCallCaps.iMaxRxTimeSlots = 4;
       
  3232 	completeCallCaps.iMaxTxTimeSlots = 8;
       
  3233 	completeCallCaps.iTotalRxTxTimeSlots = 10;
       
  3234 	completeCallCaps.iCodingCaps = RMobileCall::KCapsAiurCoding96;
       
  3235 	completeCallCaps.iAsymmetryCaps = RMobileCall::KCapsAsymmetryDownlink;
       
  3236 	completeCallCaps.iUserInitUpgrade = ETrue;
       
  3237 	completeCallCaps.iRLPVersionCaps = RMobileCall::KCapsRLPSingleLinkVersion1;
       
  3238 	completeCallCaps.iV42bisCaps = RMobileCall::KCapsV42bisRxDirection;
       
  3239 	
       
  3240 	TMockLtsyCallData1<RMobileCall::TMobileCallDataCapsV1>
       
  3241 	                     completeLtsyData(KCallId, RMobilePhone::ECircuitDataService, completeCallCaps);
       
  3242 	completeLtsyData.SerialiseL(completeData);
       
  3243 
       
  3244 	//-------------------------------------------------------------------------
       
  3245 	// Test B: Test passing wrong descriptor size to parameter in
       
  3246 	// RMobileCall::NotifyMobileDataCallCapsChange
       
  3247  	//-------------------------------------------------------------------------
       
  3248 
       
  3249 	TRequestStatus reqStatus;
       
  3250 	TBuf8<1> wrongCallCaps(KNullDesC8);
       
  3251 	call.NotifyMobileDataCallCapsChange(reqStatus, wrongCallCaps);
       
  3252 	
       
  3253 	TRequestStatus mockLtsyStatus;
       
  3254 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  3255 	iMockLTSY.CompleteL(EMobileCallNotifyMobileDataCallCapsChange, KErrNone, completeData);
       
  3256 	User::WaitForRequest(mockLtsyStatus);
       
  3257 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int())
       
  3258 
       
  3259 	User::WaitForRequest(reqStatus);
       
  3260 	ASSERT_EQUALS(KErrArgument, reqStatus.Int());
       
  3261 	
       
  3262 	//-------------------------------------------------------------------------
       
  3263 	// Test B: Test passing wrong parameter to
       
  3264 	// RMobileCall::NotifyMobileDataCallCapsChange method
       
  3265  	//-------------------------------------------------------------------------	
       
  3266 
       
  3267     const TInt bufSize = sizeof ( RMobileCall::TMobileCallDataCapsV1 );
       
  3268 	TBuf8<bufSize> wrongCallCaps2;
       
  3269 	wrongCallCaps2.FillZ(); // Fill buffer with zero
       
  3270 	call.NotifyMobileDataCallCapsChange(reqStatus, wrongCallCaps2);
       
  3271 	
       
  3272 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  3273 	iMockLTSY.CompleteL(EMobileCallNotifyMobileDataCallCapsChange, KErrNone, completeData);
       
  3274 	User::WaitForRequest(mockLtsyStatus);
       
  3275 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int())
       
  3276 
       
  3277 	User::WaitForRequest(reqStatus);
       
  3278 	ASSERT_EQUALS(KErrArgument, reqStatus.Int());
       
  3279 		
       
  3280 	CleanupStack::PopAndDestroy(4, this); // call, line, completeData, this
       
  3281 
       
  3282 	}
       
  3283 
       
  3284 
       
  3285 /**
       
  3286 @SYMTestCaseID BA-CTSY-DATC-CNMDCCC-0009
       
  3287 @SYMComponent  telephony_ctsy
       
  3288 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileCall::NotifyMobileDataCallCapsChange for data calls
       
  3289 @SYMTestPriority High
       
  3290 @SYMTestActions Invokes multiple client requests to RMobileCall::NotifyMobileDataCallCapsChange for data calls
       
  3291 @SYMTestExpectedResults Pass
       
  3292 @SYMTestType CT
       
  3293 */
       
  3294 void CCTsyDataCallControlFU::TestNotifyMobileDataCallCapsChange0009L()
       
  3295 	{
       
  3296 
       
  3297 	OpenEtelServerL(EUseExtendedError);
       
  3298 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3299 	OpenPhoneL();
       
  3300 
       
  3301 	RBuf8 completeData;
       
  3302 	CleanupClosePushL(completeData);
       
  3303 
       
  3304 	RLine line;
       
  3305 	RMobileCall call;
       
  3306 	
       
  3307 	OpenLineLC(line, KMmTsyDataLineName);
       
  3308 	const TInt KCallId = 1;
       
  3309 	TName callName;
       
  3310 	TInt ret = call.OpenNewCall(line, callName);
       
  3311 	ASSERT_EQUALS(KErrNone, ret);
       
  3312 	CleanupClosePushL(call);
       
  3313 	DialL(call, KCallId, RMobilePhone::ECircuitDataService);
       
  3314 	
       
  3315 	RMobileCall::TMobileCallDataCapsV1 completeCallCaps;
       
  3316 	completeCallCaps.iSpeedCaps = RMobileCall::KCapsSpeed48000;
       
  3317 	completeCallCaps.iProtocolCaps = RMobileCall::KCapsProtocolV34;
       
  3318 	completeCallCaps.iServiceCaps = RMobileCall::KCapsPacketAccessSyncUDI;
       
  3319 	completeCallCaps.iQoSCaps = RMobileCall::KCapsTransparentPreferred;
       
  3320 	completeCallCaps.iHscsdSupport = ETrue;
       
  3321 	completeCallCaps.iMClass = 2;
       
  3322 	completeCallCaps.iMaxRxTimeSlots = 4;
       
  3323 	completeCallCaps.iMaxTxTimeSlots = 8;
       
  3324 	completeCallCaps.iTotalRxTxTimeSlots = 10;
       
  3325 	completeCallCaps.iCodingCaps = RMobileCall::KCapsAiurCoding96;
       
  3326 	completeCallCaps.iAsymmetryCaps = RMobileCall::KCapsAsymmetryDownlink;
       
  3327 	completeCallCaps.iUserInitUpgrade = ETrue;
       
  3328 	completeCallCaps.iRLPVersionCaps = RMobileCall::KCapsRLPSingleLinkVersion1;
       
  3329 	completeCallCaps.iV42bisCaps = RMobileCall::KCapsV42bisRxDirection;
       
  3330 	
       
  3331 	TMockLtsyCallData1<RMobileCall::TMobileCallDataCapsV1>
       
  3332 	                     completeLtsyData(KCallId, RMobilePhone::ECircuitDataService, completeCallCaps);
       
  3333 	completeLtsyData.SerialiseL(completeData);
       
  3334 
       
  3335 	// Open second client
       
  3336 	RTelServer telServer2;
       
  3337 	ret = telServer2.Connect();
       
  3338 	ASSERT_EQUALS(KErrNone, ret);
       
  3339 	CleanupClosePushL(telServer2);
       
  3340 
       
  3341 	RMobilePhone phone2;
       
  3342 	ret = phone2.Open(telServer2, KMmTsyPhoneName);
       
  3343 	ASSERT_EQUALS(KErrNone, ret);
       
  3344 	CleanupClosePushL(phone2);
       
  3345 
       
  3346 	RLine line2;
       
  3347 	RMobileCall call2;
       
  3348 
       
  3349 	const TInt KCallId2 = 2;
       
  3350 
       
  3351 	ret = line2.Open(phone2, KMmTsyDataLineName);
       
  3352 	ASSERT_EQUALS(KErrNone, ret)
       
  3353    	CleanupClosePushL(line2);
       
  3354 
       
  3355 	OpenNewCallLC(line2, call2);
       
  3356 	DialL(call2, KCallId2, RMobilePhone::ECircuitDataService);
       
  3357 
       
  3358 	RBuf8 completeData2;
       
  3359 	CleanupClosePushL(completeData2);
       
  3360 
       
  3361 	RMobileCall::TMobileCallDataCapsV1 completeCallCaps2;
       
  3362 	completeCallCaps2.iSpeedCaps = RMobileCall::KCapsSpeed56000;
       
  3363 	completeCallCaps2.iProtocolCaps = RMobileCall::KCapsProtocolV32;
       
  3364 	completeCallCaps2.iServiceCaps = RMobileCall::KCapsPacketAccessSyncRDI;
       
  3365 	completeCallCaps2.iQoSCaps = RMobileCall::KCapsTransparent;
       
  3366 	completeCallCaps2.iHscsdSupport = EFalse;
       
  3367 	completeCallCaps2.iMClass = 1;
       
  3368 	completeCallCaps2.iMaxRxTimeSlots = 2;
       
  3369 	completeCallCaps2.iMaxTxTimeSlots = 4;
       
  3370 	completeCallCaps2.iTotalRxTxTimeSlots = 6;
       
  3371 	completeCallCaps2.iCodingCaps = RMobileCall::KCapsAiurCoding144;
       
  3372 	completeCallCaps2.iAsymmetryCaps = RMobileCall::KCapsAsymmetryUplink;
       
  3373 	completeCallCaps2.iUserInitUpgrade = EFalse;
       
  3374 	completeCallCaps2.iRLPVersionCaps = RMobileCall::KCapsRLPMultiLinkVersion2;
       
  3375 	completeCallCaps2.iV42bisCaps = RMobileCall::KCapsV42bisBothDirections;
       
  3376 	
       
  3377 	TMockLtsyCallData1<RMobileCall::TMobileCallDataCapsV1>
       
  3378 	                     completeLtsyData2(KCallId2, RMobilePhone::ECircuitDataService, completeCallCaps2);
       
  3379 	completeLtsyData2.SerialiseL(completeData2);
       
  3380 
       
  3381 	// open third call
       
  3382 	RMobileCall call3;
       
  3383 	ret = call3.OpenExistingCall(line2, callName);
       
  3384 	ASSERT_EQUALS(KErrNone, ret);
       
  3385 	CleanupClosePushL(call3);
       
  3386 
       
  3387 	//-------------------------------------------------------------------------
       
  3388 	// Test A: Test multiple clients requesting RMobileCall::NotifyMobileDataCallCapsChange
       
  3389  	//-------------------------------------------------------------------------
       
  3390 
       
  3391 	TRequestStatus reqStatus;
       
  3392 	RMobileCall::TMobileCallDataCapsV1 callCaps;
       
  3393 	RMobileCall::TMobileCallDataCapsV1Pckg callCapsPckg(callCaps);
       
  3394 	call.NotifyMobileDataCallCapsChange(reqStatus, callCapsPckg);
       
  3395 	
       
  3396 	TRequestStatus reqStatus2;
       
  3397 	RMobileCall::TMobileCallDataCapsV1 callCaps2;
       
  3398 	RMobileCall::TMobileCallDataCapsV1Pckg callCapsPckg2(callCaps2);
       
  3399 	call2.NotifyMobileDataCallCapsChange(reqStatus2, callCapsPckg2);
       
  3400 	
       
  3401 	TRequestStatus reqStatus3;
       
  3402 	RMobileCall::TMobileCallDataCapsV1 callCaps3;
       
  3403 	RMobileCall::TMobileCallDataCapsV1Pckg callCapsPckg3(callCaps3);
       
  3404 	call3.NotifyMobileDataCallCapsChange(reqStatus3, callCapsPckg3);
       
  3405 	
       
  3406 	TRequestStatus mockLtsyStatus;
       
  3407 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  3408 	iMockLTSY.CompleteL(EMobileCallNotifyMobileDataCallCapsChange, KErrNone, completeData);
       
  3409 	User::WaitForRequest(mockLtsyStatus);
       
  3410 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int())
       
  3411 
       
  3412 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  3413 	iMockLTSY.CompleteL(EMobileCallNotifyMobileDataCallCapsChange, KErrNone, completeData2);
       
  3414 	User::WaitForRequest(mockLtsyStatus);
       
  3415 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int())
       
  3416 
       
  3417 	User::WaitForRequest(reqStatus);
       
  3418 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  3419 	ASSERT_TRUE(TComparator<RMobileCall::TMobileCallDataCapsV1>::IsEqual(completeCallCaps, callCaps));
       
  3420 
       
  3421 	User::WaitForRequest(reqStatus2);
       
  3422 	ASSERT_EQUALS(KErrNone, reqStatus2.Int());
       
  3423 	ASSERT_TRUE(TComparator<RMobileCall::TMobileCallDataCapsV1>::IsEqual(completeCallCaps2, callCaps2));
       
  3424 
       
  3425 	User::WaitForRequest(reqStatus3);
       
  3426 	ASSERT_EQUALS(KErrNone, reqStatus3.Int());
       
  3427 	ASSERT_TRUE(TComparator<RMobileCall::TMobileCallDataCapsV1>::IsEqual(completeCallCaps, callCaps3));
       
  3428 
       
  3429 	AssertMockLtsyStatusL();
       
  3430 
       
  3431 	CleanupStack::PopAndDestroy(10, this); // call3, completeData2, call2, line2, phone2, telServer2, call, line, completeData, this
       
  3432 
       
  3433 	}
       
  3434 
       
  3435 
       
  3436 /**
       
  3437 @SYMTestCaseID BA-CTSY-DATC-CNMDCCC-00011
       
  3438 @SYMComponent  telephony_ctsy
       
  3439 @SYMTestCaseDesc Test support in CTSY for RMobileCall::NotifyMobileDataCallCapsChange for fax calls
       
  3440 @SYMTestPriority High
       
  3441 @SYMTestActions Invokes RMobileCall::NotifyMobileDataCallCapsChange for fax calls
       
  3442 @SYMTestExpectedResults Pass
       
  3443 @SYMTestType CT
       
  3444 */
       
  3445 void CCTsyDataCallControlFU::TestNotifyMobileDataCallCapsChange00011L()
       
  3446 	{
       
  3447 
       
  3448 	OpenEtelServerL(EUseExtendedError);
       
  3449 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3450 	OpenPhoneL();
       
  3451 
       
  3452 	RLine line;
       
  3453 	RMobileCall call;
       
  3454 	
       
  3455 	OpenLineLC(line, KMmTsyFaxLineName);
       
  3456 	OpenNewCallLC(line, call);
       
  3457 	
       
  3458 	TRequestStatus reqStatus;
       
  3459 	RMobileCall::TMobileCallDataCapsV1 callCaps;
       
  3460 	RMobileCall::TMobileCallDataCapsV1Pckg callCapsPckg(callCaps);
       
  3461 
       
  3462 	//-------------------------------------------------------------------------
       
  3463 	// TEST: failure to dispatch request to CTSY
       
  3464 	// because RMobileCall::NotifyMobileDataCallCapsChange is not supported for fax calls
       
  3465  	//-------------------------------------------------------------------------
       
  3466 
       
  3467 	call.NotifyMobileDataCallCapsChange(reqStatus, callCapsPckg);
       
  3468 	User::WaitForRequest(reqStatus);
       
  3469 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int())
       
  3470 	
       
  3471 	CleanupStack::PopAndDestroy(3, this); // call, line, this
       
  3472 	
       
  3473 	}
       
  3474 
       
  3475