telephonyserverplugins/common_tsy/test/component/src/cctsybroadcastmessagingfu.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 BroadcastMessaging in the Common TSY.
       
    15 // 
       
    16 //
       
    17 
       
    18 /**
       
    19  @file 
       
    20 */
       
    21 
       
    22 #include "cctsybroadcastmessagingfu.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 <mmretrieve.h>
       
    31 #include "cctsyactiveretriever.h"
       
    32 #include <ctsy/serviceapi/cmmsmsutility.h>
       
    33 
       
    34 CTestSuite* CCTsyBroadcastMessagingFU::CreateSuiteL(const TDesC& aName)
       
    35 	{
       
    36 	SUB_SUITE;
       
    37 
       
    38 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestStoreBroadcastIdListL0001L);
       
    39 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestStoreBroadcastIdListL0002L);
       
    40 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestStoreBroadcastIdListL0003L);
       
    41 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestStoreBroadcastIdListL0004L);
       
    42 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestStoreBroadcastIdListL0005L);
       
    43 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestStart0001L);
       
    44 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestStart0002L);
       
    45 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestStart0004L);
       
    46 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestStart0005L);
       
    47 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestReceiveMessage0001L);
       
    48 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestReceiveMessage0002L);
       
    49 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestReceiveMessage0003L);
       
    50 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestReceiveMessage0004L);
       
    51 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestReceiveMessage0005L);
       
    52 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestGetFilterSetting0001L);
       
    53 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestSetFilterSetting0001L);
       
    54 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestSetFilterSetting0002L);
       
    55 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestSetFilterSetting0003L);
       
    56 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestSetFilterSetting0004L);
       
    57 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestSetFilterSetting0005L);
       
    58 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestGetLanguageFilter0001L);
       
    59 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestSetLanguageFilter0001L);
       
    60 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestNotifyFilterSettingChange0001L);
       
    61 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestNotifyFilterSettingChange0002L);
       
    62 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestNotifyFilterSettingChange0003L);
       
    63 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestNotifyFilterSettingChange0004L);
       
    64 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestNotifyLanguageFilterChange0001L);
       
    65 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestNotifyBroadcastIdListChange0001L);
       
    66 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestGetCaps0001L);
       
    67 	ADD_TEST_STEP_ISO_CPP(CCTsyBroadcastMessagingFU, TestGetCaps0003L);
       
    68 
       
    69 	END_SUITE;
       
    70 	}
       
    71 
       
    72 
       
    73 void CCTsyBroadcastMessagingFU::FillInBroadcastIdListL(CMobilePhoneBroadcastIdList& aList)
       
    74 	{
       
    75 	
       
    76 	RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 entry;
       
    77 	
       
    78 	entry.iId = 7;
       
    79 	aList.AddEntryL(entry);
       
    80 	
       
    81 	entry.iId = 17;
       
    82 	aList.AddEntryL(entry);
       
    83 	
       
    84 	entry.iId = 37;
       
    85 	aList.AddEntryL(entry);
       
    86 	
       
    87 	}
       
    88 
       
    89 //
       
    90 // Actual test cases
       
    91 //
       
    92 
       
    93 
       
    94 /**
       
    95 @SYMTestCaseID BA-CTSY-BRMSG-BSBIL-0001
       
    96 @SYMComponent  telephony_ctsy
       
    97 @SYMTestCaseDesc Test support in CTSY for RMobileBroadcastMessaging::StoreBroadcastIdListL
       
    98 @SYMTestPriority High
       
    99 @SYMTestActions Invokes RMobileBroadcastMessaging::StoreBroadcastIdListL
       
   100 @SYMTestExpectedResults Pass
       
   101 @SYMTestType CT
       
   102 */
       
   103 void CCTsyBroadcastMessagingFU::TestStoreBroadcastIdListL0001L()
       
   104 	{
       
   105 
       
   106 	OpenEtelServerL(EUseExtendedError);
       
   107 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   108 	OpenPhoneL();
       
   109 
       
   110 	RBuf8 data;
       
   111 	CleanupClosePushL(data);
       
   112 
       
   113 	RMobileBroadcastMessaging messaging;
       
   114 	TInt err = messaging.Open(iPhone);
       
   115 	ASSERT_EQUALS(KErrNone, err);
       
   116 	CleanupClosePushL(messaging);
       
   117 
       
   118 	TRequestStatus reqStatus;
       
   119 
       
   120 	CMobilePhoneBroadcastIdList* idList = CMobilePhoneBroadcastIdList::NewL();
       
   121 	CleanupStack::PushL(idList);
       
   122 
       
   123 	RMobileBroadcastMessaging::TMobileBroadcastIdType type
       
   124 	                              = RMobileBroadcastMessaging::EGsmBroadcastId;
       
   125 	
       
   126 	TMockLtsyData2<CMobilePhoneBroadcastIdList*,
       
   127 	               RMobileBroadcastMessaging::TMobileBroadcastIdType>
       
   128 	                                             expectLtsyData(idList, type);
       
   129 	FillInBroadcastIdListL(*idList);
       
   130 	expectLtsyData.SerialiseL(data); 
       
   131 
       
   132  	//-------------------------------------------------------------------------
       
   133 	// TEST A: failure to dispatch request to LTSY
       
   134  	//-------------------------------------------------------------------------
       
   135 
       
   136     messaging.StoreBroadcastIdListL(reqStatus, idList, type);
       
   137 
       
   138 	User::WaitForRequest(reqStatus);
       
   139 	
       
   140 	AssertMockLtsyStatusL();
       
   141 
       
   142 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
   143 
       
   144 
       
   145 	iMockLTSY.NotifyTerminated(reqStatus);
       
   146 	iMockLTSY.CompleteL(EMobileBroadcastMessagingStoreIdList, KErrNone);
       
   147 	User::WaitForRequest(reqStatus);
       
   148 	AssertMockLtsyStatusL();
       
   149 
       
   150 	CleanupStack::PopAndDestroy(4, this); // idList, messaging, data, this
       
   151 
       
   152 	}
       
   153 
       
   154 
       
   155 /**
       
   156 @SYMTestCaseID BA-CTSY-BRMSG-BSBIL-0002
       
   157 @SYMComponent  telephony_ctsy
       
   158 @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileBroadcastMessaging::StoreBroadcastIdListL
       
   159 @SYMTestPriority High
       
   160 @SYMTestActions Invokes cancelling of RMobileBroadcastMessaging::StoreBroadcastIdListL
       
   161 @SYMTestExpectedResults Pass
       
   162 @SYMTestType CT
       
   163 */
       
   164 void CCTsyBroadcastMessagingFU::TestStoreBroadcastIdListL0002L()
       
   165 	{
       
   166 
       
   167 	OpenEtelServerL(EUseExtendedError);
       
   168 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   169 	OpenPhoneL();
       
   170 
       
   171 	RBuf8 data;
       
   172 	CleanupClosePushL(data);
       
   173 
       
   174 	RMobileBroadcastMessaging messaging;
       
   175 	TInt err = messaging.Open(iPhone);
       
   176 	ASSERT_EQUALS(KErrNone, err);
       
   177 	CleanupClosePushL(messaging);
       
   178 
       
   179 	TRequestStatus reqStatus;
       
   180 
       
   181 	CMobilePhoneBroadcastIdList* idList = CMobilePhoneBroadcastIdList::NewL();
       
   182 	CleanupStack::PushL(idList);
       
   183 
       
   184 	RMobileBroadcastMessaging::TMobileBroadcastIdType type
       
   185 	                              = RMobileBroadcastMessaging::EGsmBroadcastId;
       
   186 	
       
   187 	TMockLtsyData2<CMobilePhoneBroadcastIdList*,
       
   188 	               RMobileBroadcastMessaging::TMobileBroadcastIdType>
       
   189 	                                             expectLtsyData(idList, type);
       
   190 	FillInBroadcastIdListL(*idList);
       
   191 	expectLtsyData.SerialiseL(data); 
       
   192 
       
   193 	//-------------------------------------------------------------------------
       
   194 	// Test cancelling of RMobileBroadcastMessaging::StoreBroadcastIdListL
       
   195  	//-------------------------------------------------------------------------
       
   196 
       
   197 
       
   198     messaging.StoreBroadcastIdListL(reqStatus, idList, type);
       
   199 
       
   200 	messaging.CancelAsyncRequest(EMobileBroadcastMessagingStoreIdList);
       
   201 
       
   202 	User::WaitForRequest(reqStatus);
       
   203 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
   204 
       
   205 	AssertMockLtsyStatusL();
       
   206 
       
   207 	CleanupStack::PopAndDestroy(4, this); // idList, messaging, data, this
       
   208 	
       
   209 	}
       
   210 
       
   211 
       
   212 /**
       
   213 @SYMTestCaseID BA-CTSY-BRMSG-BSBIL-0003
       
   214 @SYMComponent  telephony_ctsy
       
   215 @SYMTestCaseDesc Test support in CTSY for RMobileBroadcastMessaging::StoreBroadcastIdListL with bad parameter data
       
   216 @SYMTestPriority High
       
   217 @SYMTestActions Invokes RMobileBroadcastMessaging::StoreBroadcastIdListL with bad parameter data
       
   218 @SYMTestExpectedResults Pass
       
   219 @SYMTestType CT
       
   220 */
       
   221 void CCTsyBroadcastMessagingFU::TestStoreBroadcastIdListL0003L()
       
   222 	{
       
   223 
       
   224 	OpenEtelServerL(EUseExtendedError);
       
   225 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   226 	OpenPhoneL();
       
   227 
       
   228 	RMobileBroadcastMessaging messaging;
       
   229 	TInt err = messaging.Open(iPhone);
       
   230 	ASSERT_EQUALS(KErrNone, err);
       
   231 	CleanupClosePushL(messaging);
       
   232 
       
   233 	//-------------------------------------------------------------------------
       
   234 	// Test A: Test passing wrong version of parameters to
       
   235 	// RMobileBroadcastMessaging::StoreBroadcastIdListL
       
   236  	//-------------------------------------------------------------------------
       
   237 
       
   238 	TRequestStatus reqStatus;
       
   239 	CMobilePhoneBroadcastIdList* idList(NULL);
       
   240 	messaging.StoreBroadcastIdListL(reqStatus, idList, RMobileBroadcastMessaging::EGsmBroadcastId);
       
   241 	
       
   242 	// should never get here because of etel panic
       
   243 	// so if it gets test fails with the assert below
       
   244 	ASSERT_TRUE(EFalse);
       
   245 	
       
   246 	User::WaitForRequest(reqStatus);
       
   247 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
   248 
       
   249 	AssertMockLtsyStatusL();
       
   250 
       
   251 	CleanupStack::PopAndDestroy(2, this); // messaging, this
       
   252 
       
   253 	}
       
   254 
       
   255 
       
   256 /**
       
   257 @SYMTestCaseID BA-CTSY-BRMSG-BSBIL-0004
       
   258 @SYMComponent  telephony_ctsy
       
   259 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileBroadcastMessaging::StoreBroadcastIdListL
       
   260 @SYMTestPriority High
       
   261 @SYMTestActions Invokes multiple client requests to RMobileBroadcastMessaging::StoreBroadcastIdListL
       
   262 @SYMTestExpectedResults Pass
       
   263 @SYMTestType CT
       
   264 */
       
   265 void CCTsyBroadcastMessagingFU::TestStoreBroadcastIdListL0004L()
       
   266 	{
       
   267 
       
   268 	OpenEtelServerL(EUseExtendedError);
       
   269 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   270 	OpenPhoneL();
       
   271 
       
   272 	RBuf8 data;
       
   273 	CleanupClosePushL(data);
       
   274 
       
   275 	RMobileBroadcastMessaging messaging;
       
   276 	TInt err = messaging.Open(iPhone);
       
   277 	ASSERT_EQUALS(KErrNone, err);
       
   278 	CleanupClosePushL(messaging);
       
   279 
       
   280 	TRequestStatus reqStatus;
       
   281 	TRequestStatus reqStatus2;
       
   282 
       
   283 	CMobilePhoneBroadcastIdList* idList = CMobilePhoneBroadcastIdList::NewL();
       
   284 	CleanupStack::PushL(idList);
       
   285 
       
   286 	CMobilePhoneBroadcastIdList* idList2 = CMobilePhoneBroadcastIdList::NewL();
       
   287 	CleanupStack::PushL(idList2);
       
   288 
       
   289 	RMobileBroadcastMessaging::TMobileBroadcastIdType type
       
   290 	                              = RMobileBroadcastMessaging::EGsmBroadcastId;
       
   291 	
       
   292 	TMockLtsyData2<CMobilePhoneBroadcastIdList*,
       
   293 	               RMobileBroadcastMessaging::TMobileBroadcastIdType>
       
   294 	                                             expectLtsyData(idList, type);
       
   295 	FillInBroadcastIdListL(*idList);
       
   296 	expectLtsyData.SerialiseL(data); 
       
   297 
       
   298 	// Open second client
       
   299 	RTelServer telServer2;
       
   300 	TInt ret = telServer2.Connect();
       
   301 	ASSERT_EQUALS(KErrNone, ret);
       
   302 	CleanupClosePushL(telServer2);
       
   303 
       
   304 	RMobilePhone phone2;
       
   305 	ret = phone2.Open(telServer2, KMmTsyPhoneName);
       
   306 	ASSERT_EQUALS(KErrNone, ret);
       
   307 	CleanupClosePushL(phone2);
       
   308 
       
   309 	RMobileBroadcastMessaging messaging2;
       
   310 	err = messaging2.Open(phone2);
       
   311 	ASSERT_EQUALS(KErrNone, err);
       
   312 	CleanupClosePushL(messaging2);
       
   313 
       
   314 	//-------------------------------------------------------------------------
       
   315 	// Test A: Test multiple clients requesting RMobileBroadcastMessaging::StoreBroadcastIdListL
       
   316  	//-------------------------------------------------------------------------
       
   317 
       
   318     messaging.StoreBroadcastIdListL(reqStatus, idList, RMobileBroadcastMessaging::EGsmBroadcastId);
       
   319 	messaging2.StoreBroadcastIdListL(reqStatus2, idList2, RMobileBroadcastMessaging::EGsmBroadcastId);
       
   320 
       
   321 	User::WaitForRequest(reqStatus);
       
   322 	User::WaitForRequest(reqStatus2);
       
   323 
       
   324 	AssertMockLtsyStatusL();
       
   325 
       
   326 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
   327 	ASSERT_EQUALS(KErrNotSupported, reqStatus2.Int());
       
   328 
       
   329 	CleanupStack::PopAndDestroy(8, this); // messaging2, phone2, telServer2, idList2, idList, messaging, data, this
       
   330 
       
   331 	}
       
   332 
       
   333 
       
   334 /**
       
   335 @SYMTestCaseID BA-CTSY-BRMSG-BRM-0005
       
   336 @SYMComponent  telephony_ctsy
       
   337 @SYMTestCaseDesc Test support in CTSY for RMobileBroadcastMessaging::StoreBroadcastIdListL with timeout
       
   338 @SYMTestPriority High
       
   339 @SYMTestActions Invokes RMobileBroadcastMessaging::StoreBroadcastIdListL and tests for timeout
       
   340 @SYMTestExpectedResults Pass
       
   341 @SYMTestType CT
       
   342 */
       
   343 void CCTsyBroadcastMessagingFU::TestStoreBroadcastIdListL0005L()
       
   344 	{
       
   345 
       
   346 	OpenEtelServerL(EUseExtendedError);
       
   347 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   348 	OpenPhoneL();
       
   349 
       
   350 	RBuf8 data;
       
   351 	CleanupClosePushL(data);
       
   352 
       
   353 	RMobileBroadcastMessaging messaging;
       
   354 	TInt err = messaging.Open(iPhone);
       
   355 	ASSERT_EQUALS(KErrNone, err);
       
   356 	CleanupClosePushL(messaging);
       
   357 
       
   358 	TRequestStatus reqStatus;
       
   359 
       
   360 	CMobilePhoneBroadcastIdList* idList = CMobilePhoneBroadcastIdList::NewL();
       
   361 	CleanupStack::PushL(idList);
       
   362 
       
   363 	RMobileBroadcastMessaging::TMobileBroadcastIdType type
       
   364 	                              = RMobileBroadcastMessaging::EGsmBroadcastId;
       
   365 	
       
   366 	TMockLtsyData2<CMobilePhoneBroadcastIdList*,
       
   367 	               RMobileBroadcastMessaging::TMobileBroadcastIdType>
       
   368 	                                             expectLtsyData(idList, type);
       
   369 	FillInBroadcastIdListL(*idList);
       
   370 	expectLtsyData.SerialiseL(data); 
       
   371 
       
   372 	//-------------------------------------------------------------------------
       
   373 	// Test A: Test timeout of RMobileBroadcastMessaging::StoreBroadcastIdListL
       
   374 	//-------------------------------------------------------------------------
       
   375 
       
   376 	iMockLTSY.ExpectL(EMobileBroadcastMessagingStoreIdList, data);
       
   377 
       
   378 	messaging.StoreBroadcastIdListL(reqStatus, idList, type);
       
   379 
       
   380 	User::WaitForRequest(reqStatus);
       
   381 
       
   382 	AssertMockLtsyStatusL();
       
   383 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
   384 
       
   385 	CleanupStack::PopAndDestroy(4, this); // idList, messaging, data, this
       
   386 
       
   387 	}
       
   388 
       
   389 /**
       
   390 @SYMTestCaseID BA-CTSY-BRMSG-RMPBLN-0001
       
   391 @SYMComponent  telephony_ctsy
       
   392 @SYMTestCaseDesc Test support in CTSY for CRetrieveMobilePhoneBroadcastIdList::Start
       
   393 @SYMTestPriority High
       
   394 @SYMTestActions Invokes CRetrieveMobilePhoneBroadcastIdList::Start
       
   395 @SYMTestExpectedResults Pass
       
   396 @SYMTestType CT
       
   397 */
       
   398 void CCTsyBroadcastMessagingFU::TestStart0001L()
       
   399 	{
       
   400 
       
   401 	OpenEtelServerL(EUseExtendedError);
       
   402 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   403 	OpenPhoneL();
       
   404 
       
   405 	CFilteringActiveScheduler scheduler;
       
   406 	CActiveScheduler::Install(&scheduler);
       
   407 	
       
   408 	RMobileBroadcastMessaging messaging;
       
   409 	TInt err = messaging.Open(iPhone);
       
   410 	ASSERT_EQUALS(KErrNone, err);
       
   411 	CleanupClosePushL(messaging);
       
   412 	
       
   413 	CRetrieveMobilePhoneBroadcastIdList* retrieveMobilePhoneBroadcastIdList =
       
   414 	                                    CRetrieveMobilePhoneBroadcastIdList::NewL(messaging);
       
   415 	CleanupStack::PushL(retrieveMobilePhoneBroadcastIdList);
       
   416 
       
   417 	CActiveRetriever::ResetRequestsNumber();
       
   418 	CActiveRetriever activeMobilePhoneBroadcastIdListRetriever(*retrieveMobilePhoneBroadcastIdList);
       
   419 	scheduler.AddRetrieverL(activeMobilePhoneBroadcastIdListRetriever);
       
   420 
       
   421 	// prepare mockLtsy data
       
   422 	RMobileBroadcastMessaging::TMobileBroadcastIdType type(RMobileBroadcastMessaging::EGsmBroadcastId);
       
   423 	TMockLtsyData1<RMobileBroadcastMessaging::TMobileBroadcastIdType> expectLtsyData(type);
       
   424 	RBuf8 expData;
       
   425 	CleanupClosePushL(expData);
       
   426 	expectLtsyData.SerialiseL(expData);
       
   427 
       
   428 	CMobilePhoneBroadcastIdList* completeList = CMobilePhoneBroadcastIdList::NewL();
       
   429 	CleanupStack::PushL(completeList);
       
   430 	FillInBroadcastIdListL(*completeList);
       
   431 	
       
   432 	RBuf8 completeData;
       
   433 	CleanupClosePushL(completeData);
       
   434 	TSerializer<CMobilePhoneBroadcastIdList>::SerialiseL(*completeList, completeData);
       
   435 
       
   436 
       
   437 	retrieveMobilePhoneBroadcastIdList->Start(activeMobilePhoneBroadcastIdListRetriever.Status(), type);
       
   438 	activeMobilePhoneBroadcastIdListRetriever.Activate();
       
   439 	scheduler.StartScheduler();
       
   440 
       
   441 	AssertMockLtsyStatusL();
       
   442 
       
   443 	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
       
   444 	ASSERT_EQUALS(KErrNotSupported, activeMobilePhoneBroadcastIdListRetriever.iStatus.Int());
       
   445 
       
   446  	//-------------------------------------------------------------------------
       
   447 	// TEST E: Unsolicited completion of CAsyncRetrieveAuthorizationInfo::Start
       
   448 	// from LTSY.
       
   449  	//-------------------------------------------------------------------------
       
   450 
       
   451 	TRequestStatus mockLtsyStatus;
       
   452 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
   453 	iMockLTSY.CompleteL(EMobileBroadcastMessagingGetIdListPhase1, KErrNone, completeData);
       
   454 	User::WaitForRequest(mockLtsyStatus);
       
   455 	AssertMockLtsyStatusL();
       
   456 	CleanupStack::PopAndDestroy(5, &messaging); // list, completeData, completeList, expData, retrieveMobilePhoneBroadcastIdList, messaging
       
   457 	CActiveScheduler::Install(NULL);
       
   458 	CleanupStack::PopAndDestroy(this);
       
   459 	
       
   460 	}
       
   461 
       
   462 
       
   463 /**
       
   464 @SYMTestCaseID BA-CTSY-BRMSG-RMPBLN-0002
       
   465 @SYMComponent  telephony_ctsy
       
   466 @SYMTestCaseDesc Test support in CTSY for cancelling of CRetrieveMobilePhoneBroadcastIdList::Start
       
   467 @SYMTestPriority High
       
   468 @SYMTestActions Invokes cancelling of CRetrieveMobilePhoneBroadcastIdList::Start
       
   469 @SYMTestExpectedResults Pass
       
   470 @SYMTestType CT
       
   471 */
       
   472 void CCTsyBroadcastMessagingFU::TestStart0002L()
       
   473 	{
       
   474 
       
   475 	OpenEtelServerL(EUseExtendedError);
       
   476 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   477 	OpenPhoneL();
       
   478 
       
   479 	CFilteringActiveScheduler scheduler;
       
   480 	CActiveScheduler::Install(&scheduler);
       
   481 	
       
   482 	RMobileBroadcastMessaging messaging;
       
   483 	TInt err = messaging.Open(iPhone);
       
   484 	ASSERT_EQUALS(KErrNone, err);
       
   485 	CleanupClosePushL(messaging);
       
   486 	
       
   487 	CRetrieveMobilePhoneBroadcastIdList* retrieveMobilePhoneBroadcastIdList =
       
   488 	                                      CRetrieveMobilePhoneBroadcastIdList::NewL(messaging);
       
   489 	CleanupStack::PushL(retrieveMobilePhoneBroadcastIdList);
       
   490 
       
   491 	CActiveRetriever::ResetRequestsNumber();
       
   492 	CActiveRetriever activeMobilePhoneBroadcastIdListRetriever(*retrieveMobilePhoneBroadcastIdList);
       
   493 	scheduler.AddRetrieverL(activeMobilePhoneBroadcastIdListRetriever);
       
   494 
       
   495 	// prepare mockLtsy data
       
   496 	RMobileBroadcastMessaging::TMobileBroadcastIdType type(RMobileBroadcastMessaging::EGsmBroadcastId);
       
   497 	TMockLtsyData1<RMobileBroadcastMessaging::TMobileBroadcastIdType> expectLtsyData(type);
       
   498 	RBuf8 expData;
       
   499 	CleanupClosePushL(expData);
       
   500 	expectLtsyData.SerialiseL(expData);
       
   501 
       
   502 	CMobilePhoneBroadcastIdList* completeList = CMobilePhoneBroadcastIdList::NewL();
       
   503 	CleanupStack::PushL(completeList);
       
   504 	FillInBroadcastIdListL(*completeList);
       
   505 	
       
   506 	RBuf8 completeData;
       
   507 	CleanupClosePushL(completeData);
       
   508 	TSerializer<CMobilePhoneBroadcastIdList>::SerialiseL(*completeList, completeData);
       
   509 
       
   510  	//-------------------------------------------------------------------------
       
   511 	// Test cancelling of CRetrieveMobilePhoneBroadcastIdList::Start
       
   512  	//-------------------------------------------------------------------------
       
   513  	
       
   514 	retrieveMobilePhoneBroadcastIdList->Start(activeMobilePhoneBroadcastIdListRetriever.Status(), type);
       
   515 	activeMobilePhoneBroadcastIdListRetriever.Activate(CActiveRetriever::ECaseGeneralCancelCase);
       
   516 	scheduler.StartScheduler();
       
   517 
       
   518 	AssertMockLtsyStatusL();
       
   519 
       
   520 	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
       
   521 	ASSERT_EQUALS(KErrCancel, activeMobilePhoneBroadcastIdListRetriever.iStatus.Int());
       
   522 	
       
   523 
       
   524 	retrieveMobilePhoneBroadcastIdList->Start(activeMobilePhoneBroadcastIdListRetriever.Status(),
       
   525 	                                          RMobileBroadcastMessaging::EGsmBroadcastId);
       
   526 	activeMobilePhoneBroadcastIdListRetriever.Activate(CActiveRetriever::ECasePhase2Cancel);
       
   527 	scheduler.StartScheduler();
       
   528 
       
   529 	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
       
   530 	ASSERT_EQUALS(KErrNotSupported, activeMobilePhoneBroadcastIdListRetriever.iStatus.Int());
       
   531 	
       
   532 	AssertMockLtsyStatusL();
       
   533 
       
   534 	CleanupStack::PopAndDestroy(5); // completeData, completeList, expData, retrieveMobilePhoneBroadcastIdList, messaging
       
   535 	CActiveScheduler::Install(NULL);
       
   536 	CleanupStack::PopAndDestroy(this);
       
   537 	
       
   538 	}
       
   539 
       
   540 
       
   541 /**
       
   542 @SYMTestCaseID BA-CTSY-BRMSG-RMPBLN-0004
       
   543 @SYMComponent  telephony_ctsy
       
   544 @SYMTestCaseDesc Test support in CTSY for multiple client requests to CRetrieveMobilePhoneBroadcastIdList::Start
       
   545 @SYMTestPriority High
       
   546 @SYMTestActions Invokes multiple client requests to CRetrieveMobilePhoneBroadcastIdList::Start
       
   547 @SYMTestExpectedResults Pass
       
   548 @SYMTestType CT
       
   549 */
       
   550 void CCTsyBroadcastMessagingFU::TestStart0004L()
       
   551 	{
       
   552 					
       
   553 	OpenEtelServerL(EUseExtendedError);
       
   554 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   555 	OpenPhoneL();
       
   556 
       
   557 	CFilteringActiveScheduler scheduler;
       
   558 	CActiveScheduler::Install(&scheduler);
       
   559 	
       
   560 	RMobileBroadcastMessaging messaging;
       
   561 	TInt err = messaging.Open(iPhone);
       
   562 	ASSERT_EQUALS(KErrNone, err);
       
   563 	CleanupClosePushL(messaging);
       
   564 	
       
   565 	CRetrieveMobilePhoneBroadcastIdList* retrieveMobilePhoneBroadcastIdList =
       
   566 	                                             CRetrieveMobilePhoneBroadcastIdList::NewL(messaging);
       
   567 	CleanupStack::PushL(retrieveMobilePhoneBroadcastIdList);
       
   568 
       
   569 	CActiveRetriever::ResetRequestsNumber();
       
   570 	CActiveRetriever activeMobilePhoneBroadcastIdListRetriever(*retrieveMobilePhoneBroadcastIdList);
       
   571 	scheduler.AddRetrieverL(activeMobilePhoneBroadcastIdListRetriever);
       
   572 
       
   573 	// Open second client
       
   574 	RTelServer telServer2;
       
   575 	TInt ret = telServer2.Connect();
       
   576 	ASSERT_EQUALS(KErrNone, ret);
       
   577 	CleanupClosePushL(telServer2);
       
   578 
       
   579 	RMobilePhone phone2;
       
   580 	ret = phone2.Open(telServer2, KMmTsyPhoneName);
       
   581 	ASSERT_EQUALS(KErrNone, ret);
       
   582 	CleanupClosePushL(phone2);
       
   583 
       
   584 	RMobileBroadcastMessaging messaging2;
       
   585 	err = messaging2.Open(phone2);
       
   586 	ASSERT_EQUALS(KErrNone, err);
       
   587 	CleanupClosePushL(messaging2);
       
   588 	
       
   589 	CRetrieveMobilePhoneBroadcastIdList* retrieveMobilePhoneBroadcastIdList2 =
       
   590 	                                              CRetrieveMobilePhoneBroadcastIdList::NewL(messaging2);
       
   591 	CleanupStack::PushL(retrieveMobilePhoneBroadcastIdList2);
       
   592 
       
   593 	CActiveRetriever::ResetRequestsNumber();
       
   594 	CActiveRetriever activeMobilePhoneBroadcastIdListRetriever2(*retrieveMobilePhoneBroadcastIdList2);
       
   595 	scheduler.AddRetrieverL(activeMobilePhoneBroadcastIdListRetriever2);
       
   596 
       
   597 	// prepare mockLtsy data
       
   598 	RMobileBroadcastMessaging::TMobileBroadcastIdType type(RMobileBroadcastMessaging::EGsmBroadcastId);
       
   599 	TMockLtsyData1<RMobileBroadcastMessaging::TMobileBroadcastIdType> expectLtsyData(type);
       
   600 	RBuf8 expData;
       
   601 	CleanupClosePushL(expData);
       
   602 	expectLtsyData.SerialiseL(expData);
       
   603 
       
   604 	CMobilePhoneBroadcastIdList* completeList = CMobilePhoneBroadcastIdList::NewL();
       
   605 	CleanupStack::PushL(completeList);
       
   606 	FillInBroadcastIdListL(*completeList);
       
   607 	
       
   608 	RBuf8 completeData;
       
   609 	CleanupClosePushL(completeData);
       
   610 	TSerializer<CMobilePhoneBroadcastIdList>::SerialiseL(*completeList, completeData);
       
   611 
       
   612 	//-------------------------------------------------------------------------
       
   613 	// Test A: Test multiple clients requesting CRetrieveMobilePhoneBroadcastIdList::Start
       
   614  	//-------------------------------------------------------------------------
       
   615 
       
   616 	retrieveMobilePhoneBroadcastIdList->Start(activeMobilePhoneBroadcastIdListRetriever.Status(),
       
   617 	                                          RMobileBroadcastMessaging::EGsmBroadcastId);
       
   618 	activeMobilePhoneBroadcastIdListRetriever.Activate();
       
   619 
       
   620 	retrieveMobilePhoneBroadcastIdList2->Start(activeMobilePhoneBroadcastIdListRetriever2.Status(),
       
   621 	                                           RMobileBroadcastMessaging::ECdmaBroadcastId);
       
   622 	activeMobilePhoneBroadcastIdListRetriever2.Activate();
       
   623 
       
   624 	scheduler.StartScheduler();
       
   625 
       
   626 	AssertMockLtsyStatusL();
       
   627 
       
   628 	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
       
   629 	ASSERT_EQUALS(KErrNotSupported, activeMobilePhoneBroadcastIdListRetriever.iStatus.Int());
       
   630 	ASSERT_EQUALS(KErrNotSupported, activeMobilePhoneBroadcastIdListRetriever2.iStatus.Int());
       
   631 	
       
   632 
       
   633 	CleanupStack::PopAndDestroy(9, &messaging); // completeData, completeList, expData
       
   634 	                    // retrieveMobilePhoneBroadcastIdList2, messaging2, phone2, telServer2
       
   635 	                    // retrieveMobilePhoneBroadcastIdList, messaging
       
   636 	CActiveScheduler::Install(NULL);
       
   637 	CleanupStack::PopAndDestroy(this);
       
   638 
       
   639 	}
       
   640 
       
   641 
       
   642 /**
       
   643 @SYMTestCaseID BA-CTSY-BRMSG-RMPBLN-0005
       
   644 @SYMComponent  telephony_ctsy
       
   645 @SYMTestCaseDesc Test support in CTSY for CRetrieveMobilePhoneBroadcastIdList::Start with timeout
       
   646 @SYMTestPriority High
       
   647 @SYMTestActions Invokes CRetrieveMobilePhoneBroadcastIdList::Start and tests for timeout
       
   648 @SYMTestExpectedResults Pass
       
   649 @SYMTestType CT
       
   650 */
       
   651 void CCTsyBroadcastMessagingFU::TestStart0005L()
       
   652 	{
       
   653 
       
   654 	OpenEtelServerL(EUseExtendedError);
       
   655 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   656 	OpenPhoneL();
       
   657 
       
   658 	CFilteringActiveScheduler scheduler;
       
   659 	CActiveScheduler::Install(&scheduler);
       
   660 	
       
   661 	RMobileBroadcastMessaging messaging;
       
   662 	TInt err = messaging.Open(iPhone);
       
   663 	ASSERT_EQUALS(KErrNone, err);
       
   664 	CleanupClosePushL(messaging);
       
   665 	
       
   666 	CRetrieveMobilePhoneBroadcastIdList* retrieveMobilePhoneBroadcastIdList =
       
   667 	                                    CRetrieveMobilePhoneBroadcastIdList::NewL(messaging);
       
   668 	CleanupStack::PushL(retrieveMobilePhoneBroadcastIdList);
       
   669 
       
   670 	CActiveRetriever::ResetRequestsNumber();
       
   671 	CActiveRetriever activeMobilePhoneBroadcastIdListRetriever(*retrieveMobilePhoneBroadcastIdList);
       
   672 	scheduler.AddRetrieverL(activeMobilePhoneBroadcastIdListRetriever);
       
   673 
       
   674 	// prepare mockLtsy data
       
   675 	RMobileBroadcastMessaging::TMobileBroadcastIdType type(RMobileBroadcastMessaging::EGsmBroadcastId);
       
   676 	TMockLtsyData1<RMobileBroadcastMessaging::TMobileBroadcastIdType> expectLtsyData(type);
       
   677 	RBuf8 expData;
       
   678 	CleanupClosePushL(expData);
       
   679 	expectLtsyData.SerialiseL(expData);
       
   680 
       
   681 	//-------------------------------------------------------------------------
       
   682 	// TEST C: Successful completion request of
       
   683 	// CRetrieveMobilePhoneBroadcastIdList::Start.
       
   684 	//-------------------------------------------------------------------------
       
   685 
       
   686 	retrieveMobilePhoneBroadcastIdList->Start(activeMobilePhoneBroadcastIdListRetriever.Status(), type);
       
   687 	activeMobilePhoneBroadcastIdListRetriever.Activate();
       
   688 	scheduler.StartScheduler();
       
   689 
       
   690 	AssertMockLtsyStatusL();
       
   691 
       
   692 	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
       
   693 	ASSERT_EQUALS(KErrNotSupported, activeMobilePhoneBroadcastIdListRetriever.iStatus.Int());
       
   694 
       
   695 	CleanupStack::PopAndDestroy(3, &messaging); // expData, retrieveMobilePhoneBroadcastIdList, messaging
       
   696 	CActiveScheduler::Install(NULL);
       
   697 	CleanupStack::PopAndDestroy(this);
       
   698 	
       
   699 	}
       
   700 
       
   701 
       
   702 /**
       
   703 @SYMTestCaseID BA-CTSY-BRMSG-BRM-0001
       
   704 @SYMComponent  telephony_ctsy
       
   705 @SYMTestCaseDesc Test support in CTSY for RMobileBroadcastMessaging::ReceiveMessage
       
   706 @SYMTestPriority High
       
   707 @SYMTestActions Invokes RMobileBroadcastMessaging::ReceiveMessage
       
   708 @SYMTestExpectedResults Pass
       
   709 @SYMTestType CT
       
   710 */
       
   711 void CCTsyBroadcastMessagingFU::TestReceiveMessage0001L()
       
   712 	{
       
   713 
       
   714 	OpenEtelServerL(EUseExtendedError);
       
   715 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   716 	OpenPhoneL();
       
   717 
       
   718 	RBuf8 data;
       
   719 	CleanupClosePushL(data);
       
   720 
       
   721  	//-------------------------------------------------------------------------
       
   722 	// TEST A: failure to dispatch request to LTSY
       
   723  	//-------------------------------------------------------------------------
       
   724 
       
   725 	RMobileBroadcastMessaging messaging;
       
   726 	TInt err = messaging.Open(iPhone);
       
   727 	ASSERT_EQUALS(KErrNone, err);
       
   728 	CleanupClosePushL(messaging);
       
   729 
       
   730 	TCbsCbmiAndLangAndFilter expectData;
       
   731 	expectData.iSetting = RMobileBroadcastMessaging::EBroadcastAcceptAll;
       
   732 	expectData.iCbmiStorage = KNullDesC; // deprecated
       
   733 	expectData.iLanguageStorage = KNullDesC; // deprecated
       
   734 
       
   735 	TMockLtsyData1<TCbsCbmiAndLangAndFilter> expectLtsyData(expectData);
       
   736     expectLtsyData.SerialiseL(data); 
       
   737     iMockLTSY.ExpectL(EMobileBroadcastMessagingReceiveMessage, data, KErrNotSupported);
       
   738 
       
   739 	TRequestStatus reqStatus;
       
   740 	RMobileBroadcastMessaging::TBroadcastPageData msgData;
       
   741 	RMobileBroadcastMessaging::TMobileBroadcastAttributesV1 attributes;
       
   742 	RMobileBroadcastMessaging::TMobileBroadcastAttributesV1Pckg msgAttributes(attributes);
       
   743 	messaging.ReceiveMessage(reqStatus, msgData, msgAttributes);
       
   744 	
       
   745 	User::WaitForRequest(reqStatus);
       
   746 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
   747 
       
   748 	AssertMockLtsyStatusL();
       
   749 
       
   750 	//-------------------------------------------------------------------------
       
   751 	// TEST B: failure on completion of pending request from LTSY->CTSY
       
   752  	//-------------------------------------------------------------------------
       
   753 
       
   754     data.Close();
       
   755     expectLtsyData.SerialiseL(data); 
       
   756     iMockLTSY.ExpectL(EMobileBroadcastMessagingReceiveMessage, data);
       
   757 
       
   758     iMockLTSY.CompleteL(EMobileBroadcastMessagingReceiveMessage, KErrGeneral);
       
   759 
       
   760 	messaging.ReceiveMessage(reqStatus, msgData, msgAttributes);
       
   761 	
       
   762 	User::WaitForRequest(reqStatus);
       
   763 	ASSERT_EQUALS(KErrGeneral, reqStatus.Int());
       
   764 
       
   765 	AssertMockLtsyStatusL();
       
   766 
       
   767 	//-------------------------------------------------------------------------
       
   768 	// TEST B: increase coverage (completion with EMmTsyGsmBroadcastNotifyMessageReceived IPC)
       
   769  	//-------------------------------------------------------------------------
       
   770 
       
   771     data.Close();
       
   772     expectLtsyData.SerialiseL(data); 
       
   773     iMockLTSY.ExpectL(EMobileBroadcastMessagingReceiveMessage, data);
       
   774 
       
   775 	TGsmCbsMsg cbsMsg;
       
   776 	cbsMsg.iCbsMsg.Copy(_L("Cool!"));
       
   777 	TMockLtsyData1<TGsmCbsMsg> completeLtsyData(cbsMsg);
       
   778 	data.Close();
       
   779     completeLtsyData.SerialiseL(data); 
       
   780     iMockLTSY.CompleteL(EMmTsyGsmBroadcastNotifyMessageReceived, KErrGeneral, data);
       
   781 
       
   782 	messaging.ReceiveMessage(reqStatus, msgData, msgAttributes);
       
   783 	
       
   784 	User::WaitForRequest(reqStatus);
       
   785 	ASSERT_EQUALS(KErrGeneral, reqStatus.Int());
       
   786 
       
   787 	AssertMockLtsyStatusL();
       
   788 
       
   789 	//-------------------------------------------------------------------------
       
   790 	// TEST B: increase coverage (completion with EMmTsyWcdmaBroadcastNotifyMessageReceived IPC)
       
   791  	//-------------------------------------------------------------------------
       
   792 
       
   793     data.Close();
       
   794     expectLtsyData.SerialiseL(data); 
       
   795     iMockLTSY.ExpectL(EMobileBroadcastMessagingReceiveMessage, data);
       
   796 
       
   797     iMockLTSY.CompleteL(EMmTsyWcdmaBroadcastNotifyMessageReceived, KErrGeneral, KNullDesC8);
       
   798 
       
   799 	RMobileBroadcastMessaging::TMobileBroadcastAttributesV2 wcdmaAttributes;
       
   800 	RMobileBroadcastMessaging::TMobileBroadcastAttributesV2Pckg wcdmaMsgAttributes(wcdmaAttributes);
       
   801 	messaging.ReceiveMessage(reqStatus, msgData, wcdmaMsgAttributes);
       
   802 	
       
   803 	User::WaitForRequest(reqStatus);
       
   804 	ASSERT_EQUALS(KErrGeneral, reqStatus.Int());
       
   805 
       
   806 	AssertMockLtsyStatusL();
       
   807 
       
   808  	//-------------------------------------------------------------------------
       
   809 	// TEST C: Successful completion request of
       
   810 	// RMobileBroadcastMessaging::ReceiveMessage when result is not cached.
       
   811  	//-------------------------------------------------------------------------
       
   812 
       
   813     data.Close();
       
   814     expectLtsyData.SerialiseL(data); 
       
   815     iMockLTSY.ExpectL(EMobileBroadcastMessagingReceiveMessage, data);
       
   816 
       
   817     iMockLTSY.CompleteL(EMobileBroadcastMessagingReceiveMessage, KErrNone);
       
   818 
       
   819     data.Close();
       
   820     completeLtsyData.SerialiseL(data); 
       
   821     iMockLTSY.CompleteL(EMmTsyGsmBroadcastNotifyMessageReceived, KErrNone, data);
       
   822 
       
   823 	messaging.ReceiveMessage(reqStatus, msgData, msgAttributes);
       
   824 	
       
   825 	User::WaitForRequest(reqStatus);
       
   826 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
   827 	ASSERT_EQUALS(cbsMsg.iCbsMsg, msgData);
       
   828 	TUint32 expectedFlags(RMobileBroadcastMessaging::KBroadcastDataFormat);
       
   829 	RMobileBroadcastMessaging::TMobileBroadcastDataFormat
       
   830 	                      expectedFormat(RMobileBroadcastMessaging::EFormatGsmTpdu);
       
   831 	ASSERT_EQUALS(expectedFlags, attributes.iFlags);
       
   832 	ASSERT_EQUALS(expectedFormat, attributes.iFormat);
       
   833 
       
   834 	AssertMockLtsyStatusL();
       
   835 
       
   836 	//-------------------------------------------------------------------------
       
   837 	// TEST C: increase coverage (completion with multypage message type)
       
   838  	//-------------------------------------------------------------------------
       
   839 
       
   840     expectData.iSetting = RMobileBroadcastMessaging::EBroadcastAcceptNone;
       
   841     data.Close();
       
   842     expectLtsyData.SerialiseL(data); 
       
   843     iMockLTSY.ExpectL(EMobileBroadcastMessagingReceiveMessageCancel, data, KErrNotSupported);
       
   844     
       
   845     expectData.iSetting = RMobileBroadcastMessaging::EBroadcastAcceptAll;
       
   846     data.Close();
       
   847     expectLtsyData.SerialiseL(data);
       
   848     iMockLTSY.ExpectL(EMobileBroadcastMessagingReceiveMessage, data);
       
   849 
       
   850 	messaging.ReceiveMessage(reqStatus, msgData, wcdmaMsgAttributes);
       
   851 
       
   852 	CArrayPtrFlat<TWcdmaCbsMsg>* wcdmaCbsMsgArray = new ( ELeave ) CArrayPtrFlat<TWcdmaCbsMsg>( 1 );
       
   853 	CleanupStack::PushL(wcdmaCbsMsgArray);
       
   854 
       
   855 	TWcdmaCbsMsg wcdmaCbsMsg0;
       
   856 	wcdmaCbsMsg0.iWcdmaCbsData.Copy(_L("0cool0"));
       
   857 	wcdmaCbsMsg0.iSbNumber = 1;
       
   858 	wcdmaCbsMsg0.iNumberOfPages = 2;
       
   859 	wcdmaCbsMsg0.iMessageType = 3;
       
   860 	wcdmaCbsMsg0.iMessageId = 4;
       
   861 	wcdmaCbsMsg0.iSerialNum = 5;
       
   862 	wcdmaCbsMsg0.iDCS = 6;
       
   863 	wcdmaCbsMsg0.iInfoLength = wcdmaCbsMsg0.iWcdmaCbsData.Length();
       
   864 	wcdmaCbsMsgArray->AppendL(&wcdmaCbsMsg0, 1);
       
   865     
       
   866 	TUint8 wcdmaPageNumber(1);
       
   867 	TMockLtsyData2<CArrayPtrFlat< TWcdmaCbsMsg >*, TUint8> completeWcdmaLtsyData(wcdmaCbsMsgArray, wcdmaPageNumber);
       
   868 	data.Close();
       
   869 	completeWcdmaLtsyData.SerialiseL(data);
       
   870 
       
   871 	iMockLTSY.CompleteL(EMobileBroadcastMessagingReceiveMessage, KErrNone);
       
   872 
       
   873 	TRequestStatus mockLtsyStatus;
       
   874 	iMockLTSY.NotifyTerminated(mockLtsyStatus);	
       
   875 	iMockLTSY.CompleteL(EMmTsyWcdmaBroadcastNotifyMessageReceived, KErrNone, data);
       
   876 	User::WaitForRequest(mockLtsyStatus);
       
   877 	
       
   878 	User::WaitForRequest(reqStatus);
       
   879 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
   880 	
       
   881 	// generate a message from the original message with the page number at the end
       
   882 	TBuf8<RMobileBroadcastMessaging::KBroadcastPageSize>  messageWithPageNumber;
       
   883 	messageWithPageNumber.Copy(wcdmaCbsMsg0.iWcdmaCbsData);
       
   884 	_LIT8(KFormat, "%c");
       
   885 	TBuf8<2> abc(KFormat);
       
   886 	// Append pagenumber to end of CBS message     
       
   887 	messageWithPageNumber.AppendFormat( abc, wcdmaPageNumber);
       
   888 
       
   889 	ASSERT_EQUALS(messageWithPageNumber,  msgData);
       
   890 
       
   891 	ASSERT_EQUALS(expectedFlags,               wcdmaAttributes.iFlags);
       
   892 	expectedFormat = RMobileBroadcastMessaging::EFormatWcdmaTpdu;
       
   893 	ASSERT_EQUALS(expectedFormat,              wcdmaAttributes.iFormat);
       
   894 	ASSERT_EQUALS(wcdmaCbsMsg0.iNumberOfPages, wcdmaAttributes.iNumberOfPages);
       
   895 	ASSERT_EQUALS(wcdmaCbsMsg0.iMessageType,   wcdmaAttributes.iMessageType);
       
   896 	ASSERT_EQUALS(wcdmaCbsMsg0.iMessageId,     wcdmaAttributes.iMessageId);
       
   897 	ASSERT_EQUALS(wcdmaCbsMsg0.iSerialNum,     wcdmaAttributes.iSerialNum);
       
   898 	ASSERT_EQUALS(wcdmaCbsMsg0.iDCS,           wcdmaAttributes.iDCS);
       
   899 
       
   900 	AssertMockLtsyStatusL();
       
   901 
       
   902 	//-------------------------------------------------------------------------
       
   903 	// TEST C: increase coverage (completion with multypage message type)
       
   904 	// this time 3 pages
       
   905  	//-------------------------------------------------------------------------
       
   906 
       
   907 	messaging.ReceiveMessage(reqStatus, msgData, wcdmaMsgAttributes);
       
   908 
       
   909 	TWcdmaCbsMsg wcdmaCbsMsg1;
       
   910 	wcdmaCbsMsg1.iWcdmaCbsData.Copy(_L("1cool1"));
       
   911 	wcdmaCbsMsg1.iSbNumber = 8;
       
   912 	wcdmaCbsMsg1.iNumberOfPages = 7;
       
   913 	wcdmaCbsMsg1.iMessageType = 6;
       
   914 	wcdmaCbsMsg1.iMessageId = 5;
       
   915 	wcdmaCbsMsg1.iSerialNum = 4;
       
   916 	wcdmaCbsMsg1.iDCS = 3;
       
   917 	wcdmaCbsMsg1.iInfoLength = wcdmaCbsMsg1.iWcdmaCbsData.Length();
       
   918 	wcdmaCbsMsgArray->AppendL(&wcdmaCbsMsg1, 1);
       
   919 	
       
   920 	TWcdmaCbsMsg wcdmaCbsMsg2;
       
   921 	wcdmaCbsMsg2.iWcdmaCbsData.Copy(_L("2cool2"));
       
   922 	wcdmaCbsMsg2.iSbNumber = 80;
       
   923 	wcdmaCbsMsg2.iNumberOfPages = 70;
       
   924 	wcdmaCbsMsg2.iMessageType = 60;
       
   925 	wcdmaCbsMsg2.iMessageId = 50;
       
   926 	wcdmaCbsMsg2.iSerialNum = 40;
       
   927 	wcdmaCbsMsg2.iDCS = 30;
       
   928 	wcdmaCbsMsg2.iInfoLength = wcdmaCbsMsg2.iWcdmaCbsData.Length();
       
   929 	wcdmaCbsMsgArray->AppendL(&wcdmaCbsMsg2, 1);
       
   930 
       
   931 	wcdmaPageNumber = 3;
       
   932     data.Close();
       
   933 	completeWcdmaLtsyData.SerialiseL(data); 
       
   934 
       
   935 	iMockLTSY.NotifyTerminated(mockLtsyStatus);	
       
   936     iMockLTSY.CompleteL(EMmTsyWcdmaBroadcastNotifyMessageReceived, KErrNone, data);
       
   937 	User::WaitForRequest(mockLtsyStatus);
       
   938     
       
   939 	User::WaitForRequest(reqStatus);
       
   940 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
   941     
       
   942 	
       
   943 	ASSERT_EQUALS(messageWithPageNumber,  msgData);
       
   944 	ASSERT_EQUALS(expectedFlags,               wcdmaAttributes.iFlags);
       
   945 	expectedFormat = RMobileBroadcastMessaging::EFormatWcdmaTpdu;
       
   946 	ASSERT_EQUALS(expectedFormat,              wcdmaAttributes.iFormat);
       
   947 	ASSERT_EQUALS(wcdmaCbsMsg0.iNumberOfPages, wcdmaAttributes.iNumberOfPages);
       
   948 	ASSERT_EQUALS(wcdmaCbsMsg0.iMessageType,   wcdmaAttributes.iMessageType);
       
   949 	ASSERT_EQUALS(wcdmaCbsMsg0.iMessageId,     wcdmaAttributes.iMessageId);
       
   950 	ASSERT_EQUALS(wcdmaCbsMsg0.iSerialNum,     wcdmaAttributes.iSerialNum);
       
   951 	ASSERT_EQUALS(wcdmaCbsMsg0.iDCS,           wcdmaAttributes.iDCS);
       
   952 
       
   953 	AssertMockLtsyStatusL();
       
   954 
       
   955  	//-------------------------------------------------------------------------
       
   956 	// TEST D: RMobileBroadcastMessaging::ReceiveMessage again, this time CTSY
       
   957 	// will get result from the cache.
       
   958  	//-------------------------------------------------------------------------
       
   959 	//-------------------------------------------------------------------------
       
   960  	// recieve 2nd page
       
   961  	//-------------------------------------------------------------------------
       
   962 
       
   963 	messaging.ReceiveMessage(reqStatus, msgData, wcdmaMsgAttributes);
       
   964 
       
   965 	User::WaitForRequest(reqStatus);
       
   966 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
   967 
       
   968     messageWithPageNumber.Copy(wcdmaCbsMsg1.iWcdmaCbsData);
       
   969     messageWithPageNumber.AppendFormat( abc, 2);
       
   970 
       
   971     ASSERT_EQUALS(messageWithPageNumber,  msgData);
       
   972 	ASSERT_EQUALS(expectedFlags,               wcdmaAttributes.iFlags);
       
   973 	ASSERT_EQUALS(expectedFormat,              wcdmaAttributes.iFormat);
       
   974 	ASSERT_EQUALS(wcdmaCbsMsg1.iNumberOfPages, wcdmaAttributes.iNumberOfPages);
       
   975 	ASSERT_EQUALS(wcdmaCbsMsg1.iMessageType,   wcdmaAttributes.iMessageType);
       
   976 	ASSERT_EQUALS(wcdmaCbsMsg1.iMessageId,     wcdmaAttributes.iMessageId);
       
   977 	ASSERT_EQUALS(wcdmaCbsMsg1.iSerialNum,     wcdmaAttributes.iSerialNum);
       
   978 	ASSERT_EQUALS(wcdmaCbsMsg1.iDCS,           wcdmaAttributes.iDCS);
       
   979 
       
   980 	AssertMockLtsyStatusL();
       
   981 
       
   982  	//-------------------------------------------------------------------------
       
   983  	// recieve 3rd page
       
   984  	//-------------------------------------------------------------------------
       
   985 
       
   986 	messaging.ReceiveMessage(reqStatus, msgData, wcdmaMsgAttributes);
       
   987 
       
   988 	User::WaitForRequest(reqStatus);
       
   989 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
   990     messageWithPageNumber.Copy(wcdmaCbsMsg2.iWcdmaCbsData);
       
   991     messageWithPageNumber.AppendFormat( abc, 3);
       
   992 	ASSERT_EQUALS(messageWithPageNumber,  msgData);
       
   993 	ASSERT_EQUALS(expectedFlags,               wcdmaAttributes.iFlags);
       
   994 	ASSERT_EQUALS(expectedFormat,              wcdmaAttributes.iFormat);
       
   995 	ASSERT_EQUALS(wcdmaCbsMsg2.iNumberOfPages, wcdmaAttributes.iNumberOfPages);
       
   996 	ASSERT_EQUALS(wcdmaCbsMsg2.iMessageType,   wcdmaAttributes.iMessageType);
       
   997 	ASSERT_EQUALS(wcdmaCbsMsg2.iMessageId,     wcdmaAttributes.iMessageId);
       
   998 	ASSERT_EQUALS(wcdmaCbsMsg2.iSerialNum,     wcdmaAttributes.iSerialNum);
       
   999 	ASSERT_EQUALS(wcdmaCbsMsg2.iDCS,           wcdmaAttributes.iDCS);
       
  1000 
       
  1001 	AssertMockLtsyStatusL();
       
  1002 
       
  1003  	//-------------------------------------------------------------------------
       
  1004 	// TEST E: Unsolicited completion of RMobileBroadcastMessaging::ReceiveMessage
       
  1005 	// from LTSY.
       
  1006  	//-------------------------------------------------------------------------
       
  1007 
       
  1008 	iMockLTSY.NotifyTerminated(reqStatus);	
       
  1009     iMockLTSY.CompleteL(EMobileBroadcastMessagingReceiveMessage, KErrNone);
       
  1010 	User::WaitForRequest(reqStatus);
       
  1011 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1012 	AssertMockLtsyStatusL();
       
  1013 
       
  1014  	//-------------------------------------------------------------------------
       
  1015 	// TEST E: increase coverage (completion with EMmTsyGsmBroadcastNotifyMessageReceived IPC)
       
  1016  	//-------------------------------------------------------------------------
       
  1017 
       
  1018 	iMockLTSY.NotifyTerminated(reqStatus);	
       
  1019 	data.Close();
       
  1020     completeLtsyData.SerialiseL(data); 
       
  1021     iMockLTSY.CompleteL(EMmTsyGsmBroadcastNotifyMessageReceived, KErrNone, data);
       
  1022 	User::WaitForRequest(reqStatus);
       
  1023 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1024 	AssertMockLtsyStatusL();
       
  1025 
       
  1026  	//-------------------------------------------------------------------------
       
  1027 	// TEST E: increase coverage (completion with EMmTsyWcdmaBroadcastNotifyMessageReceived IPC)
       
  1028  	//-------------------------------------------------------------------------
       
  1029 
       
  1030 	iMockLTSY.NotifyTerminated(reqStatus);	
       
  1031 	data.Close();
       
  1032     completeWcdmaLtsyData.SerialiseL(data); 
       
  1033     iMockLTSY.CompleteL(EMmTsyWcdmaBroadcastNotifyMessageReceived, KErrNone, data);
       
  1034 	User::WaitForRequest(reqStatus);
       
  1035 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1036 	AssertMockLtsyStatusL();
       
  1037 
       
  1038 	CleanupStack::PopAndDestroy(4, this); // wcdmaCbsMsgArray, messaging, data, this
       
  1039 	
       
  1040 	}
       
  1041 
       
  1042 
       
  1043 /**
       
  1044 @SYMTestCaseID BA-CTSY-BRMSG-BRM-0002
       
  1045 @SYMComponent  telephony_ctsy
       
  1046 @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileBroadcastMessaging::ReceiveMessage
       
  1047 @SYMTestPriority High
       
  1048 @SYMTestActions Invokes cancelling of RMobileBroadcastMessaging::ReceiveMessage
       
  1049 @SYMTestExpectedResults Pass
       
  1050 @SYMTestType CT
       
  1051 */
       
  1052 void CCTsyBroadcastMessagingFU::TestReceiveMessage0002L()
       
  1053 	{
       
  1054 
       
  1055 	OpenEtelServerL(EUseExtendedError);
       
  1056 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1057 	OpenPhoneL();
       
  1058 
       
  1059 	TRequestStatus mockLtsyStatus;
       
  1060 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  1061 
       
  1062 	RBuf8 data;
       
  1063 	CleanupClosePushL(data);
       
  1064 
       
  1065 	RMobileBroadcastMessaging messaging;
       
  1066 	TInt err = messaging.Open(iPhone);
       
  1067 	ASSERT_EQUALS(KErrNone, err);
       
  1068 	CleanupClosePushL(messaging);
       
  1069 
       
  1070  	//-------------------------------------------------------------------------
       
  1071 	// Test cancelling of RMobileBroadcastMessaging::ReceiveMessage
       
  1072  	//-------------------------------------------------------------------------
       
  1073  	
       
  1074 	TCbsCbmiAndLangAndFilter expectData;
       
  1075 	expectData.iSetting = RMobileBroadcastMessaging::EBroadcastAcceptAll;
       
  1076 	expectData.iCbmiStorage = KNullDesC; // deprecated
       
  1077 	expectData.iLanguageStorage = KNullDesC; // deprecated
       
  1078 
       
  1079 	TMockLtsyData1<TCbsCbmiAndLangAndFilter> expectLtsyData(expectData);
       
  1080     expectLtsyData.SerialiseL(data); 
       
  1081     iMockLTSY.ExpectL(EMobileBroadcastMessagingReceiveMessage, data);
       
  1082 
       
  1083 	TGsmCbsMsg cbsMsg;
       
  1084 	cbsMsg.iCbsMsg.Copy(_L("Cool!"));
       
  1085 	TMockLtsyData1<TGsmCbsMsg> completeLtsyData(cbsMsg);
       
  1086 	data.Close();
       
  1087     completeLtsyData.SerialiseL(data); 
       
  1088     iMockLTSY.CompleteL(EMmTsyGsmBroadcastNotifyMessageReceived, KErrNone, data, 10);
       
  1089 
       
  1090 	TRequestStatus reqStatus;
       
  1091 	RMobileBroadcastMessaging::TBroadcastPageData msgData;
       
  1092 	RMobileBroadcastMessaging::TMobileBroadcastAttributesV1 attributes;
       
  1093 	RMobileBroadcastMessaging::TMobileBroadcastAttributesV1Pckg msgAttributes(attributes);
       
  1094 	messaging.ReceiveMessage(reqStatus, msgData, msgAttributes);
       
  1095 
       
  1096 	messaging.CancelAsyncRequest(EMobileBroadcastMessagingReceiveMessage);
       
  1097 	
       
  1098 	User::WaitForRequest(reqStatus);
       
  1099 	ASSERT_EQUALS(KErrCancel, reqStatus.Int());
       
  1100 
       
  1101 	// Wait for completion of iMockLTSY.NotifyTerminated
       
  1102 	User::WaitForRequest(mockLtsyStatus);
       
  1103 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  1104 
       
  1105 	AssertMockLtsyStatusL();
       
  1106 
       
  1107  	//-------------------------------------------------------------------------
       
  1108 	// Test cancelling, increase coverage
       
  1109  	//-------------------------------------------------------------------------
       
  1110 
       
  1111 	// setting environement ( CMmBroadcastTsy::iCbRoutingActivated to ETrue)
       
  1112 	iMockLTSY.NotifyTerminated(reqStatus);	
       
  1113     iMockLTSY.CompleteL(EMobileBroadcastMessagingReceiveMessage, KErrNone);
       
  1114 	User::WaitForRequest(reqStatus);
       
  1115 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1116 	AssertMockLtsyStatusL();
       
  1117 
       
  1118 	// execute request
       
  1119 	messaging.ReceiveMessage(reqStatus, msgData, msgAttributes);
       
  1120 
       
  1121 	// setting cancel request
       
  1122 	expectData.iSetting = RMobileBroadcastMessaging::EBroadcastAcceptNone;
       
  1123 	data.Close();
       
  1124     expectLtsyData.SerialiseL(data); 
       
  1125     iMockLTSY.ExpectL(EMobileBroadcastMessagingReceiveMessageCancel, data, KErrNotSupported);
       
  1126   
       
  1127 	messaging.CancelAsyncRequest(EMobileBroadcastMessagingReceiveMessage);
       
  1128 
       
  1129 	// ReceiveMessage completion
       
  1130 	User::WaitForRequest(reqStatus);
       
  1131 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
  1132 
       
  1133 	AssertMockLtsyStatusL();
       
  1134 
       
  1135  	//-------------------------------------------------------------------------
       
  1136 	// Test cancelling, increase coverage
       
  1137  	//-------------------------------------------------------------------------
       
  1138 
       
  1139 	// setting environement ( CMmBroadcastTsy::iCbRoutingActivated to ETrue)
       
  1140 	iMockLTSY.NotifyTerminated(reqStatus);	
       
  1141     iMockLTSY.CompleteL(EMobileBroadcastMessagingReceiveMessage, KErrNone);
       
  1142 	User::WaitForRequest(reqStatus);
       
  1143 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1144 	AssertMockLtsyStatusL();
       
  1145 
       
  1146 	// execute request
       
  1147 	messaging.ReceiveMessage(reqStatus, msgData, msgAttributes);
       
  1148 
       
  1149 	// setting cancel request
       
  1150 	data.Close();
       
  1151     expectLtsyData.SerialiseL(data); 
       
  1152     iMockLTSY.ExpectL(EMobileBroadcastMessagingReceiveMessageCancel, data);
       
  1153     iMockLTSY.CompleteL(EMobileBroadcastMessagingReceiveMessageCancel, KErrGeneral);
       
  1154   
       
  1155 	messaging.CancelAsyncRequest(EMobileBroadcastMessagingReceiveMessage);
       
  1156 
       
  1157 	// ReceiveMessage completion
       
  1158 	User::WaitForRequest(reqStatus);
       
  1159 	ASSERT_EQUALS(KErrGeneral, reqStatus.Int());
       
  1160 
       
  1161 	AssertMockLtsyStatusL();
       
  1162 
       
  1163  	//-------------------------------------------------------------------------
       
  1164 	// Test cancelling, increase coverage
       
  1165  	//-------------------------------------------------------------------------
       
  1166 
       
  1167 	// setting environement ( CMmBroadcastTsy::iCbRoutingActivated to ETrue)
       
  1168 	iMockLTSY.NotifyTerminated(reqStatus);	
       
  1169     iMockLTSY.CompleteL(EMobileBroadcastMessagingReceiveMessage, KErrNone);
       
  1170 	User::WaitForRequest(reqStatus);
       
  1171 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1172 	AssertMockLtsyStatusL();
       
  1173 
       
  1174 	// execute request
       
  1175 	messaging.ReceiveMessage(reqStatus, msgData, msgAttributes);
       
  1176 
       
  1177 	// setting cancel request
       
  1178 	data.Close();
       
  1179     expectLtsyData.SerialiseL(data); 
       
  1180     iMockLTSY.ExpectL(EMobileBroadcastMessagingReceiveMessageCancel, data);
       
  1181     iMockLTSY.CompleteL(EMobileBroadcastMessagingReceiveMessageCancel, KErrNone);
       
  1182   
       
  1183 	messaging.CancelAsyncRequest(EMobileBroadcastMessagingReceiveMessage);
       
  1184 
       
  1185 	// ReceiveMessage completion
       
  1186 	User::WaitForRequest(reqStatus);
       
  1187 	ASSERT_EQUALS(KErrCancel, reqStatus.Int());
       
  1188 
       
  1189 	AssertMockLtsyStatusL();
       
  1190 
       
  1191 	CleanupStack::PopAndDestroy(3, this); // messaging, data, this
       
  1192 	
       
  1193 	}
       
  1194 
       
  1195 
       
  1196 /**
       
  1197 @SYMTestCaseID BA-CTSY-BRMSG-BRM-0003
       
  1198 @SYMComponent  telephony_ctsy
       
  1199 @SYMTestCaseDesc Test support in CTSY for RMobileBroadcastMessaging::ReceiveMessage with bad parameter data
       
  1200 @SYMTestPriority High
       
  1201 @SYMTestActions Invokes RMobileBroadcastMessaging::ReceiveMessage with bad parameter data
       
  1202 @SYMTestExpectedResults Pass
       
  1203 @SYMTestType CT
       
  1204 */
       
  1205 void CCTsyBroadcastMessagingFU::TestReceiveMessage0003L()
       
  1206 	{
       
  1207 
       
  1208 	OpenEtelServerL(EUseExtendedError);
       
  1209 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1210 	OpenPhoneL();
       
  1211 
       
  1212 	RBuf8 data;
       
  1213 	CleanupClosePushL(data);
       
  1214 
       
  1215 	RMobileBroadcastMessaging messaging;
       
  1216 	TInt err = messaging.Open(iPhone);
       
  1217 	ASSERT_EQUALS(KErrNone, err);
       
  1218 	CleanupClosePushL(messaging);
       
  1219 
       
  1220 	//-------------------------------------------------------------------------
       
  1221 	// Test passing wrong descriptor size to parameter aMsgData in
       
  1222 	// RMobileBroadcastMessaging::ReceiveMessage
       
  1223 	//-------------------------------------------------------------------------
       
  1224 
       
  1225 	TBuf8<RMobileBroadcastMessaging::KBroadcastPageSize+1> wrongMsgData;
       
  1226 	RMobileBroadcastMessaging::TMobileBroadcastAttributesV2 wcdmaAttributes;
       
  1227 	RMobileBroadcastMessaging::TMobileBroadcastAttributesV2Pckg wcdmaMsgAttributes(wcdmaAttributes);
       
  1228 	TRequestStatus reqStatus;
       
  1229 	messaging.ReceiveMessage(reqStatus, wrongMsgData, wcdmaMsgAttributes);
       
  1230 
       
  1231 	User::WaitForRequest(reqStatus);
       
  1232 	ASSERT_EQUALS(KErrArgument, reqStatus.Int());
       
  1233 
       
  1234 	AssertMockLtsyStatusL();
       
  1235 
       
  1236 	//-------------------------------------------------------------------------
       
  1237 	// Test A: Test passing wrong descriptor size to parameter aMsgAttributes in
       
  1238 	// RMobileBroadcastMessaging::ReceiveMessage
       
  1239 	//-------------------------------------------------------------------------
       
  1240 
       
  1241 	TCbsCbmiAndLangAndFilter expectData;
       
  1242 	expectData.iSetting = RMobileBroadcastMessaging::EBroadcastAcceptAll;
       
  1243 	expectData.iCbmiStorage = KNullDesC; // deprecated
       
  1244 	expectData.iLanguageStorage = KNullDesC; // deprecated
       
  1245 
       
  1246 	TMockLtsyData1<TCbsCbmiAndLangAndFilter> expectLtsyData(expectData);
       
  1247 	expectLtsyData.SerialiseL(data); 
       
  1248 
       
  1249 	CArrayPtrFlat<TWcdmaCbsMsg>* wcdmaCbsMsgArray = new ( ELeave ) CArrayPtrFlat<TWcdmaCbsMsg>( 1 );
       
  1250 	CleanupStack::PushL(wcdmaCbsMsgArray);
       
  1251 
       
  1252 	TWcdmaCbsMsg wcdmaCbsMsg0;
       
  1253 	wcdmaCbsMsg0.iWcdmaCbsData.Copy(_L("0cool0"));
       
  1254 	wcdmaCbsMsg0.iSbNumber = 1;
       
  1255 	wcdmaCbsMsg0.iNumberOfPages = 2;
       
  1256 	wcdmaCbsMsg0.iMessageType = 3;
       
  1257 	wcdmaCbsMsg0.iMessageId = 4;
       
  1258 	wcdmaCbsMsg0.iSerialNum = 5;
       
  1259 	wcdmaCbsMsg0.iDCS = 6;
       
  1260 	wcdmaCbsMsg0.iInfoLength = wcdmaCbsMsg0.iWcdmaCbsData.Length();
       
  1261 	wcdmaCbsMsgArray->AppendL(&wcdmaCbsMsg0, 1);
       
  1262 	
       
  1263 	TUint8 wcdmaPageNumber(1);
       
  1264 	TMockLtsyData2<CArrayPtrFlat< TWcdmaCbsMsg >*, TUint8> completeWcdmaLtsyData(wcdmaCbsMsgArray, wcdmaPageNumber);
       
  1265 	
       
  1266 	RMobileBroadcastMessaging::TBroadcastPageData msgData;
       
  1267 	
       
  1268 	TBuf8<1> wrongMsgAttributes;
       
  1269 
       
  1270 	messaging.ReceiveMessage(reqStatus, msgData, wrongMsgAttributes);
       
  1271 	User::WaitForRequest(reqStatus);
       
  1272 
       
  1273 	ASSERT_EQUALS(KErrArgument, reqStatus.Int());
       
  1274 	AssertMockLtsyStatusL();
       
  1275 
       
  1276 	//-------------------------------------------------------------------------
       
  1277 	// Test B: Test passing out of bounds parameters from LTSY in
       
  1278 	// request completion data
       
  1279  	//-------------------------------------------------------------------------
       
  1280  	data.Close();
       
  1281 	expectLtsyData.SerialiseL(data); 
       
  1282 	iMockLTSY.ExpectL(EMobileBroadcastMessagingReceiveMessage, data);
       
  1283 
       
  1284 	wcdmaPageNumber = 4; // greater
       
  1285 	data.Close();
       
  1286 	completeWcdmaLtsyData.SerialiseL(data); 
       
  1287 	iMockLTSY.CompleteL(EMmTsyWcdmaBroadcastNotifyMessageReceived, KErrNone, data);
       
  1288 
       
  1289 	messaging.ReceiveMessage(reqStatus, msgData, wcdmaMsgAttributes);
       
  1290 	User::WaitForRequest(reqStatus);
       
  1291 
       
  1292 	ASSERT_EQUALS(KErrCorrupt, reqStatus.Int());
       
  1293 	AssertMockLtsyStatusL();
       
  1294 
       
  1295 	CleanupStack::PopAndDestroy(4, this); // wcdmaCbsMsgArray, messaging, data, this
       
  1296 
       
  1297 	}
       
  1298 
       
  1299 
       
  1300 /**
       
  1301 @SYMTestCaseID BA-CTSY-BRMSG-BRM-0004
       
  1302 @SYMComponent  telephony_ctsy
       
  1303 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileBroadcastMessaging::ReceiveMessage
       
  1304 @SYMTestPriority High
       
  1305 @SYMTestActions Invokes multiple client requests to RMobileBroadcastMessaging::ReceiveMessage
       
  1306 @SYMTestExpectedResults Pass
       
  1307 @SYMTestType CT
       
  1308 */
       
  1309 void CCTsyBroadcastMessagingFU::TestReceiveMessage0004L()
       
  1310 	{
       
  1311 
       
  1312 					
       
  1313 	OpenEtelServerL(EUseExtendedError);
       
  1314 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1315 	OpenPhoneL();
       
  1316 
       
  1317 	RBuf8 data;
       
  1318 	CleanupClosePushL(data);
       
  1319 
       
  1320 	RMobileBroadcastMessaging messaging;
       
  1321 	TInt err = messaging.Open(iPhone);
       
  1322 	ASSERT_EQUALS(KErrNone, err);
       
  1323 	CleanupClosePushL(messaging);
       
  1324 
       
  1325 	// Open second client
       
  1326 	RTelServer telServer2;
       
  1327 	TInt ret = telServer2.Connect();
       
  1328 	ASSERT_EQUALS(KErrNone, ret);
       
  1329 	CleanupClosePushL(telServer2);
       
  1330 
       
  1331 	RMobilePhone phone2;
       
  1332 	ret = phone2.Open(telServer2, KMmTsyPhoneName);
       
  1333 	ASSERT_EQUALS(KErrNone, ret);
       
  1334 	CleanupClosePushL(phone2);
       
  1335 
       
  1336 	RMobileBroadcastMessaging messaging2;
       
  1337 	err = messaging2.Open(phone2);
       
  1338 	ASSERT_EQUALS(KErrNone, err);
       
  1339 	CleanupClosePushL(messaging2);
       
  1340 
       
  1341 	// Open third client
       
  1342 	RTelServer telServer3;
       
  1343 	ret = telServer3.Connect();
       
  1344 	ASSERT_EQUALS(KErrNone, ret);
       
  1345 	CleanupClosePushL(telServer3);
       
  1346 
       
  1347 	RMobilePhone phone3;
       
  1348 	ret = phone3.Open(telServer3, KMmTsyPhoneName);
       
  1349 	ASSERT_EQUALS(KErrNone, ret);
       
  1350 	CleanupClosePushL(phone3);
       
  1351 
       
  1352 	RMobileBroadcastMessaging messaging3;
       
  1353 	err = messaging3.Open(phone3);
       
  1354 	ASSERT_EQUALS(KErrNone, err);
       
  1355 	CleanupClosePushL(messaging3);
       
  1356 
       
  1357 	// Open fourth client
       
  1358 	RTelServer telServer4;
       
  1359 	ret = telServer4.Connect();
       
  1360 	ASSERT_EQUALS(KErrNone, ret);
       
  1361 	CleanupClosePushL(telServer4);
       
  1362 
       
  1363 	RMobilePhone phone4;
       
  1364 	ret = phone4.Open(telServer4, KMmTsyPhoneName);
       
  1365 	ASSERT_EQUALS(KErrNone, ret);
       
  1366 	CleanupClosePushL(phone4);
       
  1367 
       
  1368 	RMobileBroadcastMessaging messaging4;
       
  1369 	err = messaging4.Open(phone4);
       
  1370 	ASSERT_EQUALS(KErrNone, err);
       
  1371 	CleanupClosePushL(messaging4);
       
  1372 
       
  1373 	//-------------------------------------------------------------------------
       
  1374 	// Test A: Test multiple clients requesting RMobileBroadcastMessaging::ReceiveMessage
       
  1375 	//         Using RMobileBroadcastMessaging::TMobileBroadcastAttributesV1
       
  1376  	//-------------------------------------------------------------------------
       
  1377 
       
  1378 	// Setting up multiple Gsm requests
       
  1379 	TCbsCbmiAndLangAndFilter expectData;
       
  1380 	expectData.iSetting = RMobileBroadcastMessaging::EBroadcastAcceptAll;
       
  1381 	expectData.iCbmiStorage = KNullDesC; // deprecated
       
  1382 	expectData.iLanguageStorage = KNullDesC; // deprecated
       
  1383 
       
  1384 	TMockLtsyData1<TCbsCbmiAndLangAndFilter> expectLtsyData(expectData);
       
  1385     expectLtsyData.SerialiseL(data); 
       
  1386     
       
  1387     iMockLTSY.ExpectL(EMobileBroadcastMessagingReceiveMessage, data);
       
  1388 
       
  1389     iMockLTSY.CompleteL(EMobileBroadcastMessagingReceiveMessage, KErrNone);
       
  1390     TGsmCbsMsg cbsMsg;
       
  1391 	cbsMsg.iCbsMsg.Copy(_L("Cool!"));
       
  1392 	TMockLtsyData1<TGsmCbsMsg> completeLtsyData(cbsMsg);
       
  1393 	data.Close();
       
  1394     completeLtsyData.SerialiseL(data); 
       
  1395     iMockLTSY.CompleteL(EMmTsyGsmBroadcastNotifyMessageReceived, KErrNone, data);
       
  1396 
       
  1397 	TRequestStatus reqStatus;
       
  1398 	RMobileBroadcastMessaging::TBroadcastPageData msgData;
       
  1399 	RMobileBroadcastMessaging::TMobileBroadcastAttributesV1 attributes;
       
  1400 	RMobileBroadcastMessaging::TMobileBroadcastAttributesV1Pckg msgAttributes(attributes);
       
  1401 	messaging.ReceiveMessage(reqStatus, msgData, msgAttributes);
       
  1402 
       
  1403 	TRequestStatus reqStatus2;
       
  1404 	RMobileBroadcastMessaging::TBroadcastPageData msgData2;
       
  1405 	RMobileBroadcastMessaging::TMobileBroadcastAttributesV1 attributes2;
       
  1406 	RMobileBroadcastMessaging::TMobileBroadcastAttributesV1Pckg msgAttributes2(attributes2);
       
  1407 	messaging2.ReceiveMessage(reqStatus2, msgData2, msgAttributes2);
       
  1408 	
       
  1409 	// completion
       
  1410 	RMobileBroadcastMessaging::TMobileBroadcastDataFormat
       
  1411 	                      expectedFormat(RMobileBroadcastMessaging::EFormatGsmTpdu);	
       
  1412     TUint32 expectedFlags(RMobileBroadcastMessaging::KBroadcastDataFormat);
       
  1413 
       
  1414 	User::WaitForRequest(reqStatus2);
       
  1415 	ASSERT_EQUALS(KErrNone, reqStatus2.Int());
       
  1416 	ASSERT_EQUALS(cbsMsg.iCbsMsg, msgData2);
       
  1417 	ASSERT_EQUALS(expectedFlags, attributes2.iFlags);
       
  1418 	ASSERT_EQUALS(expectedFormat, attributes2.iFormat);	
       
  1419 	
       
  1420 		
       
  1421 	User::WaitForRequest(reqStatus);
       
  1422     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1423     ASSERT_EQUALS(cbsMsg.iCbsMsg, msgData);
       
  1424 	ASSERT_EQUALS(expectedFlags, attributes.iFlags);
       
  1425 	ASSERT_EQUALS(expectedFormat, attributes.iFormat);	
       
  1426 
       
  1427 		
       
  1428 	//-------------------------------------------------------------------------
       
  1429 	// Test B: Test multiple clients requesting RMobileBroadcastMessaging::ReceiveMessage
       
  1430 	//         Using RMobileBroadcastMessaging::TMobileBroadcastAttributesV2
       
  1431  	//-------------------------------------------------------------------------
       
  1432 		
       
  1433 	// Setting up multiple Wcdma requests 
       
  1434 	data.Close();
       
  1435 	expectLtsyData.SerialiseL(data); 
       
  1436 	
       
  1437 	CArrayPtrFlat<TWcdmaCbsMsg>* wcdmaCbsMsgArray = new ( ELeave ) CArrayPtrFlat<TWcdmaCbsMsg>( 1 );
       
  1438 	CleanupStack::PushL(wcdmaCbsMsgArray);
       
  1439 
       
  1440 	TWcdmaCbsMsg wcdmaCbsMsg0;
       
  1441 	wcdmaCbsMsg0.iWcdmaCbsData.Copy(_L("0cool0"));
       
  1442 	wcdmaCbsMsg0.iSbNumber = 1;
       
  1443 	wcdmaCbsMsg0.iNumberOfPages = 2;
       
  1444 	wcdmaCbsMsg0.iMessageType = 3;
       
  1445 	wcdmaCbsMsg0.iMessageId = 4;
       
  1446 	wcdmaCbsMsg0.iSerialNum = 5;
       
  1447 	wcdmaCbsMsg0.iDCS = 6;
       
  1448 	wcdmaCbsMsg0.iInfoLength = wcdmaCbsMsg0.iWcdmaCbsData.Length();
       
  1449 	wcdmaCbsMsgArray->AppendL(&wcdmaCbsMsg0, 1);
       
  1450 	
       
  1451 	TUint8 wcdmaPageNumber(1);
       
  1452 	TMockLtsyData2<CArrayPtrFlat< TWcdmaCbsMsg >*, TUint8> completeWcdmaLtsyData(wcdmaCbsMsgArray, wcdmaPageNumber);
       
  1453 
       
  1454 	data.Close();
       
  1455 	completeWcdmaLtsyData.SerialiseL(data); 
       
  1456 	
       
  1457 	iMockLTSY.CompleteL(EMmTsyWcdmaBroadcastNotifyMessageReceived, KErrNone, data);
       
  1458     
       
  1459 
       
  1460 	TRequestStatus reqStatus3;
       
  1461 	RMobileBroadcastMessaging::TBroadcastPageData msgData3;
       
  1462 	RMobileBroadcastMessaging::TMobileBroadcastAttributesV2 attributes3;
       
  1463 	RMobileBroadcastMessaging::TMobileBroadcastAttributesV2Pckg msgAttributes3(attributes3);
       
  1464 	messaging3.ReceiveMessage(reqStatus3, msgData3, msgAttributes3);
       
  1465 
       
  1466 	TRequestStatus reqStatus4;
       
  1467 	RMobileBroadcastMessaging::TBroadcastPageData msgData4;
       
  1468 	RMobileBroadcastMessaging::TMobileBroadcastAttributesV2 attributes4;
       
  1469 	RMobileBroadcastMessaging::TMobileBroadcastAttributesV2Pckg msgAttributes4(attributes4);
       
  1470 	messaging4.ReceiveMessage(reqStatus4, msgData4, msgAttributes4);
       
  1471 
       
  1472 	// completion
       
  1473 	TUint32 expectedFlags2(RMobileBroadcastMessaging::KBroadcastDataFormat);
       
  1474 	RMobileBroadcastMessaging::TMobileBroadcastDataFormat
       
  1475 	                      expectedFormat2(RMobileBroadcastMessaging::EFormatWcdmaTpdu);
       
  1476 
       
  1477 	User::WaitForRequest(reqStatus4);
       
  1478 	ASSERT_EQUALS(KErrNone, reqStatus4.Int());
       
  1479 	
       
  1480 	// generate a message from the original message with the page number at the end
       
  1481 	TBuf8<RMobileBroadcastMessaging::KBroadcastPageSize>  messageWithPageNumber;
       
  1482 	messageWithPageNumber.Copy(wcdmaCbsMsg0.iWcdmaCbsData);
       
  1483 	_LIT8(KFormat, "%c");
       
  1484 	TBuf8<2> abc(KFormat);
       
  1485 	// Append pagenumber to end of CBS message     
       
  1486 	messageWithPageNumber.AppendFormat( abc, wcdmaPageNumber);
       
  1487 	
       
  1488 	ASSERT_EQUALS(messageWithPageNumber,  msgData4);	
       
  1489 
       
  1490 	ASSERT_EQUALS(expectedFlags2,               attributes4.iFlags);
       
  1491 	ASSERT_EQUALS(expectedFormat2,              attributes4.iFormat);
       
  1492 	ASSERT_EQUALS(wcdmaCbsMsg0.iNumberOfPages,  attributes4.iNumberOfPages);
       
  1493 	ASSERT_EQUALS(wcdmaCbsMsg0.iMessageType,    attributes4.iMessageType);
       
  1494 	ASSERT_EQUALS(wcdmaCbsMsg0.iMessageId,      attributes4.iMessageId);
       
  1495 	ASSERT_EQUALS(wcdmaCbsMsg0.iSerialNum,      attributes4.iSerialNum);
       
  1496 	ASSERT_EQUALS(wcdmaCbsMsg0.iDCS,            attributes4.iDCS);
       
  1497 		
       
  1498 
       
  1499 	User::WaitForRequest(reqStatus3);
       
  1500     ASSERT_EQUALS(KErrNone, reqStatus3.Int());
       
  1501 	ASSERT_EQUALS(messageWithPageNumber,  msgData3);
       
  1502 		
       
  1503 	ASSERT_EQUALS(expectedFlags2,               attributes3.iFlags);
       
  1504 	ASSERT_EQUALS(expectedFormat2,              attributes3.iFormat);
       
  1505 	ASSERT_EQUALS(wcdmaCbsMsg0.iNumberOfPages,  attributes3.iNumberOfPages);
       
  1506 	ASSERT_EQUALS(wcdmaCbsMsg0.iMessageType,    attributes3.iMessageType);
       
  1507 	ASSERT_EQUALS(wcdmaCbsMsg0.iMessageId,      attributes3.iMessageId);
       
  1508 	ASSERT_EQUALS(wcdmaCbsMsg0.iSerialNum,      attributes3.iSerialNum);
       
  1509 	ASSERT_EQUALS(wcdmaCbsMsg0.iDCS,            attributes3.iDCS);
       
  1510 
       
  1511     
       
  1512 	AssertMockLtsyStatusL();
       
  1513 
       
  1514 	CleanupStack::PopAndDestroy(13, this); // wcdmaCbsMsgArray, messaging(4), phone(3), telServer(3), data, this
       
  1515 
       
  1516 	}
       
  1517 
       
  1518 
       
  1519 /**
       
  1520 @SYMTestCaseID BA-CTSY-BRMSG-BRM-0005
       
  1521 @SYMComponent  telephony_ctsy
       
  1522 @SYMTestCaseDesc Test support in CTSY for RMobileBroadcastMessaging::ReceiveMessage with timeout
       
  1523 @SYMTestPriority High
       
  1524 @SYMTestActions Invokes RMobileBroadcastMessaging::ReceiveMessage and tests for timeout
       
  1525 @SYMTestExpectedResults Pass
       
  1526 @SYMTestType CT
       
  1527 */
       
  1528 void CCTsyBroadcastMessagingFU::TestReceiveMessage0005L()
       
  1529 	{
       
  1530 
       
  1531 
       
  1532 	OpenEtelServerL(EUseExtendedError);
       
  1533 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1534 	OpenPhoneL();
       
  1535 
       
  1536 	RBuf8 data;
       
  1537 	CleanupClosePushL(data);
       
  1538 
       
  1539 	RMobileBroadcastMessaging messaging;
       
  1540 	TInt err = messaging.Open(iPhone);
       
  1541 	ASSERT_EQUALS(KErrNone, err);
       
  1542 	CleanupClosePushL(messaging);
       
  1543 
       
  1544 	//-------------------------------------------------------------------------
       
  1545 	// Test A: Test timeout of RMobileBroadcastMessaging::ReceiveMessage
       
  1546  	//-------------------------------------------------------------------------
       
  1547 
       
  1548 	TRequestStatus reqStatus;
       
  1549 	iMockLTSY.NotifyTerminated(reqStatus);	
       
  1550     iMockLTSY.CompleteL(EMobileBroadcastMessagingReceiveMessage, KErrNone);
       
  1551 	User::WaitForRequest(reqStatus);
       
  1552 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1553 	AssertMockLtsyStatusL();
       
  1554 
       
  1555 	RMobileBroadcastMessaging::TBroadcastPageData msgData;
       
  1556 	RMobileBroadcastMessaging::TMobileBroadcastAttributesV1 attributes;
       
  1557 	RMobileBroadcastMessaging::TMobileBroadcastAttributesV1Pckg msgAttributes(attributes);
       
  1558 	messaging.ReceiveMessage(reqStatus, msgData, msgAttributes);
       
  1559 
       
  1560 	TCbsCbmiAndLangAndFilter expectData;
       
  1561 	expectData.iSetting = RMobileBroadcastMessaging::EBroadcastAcceptNone;
       
  1562 	expectData.iCbmiStorage = KNullDesC; // deprecated
       
  1563 	expectData.iLanguageStorage = KNullDesC; // deprecated
       
  1564 
       
  1565 	TMockLtsyData1<TCbsCbmiAndLangAndFilter> expectLtsyData(expectData);
       
  1566     expectLtsyData.SerialiseL(data); 
       
  1567     iMockLTSY.ExpectL(EMobileBroadcastMessagingReceiveMessageCancel, data);
       
  1568   
       
  1569 	messaging.CancelAsyncRequest(EMobileBroadcastMessagingReceiveMessage);
       
  1570 
       
  1571 	User::WaitForRequest(reqStatus);
       
  1572 	ASSERT_EQUALS(KErrTimedOut, reqStatus.Int());
       
  1573 
       
  1574 	AssertMockLtsyStatusL();
       
  1575 
       
  1576 	CleanupStack::PopAndDestroy(3, this); // messaging, data, this
       
  1577 
       
  1578 	}
       
  1579 
       
  1580 
       
  1581 /**
       
  1582 @SYMTestCaseID BA-CTSY-BRMSG-BGFS-0001
       
  1583 @SYMComponent  telephony_ctsy
       
  1584 @SYMTestCaseDesc Test support in CTSY for RMobileBroadcastMessaging::GetFilterSetting
       
  1585 @SYMTestPriority High
       
  1586 @SYMTestActions Invokes RMobileBroadcastMessaging::GetFilterSetting
       
  1587 @SYMTestExpectedResults Pass
       
  1588 @SYMTestType CT
       
  1589 */
       
  1590 void CCTsyBroadcastMessagingFU::TestGetFilterSetting0001L()
       
  1591 	{
       
  1592 
       
  1593 	OpenEtelServerL(EUseExtendedError);
       
  1594 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1595 	OpenPhoneL();
       
  1596 
       
  1597 	RMobileBroadcastMessaging messaging;
       
  1598 	TInt err = messaging.Open(iPhone);
       
  1599 	ASSERT_EQUALS(KErrNone, err);
       
  1600 	CleanupClosePushL(messaging);
       
  1601 
       
  1602  	//-------------------------------------------------------------------------
       
  1603 	// TEST C: Successful completion request of
       
  1604 	// RMobileBroadcastMessaging::GetFilterSetting.
       
  1605  	//-------------------------------------------------------------------------
       
  1606 
       
  1607 	RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter setting;
       
  1608 	err = messaging.GetFilterSetting(setting);
       
  1609 	ASSERT_EQUALS(KErrNone, err);
       
  1610 	ASSERT_EQUALS(RMobileBroadcastMessaging::EBroadcastAcceptAll, setting);
       
  1611 	AssertMockLtsyStatusL();
       
  1612 
       
  1613 	// change setting
       
  1614 	TRequestStatus reqStatus;
       
  1615 	messaging.SetFilterSetting(reqStatus, RMobileBroadcastMessaging::EBroadcastAcceptNone);
       
  1616 	User::WaitForRequest(reqStatus);
       
  1617 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1618 	AssertMockLtsyStatusL();
       
  1619 
       
  1620 	// check if the setting is changed
       
  1621 	err = messaging.GetFilterSetting(setting);
       
  1622 	ASSERT_EQUALS(KErrNone, err);
       
  1623 	ASSERT_EQUALS(RMobileBroadcastMessaging::EBroadcastAcceptNone, setting);
       
  1624 	AssertMockLtsyStatusL();
       
  1625 
       
  1626 	CleanupStack::PopAndDestroy(2, this); // messaging, this
       
  1627 	
       
  1628 	}
       
  1629 
       
  1630 
       
  1631 /**
       
  1632 @SYMTestCaseID BA-CTSY-BRMSG-BSFS-0001
       
  1633 @SYMComponent  telephony_ctsy
       
  1634 @SYMTestCaseDesc Test support in CTSY for RMobileBroadcastMessaging::SetFilterSetting
       
  1635 @SYMTestPriority High
       
  1636 @SYMTestActions Invokes RMobileBroadcastMessaging::SetFilterSetting
       
  1637 @SYMTestExpectedResults Pass
       
  1638 @SYMTestType CT
       
  1639 */
       
  1640 void CCTsyBroadcastMessagingFU::TestSetFilterSetting0001L()
       
  1641 	{
       
  1642 
       
  1643 	OpenEtelServerL(EUseExtendedError);
       
  1644 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1645 	OpenPhoneL();
       
  1646 
       
  1647 	RBuf8 data;
       
  1648 	CleanupClosePushL(data);
       
  1649 
       
  1650 	RMobileBroadcastMessaging messaging;
       
  1651 	TInt err = messaging.Open(iPhone);
       
  1652 	ASSERT_EQUALS(KErrNone, err);
       
  1653 	CleanupClosePushL(messaging);
       
  1654 	
       
  1655 	TRequestStatus reqStatus;
       
  1656 
       
  1657  	//-------------------------------------------------------------------------
       
  1658 	// TEST A: failure to dispatch request to LTSY
       
  1659  	//-------------------------------------------------------------------------
       
  1660 
       
  1661 	// setting environement ( CMmBroadcastTsy::iCbRoutingActivated to ETrue)
       
  1662 	iMockLTSY.NotifyTerminated(reqStatus);	
       
  1663     iMockLTSY.CompleteL(EMobileBroadcastMessagingReceiveMessage, KErrNone);
       
  1664 	User::WaitForRequest(reqStatus);
       
  1665 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1666 	AssertMockLtsyStatusL();
       
  1667 
       
  1668 	// setting request and execute
       
  1669 	TCbsCbmiAndLangAndFilter expectData;
       
  1670 	expectData.iSetting = RMobileBroadcastMessaging::EBroadcastAcceptNone;
       
  1671 	expectData.iCbmiStorage = KNullDesC; // deprecated
       
  1672 	expectData.iLanguageStorage = KNullDesC; // deprecated
       
  1673 
       
  1674 	TMockLtsyData1<TCbsCbmiAndLangAndFilter> expectLtsyData(expectData);
       
  1675     expectLtsyData.SerialiseL(data); 
       
  1676     iMockLTSY.ExpectL(EMobileBroadcastMessagingSetFilterSetting, data, KErrNotSupported);
       
  1677 
       
  1678 	messaging.SetFilterSetting(reqStatus, expectData.iSetting);
       
  1679 	
       
  1680 	// completion
       
  1681 	User::WaitForRequest(reqStatus);
       
  1682 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
  1683 
       
  1684 	AssertMockLtsyStatusL();
       
  1685 
       
  1686 	//-------------------------------------------------------------------------
       
  1687 	// TEST B: failure on completion of pending request from LTSY->CTSY
       
  1688  	//-------------------------------------------------------------------------
       
  1689 
       
  1690 	// no need in setting environement ( CMmBroadcastTsy::iCbRoutingActivated is ETrue)
       
  1691 
       
  1692 	// setting request and execute
       
  1693     iMockLTSY.ExpectL(EMobileBroadcastMessagingSetFilterSetting, data);
       
  1694 	iMockLTSY.CompleteL(EMobileBroadcastMessagingSetFilterSetting, KErrGeneral);
       
  1695 
       
  1696 	messaging.SetFilterSetting(reqStatus, expectData.iSetting);
       
  1697 	
       
  1698 	// completion
       
  1699 	User::WaitForRequest(reqStatus);
       
  1700 	ASSERT_EQUALS(KErrGeneral, reqStatus.Int());
       
  1701 
       
  1702 	AssertMockLtsyStatusL();
       
  1703 
       
  1704  	//-------------------------------------------------------------------------
       
  1705 	// TEST C: Successful completion request of
       
  1706 	// RMobileBroadcastMessaging::SetFilterSetting.
       
  1707  	//-------------------------------------------------------------------------
       
  1708 
       
  1709 	// no need in setting environement ( CMmBroadcastTsy::iCbRoutingActivated is ETrue)
       
  1710 
       
  1711 	// setting request and execute
       
  1712 	expectData.iSetting = RMobileBroadcastMessaging::EBroadcastAcceptAll;
       
  1713 	data.Close();
       
  1714     expectLtsyData.SerialiseL(data); 
       
  1715     iMockLTSY.ExpectL(EMobileBroadcastMessagingSetFilterSetting, data);
       
  1716 	iMockLTSY.CompleteL(EMobileBroadcastMessagingSetFilterSetting, KErrNone);
       
  1717 
       
  1718 	messaging.SetFilterSetting(reqStatus, expectData.iSetting);
       
  1719 	
       
  1720 	// completion
       
  1721 	User::WaitForRequest(reqStatus);
       
  1722 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1723 
       
  1724 	AssertMockLtsyStatusL();
       
  1725 
       
  1726  	//-------------------------------------------------------------------------
       
  1727 	// TEST C: increase coverage ( SetFilterSetting(EBroadcastAcceptNone) )
       
  1728  	//-------------------------------------------------------------------------
       
  1729  	
       
  1730 	// no need in setting environement ( CMmBroadcastTsy::iCbRoutingActivated is ETrue)
       
  1731 
       
  1732 	// setting request and execute
       
  1733 	expectData.iSetting = RMobileBroadcastMessaging::EBroadcastAcceptNone;
       
  1734 	data.Close();
       
  1735     expectLtsyData.SerialiseL(data); 
       
  1736     iMockLTSY.ExpectL(EMobileBroadcastMessagingSetFilterSetting, data);
       
  1737 	iMockLTSY.CompleteL(EMobileBroadcastMessagingSetFilterSetting, KErrNone);
       
  1738 
       
  1739 	messaging.SetFilterSetting(reqStatus, expectData.iSetting);
       
  1740 	
       
  1741 	// completion
       
  1742 	User::WaitForRequest(reqStatus);
       
  1743 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1744 
       
  1745 	AssertMockLtsyStatusL();
       
  1746  	
       
  1747  	//-------------------------------------------------------------------------
       
  1748 	// TEST C: increase coverage ( SetFilterSetting(EBroadcastAcceptNone) when
       
  1749 	// CMmBroadcastTsy::iCbRoutingActivated equals EFalse )
       
  1750  	//-------------------------------------------------------------------------
       
  1751 
       
  1752 	// no need in setting environement ( CMmBroadcastTsy::iCbRoutingActivated is EFalse)
       
  1753 
       
  1754 	// setting request and execute
       
  1755 	messaging.SetFilterSetting(reqStatus, RMobileBroadcastMessaging::EBroadcastAcceptNone);
       
  1756 	User::WaitForRequest(reqStatus);
       
  1757 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1758 
       
  1759 	AssertMockLtsyStatusL();
       
  1760 
       
  1761  	//-------------------------------------------------------------------------
       
  1762 	// TEST C: increase coverage ( SetFilterSetting(EBroadcastAcceptNone) when
       
  1763 	// CMmBroadcastTsy::iCbRoutingActivated equals EFalse
       
  1764 	// but there is pending ReceiveMessage request )
       
  1765  	//-------------------------------------------------------------------------
       
  1766 
       
  1767 	// no need in setting environement by change CMmBroadcastTsy::iCbRoutingActivated
       
  1768 	// ( CMmBroadcastTsy::iCbRoutingActivated is EFalse )
       
  1769 
       
  1770 	// setting and execute ReceiveMessage request
       
  1771 	expectData.iSetting = RMobileBroadcastMessaging::EBroadcastAcceptAll;
       
  1772 	data.Close();
       
  1773     expectLtsyData.SerialiseL(data); 
       
  1774     iMockLTSY.ExpectL(EMobileBroadcastMessagingReceiveMessage, data);
       
  1775 	RMobileBroadcastMessaging::TBroadcastPageData msgData;
       
  1776 	RMobileBroadcastMessaging::TMobileBroadcastAttributesV1 attributes;
       
  1777 	RMobileBroadcastMessaging::TMobileBroadcastAttributesV1Pckg msgAttributes(attributes);
       
  1778 	messaging.ReceiveMessage(reqStatus, msgData, msgAttributes);
       
  1779 	AssertMockLtsyStatusL();
       
  1780 	
       
  1781 	// setting and execute SetFilterSetting
       
  1782 	expectData.iSetting = RMobileBroadcastMessaging::EBroadcastAcceptNone;
       
  1783 	data.Close();
       
  1784     expectLtsyData.SerialiseL(data); 
       
  1785     iMockLTSY.ExpectL(EMobileBroadcastMessagingSetFilterSetting, data);
       
  1786 	iMockLTSY.CompleteL(EMobileBroadcastMessagingSetFilterSetting, KErrNone);
       
  1787 	messaging.SetFilterSetting(reqStatus, expectData.iSetting);
       
  1788 
       
  1789 	// completion
       
  1790 	User::WaitForRequest(reqStatus);
       
  1791 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1792 
       
  1793 	// cancel ReceiveMessage request
       
  1794 	messaging.CancelAsyncRequest(EMobileBroadcastMessagingReceiveMessage);
       
  1795 	
       
  1796 	AssertMockLtsyStatusL();
       
  1797 
       
  1798  	//-------------------------------------------------------------------------
       
  1799 	// TEST E: Unsolicited completion of RMobileBroadcastMessaging::SetFilterSetting
       
  1800 	// from LTSY.
       
  1801  	//-------------------------------------------------------------------------
       
  1802 
       
  1803 	iMockLTSY.NotifyTerminated(reqStatus);	
       
  1804     iMockLTSY.CompleteL(EMobileBroadcastMessagingSetFilterSetting, KErrNone);
       
  1805 
       
  1806 	User::WaitForRequest(reqStatus); // KERN:4 in CMmBroadcastTsy.cpp line 998
       
  1807 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1808 	AssertMockLtsyStatusL();
       
  1809 
       
  1810 	CleanupStack::PopAndDestroy(3, this); // messaging, data, this
       
  1811 	
       
  1812 	}
       
  1813 
       
  1814 
       
  1815 /**
       
  1816 @SYMTestCaseID BA-CTSY-BRMSG-BSFS-0002
       
  1817 @SYMComponent  telephony_ctsy
       
  1818 @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileBroadcastMessaging::SetFilterSetting
       
  1819 @SYMTestPriority High
       
  1820 @SYMTestActions Invokes cancelling of RMobileBroadcastMessaging::SetFilterSetting
       
  1821 @SYMTestExpectedResults Pass
       
  1822 @SYMTestType CT
       
  1823 */
       
  1824 void CCTsyBroadcastMessagingFU::TestSetFilterSetting0002L()
       
  1825 	{
       
  1826 
       
  1827 	OpenEtelServerL(EUseExtendedError);
       
  1828 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1829 	OpenPhoneL();
       
  1830 
       
  1831 	RBuf8 data;
       
  1832 	CleanupClosePushL(data);
       
  1833 
       
  1834 	RMobileBroadcastMessaging messaging;
       
  1835 	TInt err = messaging.Open(iPhone);
       
  1836 	ASSERT_EQUALS(KErrNone, err);
       
  1837 	CleanupClosePushL(messaging);
       
  1838 	
       
  1839 	TRequestStatus reqStatus;
       
  1840 
       
  1841  	//-------------------------------------------------------------------------
       
  1842 	// Test cancelling of RMobileBroadcastMessaging::SetFilterSetting
       
  1843  	//-------------------------------------------------------------------------
       
  1844  	
       
  1845 	// setting environement ( CMmBroadcastTsy::iCbRoutingActivated to ETrue)
       
  1846 	iMockLTSY.NotifyTerminated(reqStatus);	
       
  1847     iMockLTSY.CompleteL(EMobileBroadcastMessagingReceiveMessage, KErrNone);
       
  1848 	User::WaitForRequest(reqStatus);
       
  1849 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1850 	AssertMockLtsyStatusL();
       
  1851 
       
  1852 	TRequestStatus mockLtsyStatus;
       
  1853 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  1854 
       
  1855 	// setting request and execute
       
  1856 	TCbsCbmiAndLangAndFilter expectData;
       
  1857 	expectData.iSetting = RMobileBroadcastMessaging::EBroadcastAcceptNone;
       
  1858 	expectData.iCbmiStorage = KNullDesC; // deprecated
       
  1859 	expectData.iLanguageStorage = KNullDesC; // deprecated
       
  1860 
       
  1861 	TMockLtsyData1<TCbsCbmiAndLangAndFilter> expectLtsyData(expectData);
       
  1862     expectLtsyData.SerialiseL(data); 
       
  1863     iMockLTSY.ExpectL(EMobileBroadcastMessagingSetFilterSetting, data);
       
  1864     iMockLTSY.CompleteL(EMobileBroadcastMessagingSetFilterSetting, KErrNone, 10);
       
  1865 
       
  1866 	messaging.SetFilterSetting(reqStatus, expectData.iSetting);
       
  1867 
       
  1868 	// cancelling
       
  1869 	messaging.CancelAsyncRequest(EMobileBroadcastMessagingSetFilterSetting);
       
  1870 	
       
  1871 	// completion
       
  1872 	User::WaitForRequest(reqStatus);
       
  1873 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1874 
       
  1875 	// Wait for completion of iMockLTSY.NotifyTerminated
       
  1876 	User::WaitForRequest(mockLtsyStatus);
       
  1877 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  1878 	
       
  1879 	AssertMockLtsyStatusL();
       
  1880 	CleanupStack::PopAndDestroy(3, this); // messaging, data, this
       
  1881 	
       
  1882 	}
       
  1883 
       
  1884 
       
  1885 /**
       
  1886 @SYMTestCaseID BA-CTSY-BRMSG-BSFS-0003
       
  1887 @SYMComponent  telephony_ctsy
       
  1888 @SYMTestCaseDesc Test support in CTSY for RMobileBroadcastMessaging::SetFilterSetting with bad parameter data
       
  1889 @SYMTestPriority High
       
  1890 @SYMTestActions Invokes RMobileBroadcastMessaging::SetFilterSetting with bad parameter data
       
  1891 @SYMTestExpectedResults Pass
       
  1892 @SYMTestType CT
       
  1893 */
       
  1894 void CCTsyBroadcastMessagingFU::TestSetFilterSetting0003L()
       
  1895 	{
       
  1896 
       
  1897 	OpenEtelServerL(EUseExtendedError);
       
  1898 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1899 	OpenPhoneL();
       
  1900 
       
  1901 	RMobileBroadcastMessaging messaging;
       
  1902 	TInt err = messaging.Open(iPhone);
       
  1903 	ASSERT_EQUALS(KErrNone, err);
       
  1904 	CleanupClosePushL(messaging);
       
  1905 	
       
  1906 	//-------------------------------------------------------------------------
       
  1907 	// Test C: Test passing out of bounds parameters to
       
  1908 	// RMobileBroadcastMessaging::SetFilterSetting
       
  1909  	//-------------------------------------------------------------------------
       
  1910  	
       
  1911 	// test for support with RMobileBroadcastMessaging::EBroadcastFilterUnspecified parameter value
       
  1912 	TRequestStatus reqStatus;
       
  1913 	messaging.SetFilterSetting(reqStatus, RMobileBroadcastMessaging::EBroadcastFilterUnspecified);
       
  1914 	User::WaitForRequest(reqStatus);
       
  1915 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
  1916 	AssertMockLtsyStatusL();
       
  1917 
       
  1918 	// check if the setting is not changed
       
  1919 	RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter setting;
       
  1920 	err = messaging.GetFilterSetting(setting);
       
  1921 	ASSERT_EQUALS(KErrNone, err);
       
  1922 	ASSERT_EQUALS(RMobileBroadcastMessaging::EBroadcastAcceptAll, setting);
       
  1923 	AssertMockLtsyStatusL();
       
  1924 
       
  1925 	// test for support with RMobileBroadcastMessaging::EBroadcastAcceptFilter parameter value
       
  1926 	messaging.SetFilterSetting(reqStatus, RMobileBroadcastMessaging::EBroadcastAcceptFilter);
       
  1927 	User::WaitForRequest(reqStatus);
       
  1928 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
  1929 	AssertMockLtsyStatusL();
       
  1930 
       
  1931 	// check if the setting is not changed
       
  1932 	err = messaging.GetFilterSetting(setting);
       
  1933 	ASSERT_EQUALS(KErrNone, err);
       
  1934 	ASSERT_EQUALS(RMobileBroadcastMessaging::EBroadcastAcceptAll, setting);
       
  1935 	AssertMockLtsyStatusL();
       
  1936 
       
  1937 	// test for support with RMobileBroadcastMessaging::EBroadcastRejectFilter parameter value
       
  1938 	messaging.SetFilterSetting(reqStatus, RMobileBroadcastMessaging::EBroadcastRejectFilter);
       
  1939 	User::WaitForRequest(reqStatus);
       
  1940 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
  1941 	AssertMockLtsyStatusL();
       
  1942 
       
  1943 	// check if the setting is not changed
       
  1944 	err = messaging.GetFilterSetting(setting);
       
  1945 	ASSERT_EQUALS(KErrNone, err);
       
  1946 	ASSERT_EQUALS(RMobileBroadcastMessaging::EBroadcastAcceptAll, setting);
       
  1947 	AssertMockLtsyStatusL();
       
  1948 
       
  1949 	CleanupStack::PopAndDestroy(2, this); // messaging, this
       
  1950 
       
  1951 	}
       
  1952 
       
  1953 
       
  1954 /**
       
  1955 @SYMTestCaseID BA-CTSY-BRMSG-BSFS-0004
       
  1956 @SYMComponent  telephony_ctsy
       
  1957 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileBroadcastMessaging::SetFilterSetting
       
  1958 @SYMTestPriority High
       
  1959 @SYMTestActions Invokes multiple client requests to RMobileBroadcastMessaging::SetFilterSetting
       
  1960 @SYMTestExpectedResults Pass
       
  1961 @SYMTestType CT
       
  1962 */
       
  1963 void CCTsyBroadcastMessagingFU::TestSetFilterSetting0004L()
       
  1964 	{
       
  1965 
       
  1966 	OpenEtelServerL(EUseExtendedError);
       
  1967 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1968 	OpenPhoneL();
       
  1969 
       
  1970 	RBuf8 data;
       
  1971 	CleanupClosePushL(data);
       
  1972 
       
  1973 	RMobileBroadcastMessaging messaging;
       
  1974 	TInt ret = messaging.Open(iPhone);
       
  1975 	ASSERT_EQUALS(KErrNone, ret);
       
  1976 	CleanupClosePushL(messaging);
       
  1977 
       
  1978 	// Open second client
       
  1979 	RTelServer telServer2;
       
  1980 	ret = telServer2.Connect();
       
  1981 	ASSERT_EQUALS(KErrNone, ret);
       
  1982 	CleanupClosePushL(telServer2);
       
  1983 
       
  1984 	RMobilePhone phone2;
       
  1985 	ret = phone2.Open(telServer2, KMmTsyPhoneName);
       
  1986 	ASSERT_EQUALS(KErrNone, ret);
       
  1987 	CleanupClosePushL(phone2);
       
  1988 
       
  1989 	RMobileBroadcastMessaging messaging2;
       
  1990 	ret = messaging2.Open(phone2);
       
  1991 	ASSERT_EQUALS(KErrNone, ret);
       
  1992 	CleanupClosePushL(messaging2);
       
  1993 
       
  1994 	//-------------------------------------------------------------------------
       
  1995 	// Test A: Test multiple clients requesting RMobileBroadcastMessaging::SetFilterSetting
       
  1996  	//-------------------------------------------------------------------------
       
  1997 
       
  1998 	// setting environement ( CMmBroadcastTsy::iCbRoutingActivated to ETrue)
       
  1999 	TRequestStatus reqStatus;
       
  2000 	iMockLTSY.NotifyTerminated(reqStatus);	
       
  2001     iMockLTSY.CompleteL(EMobileBroadcastMessagingReceiveMessage, KErrNone);
       
  2002 	User::WaitForRequest(reqStatus);
       
  2003 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  2004 	AssertMockLtsyStatusL();
       
  2005 
       
  2006 	// setting 1st request
       
  2007 	TCbsCbmiAndLangAndFilter expectData;
       
  2008 	expectData.iSetting = RMobileBroadcastMessaging::EBroadcastAcceptAll;
       
  2009 	expectData.iCbmiStorage = KNullDesC; // deprecated
       
  2010 	expectData.iLanguageStorage = KNullDesC; // deprecated
       
  2011 
       
  2012 	TMockLtsyData1<TCbsCbmiAndLangAndFilter> expectLtsyData(expectData);
       
  2013     expectLtsyData.SerialiseL(data); 
       
  2014     iMockLTSY.ExpectL(EMobileBroadcastMessagingSetFilterSetting, data);
       
  2015     iMockLTSY.CompleteL(EMobileBroadcastMessagingSetFilterSetting, KErrNone, 5);
       
  2016 
       
  2017 	// setting 2nd request data
       
  2018 	TCbsCbmiAndLangAndFilter expectData2;
       
  2019 	expectData2.iSetting = RMobileBroadcastMessaging::EBroadcastAcceptNone;
       
  2020 	expectData2.iCbmiStorage = KNullDesC; // deprecated
       
  2021 	expectData2.iLanguageStorage = KNullDesC; // deprecated
       
  2022 
       
  2023 	TMockLtsyData1<TCbsCbmiAndLangAndFilter> expectLtsyData2(expectData2);
       
  2024 	data.Close();
       
  2025     expectLtsyData2.SerialiseL(data); 
       
  2026     iMockLTSY.ExpectL(EMobileBroadcastMessagingSetFilterSetting, data);
       
  2027     iMockLTSY.CompleteL(EMobileBroadcastMessagingSetFilterSetting, KErrNone, 10);
       
  2028 
       
  2029 	TRequestStatus reqStatus2;
       
  2030 	messaging.SetFilterSetting(reqStatus, expectData.iSetting);
       
  2031 	messaging2.SetFilterSetting(reqStatus2, expectData2.iSetting);
       
  2032 
       
  2033     // completion of 1st request
       
  2034 	User::WaitForRequest(reqStatus);
       
  2035 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  2036 
       
  2037 	// check how the setting is changed
       
  2038 	RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter setting;
       
  2039 	ret = messaging.GetFilterSetting(setting);
       
  2040 	ASSERT_EQUALS(KErrNone, ret);
       
  2041 	ASSERT_EQUALS(RMobileBroadcastMessaging::EBroadcastAcceptAll, setting);
       
  2042 
       
  2043     // completion of 2nd request
       
  2044 	User::WaitForRequest(reqStatus2);
       
  2045 	ASSERT_EQUALS(KErrNone, reqStatus2.Int());
       
  2046 
       
  2047 	// check how the setting is changed
       
  2048 	ret = messaging.GetFilterSetting(setting);
       
  2049 	ASSERT_EQUALS(KErrNone, ret);
       
  2050 	ASSERT_EQUALS(RMobileBroadcastMessaging::EBroadcastAcceptNone, setting);
       
  2051 
       
  2052 	AssertMockLtsyStatusL();
       
  2053 	CleanupStack::PopAndDestroy(6, this); // messaging2, phone2, telServer2, messaging, data, this
       
  2054 
       
  2055 	}
       
  2056 
       
  2057 
       
  2058 /**
       
  2059 @SYMTestCaseID BA-CTSY-BRMSG-BSFS-0005
       
  2060 @SYMComponent  telephony_ctsy
       
  2061 @SYMTestCaseDesc Test support in CTSY for RMobileBroadcastMessaging::SetFilterSetting with timeout
       
  2062 @SYMTestPriority High
       
  2063 @SYMTestActions Invokes RMobileBroadcastMessaging::SetFilterSetting and tests for timeout
       
  2064 @SYMTestExpectedResults Pass
       
  2065 @SYMTestType CT
       
  2066 */
       
  2067 void CCTsyBroadcastMessagingFU::TestSetFilterSetting0005L()
       
  2068 	{
       
  2069 
       
  2070 
       
  2071 	OpenEtelServerL(EUseExtendedError);
       
  2072 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2073 	OpenPhoneL();
       
  2074 
       
  2075 	RBuf8 data;
       
  2076 	CleanupClosePushL(data);
       
  2077 
       
  2078 	RMobileBroadcastMessaging messaging;
       
  2079 	TInt err = messaging.Open(iPhone);
       
  2080 	ASSERT_EQUALS(KErrNone, err);
       
  2081 	CleanupClosePushL(messaging);
       
  2082 	
       
  2083 	TRequestStatus reqStatus;
       
  2084 
       
  2085 	//-------------------------------------------------------------------------
       
  2086 	// Test A: Test timeout of RMobileBroadcastMessaging::SetFilterSetting
       
  2087  	//-------------------------------------------------------------------------
       
  2088 
       
  2089 	// setting environement ( CMmBroadcastTsy::iCbRoutingActivated to ETrue)
       
  2090 	iMockLTSY.NotifyTerminated(reqStatus);	
       
  2091     iMockLTSY.CompleteL(EMobileBroadcastMessagingReceiveMessage, KErrNone);
       
  2092 	User::WaitForRequest(reqStatus);
       
  2093 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  2094 	AssertMockLtsyStatusL();
       
  2095 
       
  2096 	// setting request and execute
       
  2097 	TCbsCbmiAndLangAndFilter expectData;
       
  2098 	expectData.iSetting = RMobileBroadcastMessaging::EBroadcastAcceptNone;
       
  2099 	expectData.iCbmiStorage = KNullDesC; // deprecated
       
  2100 	expectData.iLanguageStorage = KNullDesC; // deprecated
       
  2101 
       
  2102 	TMockLtsyData1<TCbsCbmiAndLangAndFilter> expectLtsyData(expectData);
       
  2103     expectLtsyData.SerialiseL(data); 
       
  2104     iMockLTSY.ExpectL(EMobileBroadcastMessagingSetFilterSetting, data);
       
  2105 
       
  2106 	messaging.SetFilterSetting(reqStatus, expectData.iSetting);
       
  2107 
       
  2108 	// completion
       
  2109 	User::WaitForRequest(reqStatus);
       
  2110 	ASSERT_EQUALS(KErrTimedOut, reqStatus.Int());
       
  2111 
       
  2112 	CleanupStack::PopAndDestroy(3, this); // messaging, data, this
       
  2113 
       
  2114 	}
       
  2115 
       
  2116 
       
  2117 /**
       
  2118 @SYMTestCaseID BA-CTSY-BRMSG-BGLF-0001
       
  2119 @SYMComponent  telephony_ctsy
       
  2120 @SYMTestCaseDesc Test support in CTSY for RMobileBroadcastMessaging::GetLanguageFilter
       
  2121 @SYMTestPriority High
       
  2122 @SYMTestActions Invokes RMobileBroadcastMessaging::GetLanguageFilter
       
  2123 @SYMTestExpectedResults Pass
       
  2124 @SYMTestType CT
       
  2125 */
       
  2126 void CCTsyBroadcastMessagingFU::TestGetLanguageFilter0001L()
       
  2127 	{
       
  2128 
       
  2129 	OpenEtelServerL(EUseExtendedError);
       
  2130 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2131 	OpenPhoneL();
       
  2132 
       
  2133 	RMobileBroadcastMessaging messaging;
       
  2134 	TInt err = messaging.Open(iPhone);
       
  2135 	ASSERT_EQUALS(KErrNone, err);
       
  2136 	CleanupClosePushL(messaging);
       
  2137 
       
  2138 	TBuf<1> buf;
       
  2139 	TRequestStatus reqStatus;
       
  2140 	messaging.GetLanguageFilter(reqStatus, buf);
       
  2141 	User::WaitForRequest(reqStatus);
       
  2142 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
  2143 
       
  2144 	AssertMockLtsyStatusL();
       
  2145 	CleanupStack::PopAndDestroy(2, this); // messaging, this
       
  2146 	
       
  2147 	}
       
  2148 
       
  2149 
       
  2150 /**
       
  2151 @SYMTestCaseID BA-CTSY-BRMSG-BSLF-0001
       
  2152 @SYMComponent  telephony_ctsy
       
  2153 @SYMTestCaseDesc Test support in CTSY for RMobileBroadcastMessaging::SetLanguageFilter
       
  2154 @SYMTestPriority High
       
  2155 @SYMTestActions Invokes RMobileBroadcastMessaging::SetLanguageFilter
       
  2156 @SYMTestExpectedResults Pass
       
  2157 @SYMTestType CT
       
  2158 */
       
  2159 void CCTsyBroadcastMessagingFU::TestSetLanguageFilter0001L()
       
  2160 	{
       
  2161 
       
  2162 	OpenEtelServerL(EUseExtendedError);
       
  2163 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2164 	OpenPhoneL();
       
  2165 
       
  2166 	RMobileBroadcastMessaging messaging;
       
  2167 	TInt err = messaging.Open(iPhone);
       
  2168 	ASSERT_EQUALS(KErrNone, err);
       
  2169 	CleanupClosePushL(messaging);
       
  2170 
       
  2171 	TRequestStatus reqStatus;
       
  2172 	TBuf<1> langFilter;
       
  2173 	messaging.SetLanguageFilter(reqStatus, langFilter);
       
  2174 	User::WaitForRequest(reqStatus);
       
  2175 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
  2176 
       
  2177 	AssertMockLtsyStatusL();
       
  2178 	CleanupStack::PopAndDestroy(2, this); // messaging, this
       
  2179 	
       
  2180 	}
       
  2181 
       
  2182 
       
  2183 /**
       
  2184 @SYMTestCaseID BA-CTSY-BRMSG-BNFSC-0001
       
  2185 @SYMComponent  telephony_ctsy
       
  2186 @SYMTestCaseDesc Test support in CTSY for RMobileBroadcastMessaging::NotifyFilterSettingChange
       
  2187 @SYMTestPriority High
       
  2188 @SYMTestActions Invokes RMobileBroadcastMessaging::NotifyFilterSettingChange
       
  2189 @SYMTestExpectedResults Pass
       
  2190 @SYMTestType CT
       
  2191 */
       
  2192 void CCTsyBroadcastMessagingFU::TestNotifyFilterSettingChange0001L()
       
  2193 	{
       
  2194 
       
  2195 	OpenEtelServerL(EUseExtendedError);
       
  2196 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2197 	OpenPhoneL();
       
  2198 
       
  2199 	RBuf8 data;
       
  2200 	CleanupClosePushL(data);
       
  2201 
       
  2202 	RMobileBroadcastMessaging messaging;
       
  2203 	TInt err = messaging.Open(iPhone);
       
  2204 	ASSERT_EQUALS(KErrNone, err);
       
  2205 	CleanupClosePushL(messaging);
       
  2206 
       
  2207 	TRequestStatus reqStatus;
       
  2208 
       
  2209  	//-------------------------------------------------------------------------
       
  2210 	// TEST C: Successful completion request of
       
  2211 	// RMobileBroadcastMessaging::NotifyFilterSettingChange.
       
  2212  	//-------------------------------------------------------------------------
       
  2213 
       
  2214 	// setting request and execute
       
  2215 	RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter setting;
       
  2216 	messaging.NotifyFilterSettingChange(reqStatus, setting);
       
  2217 
       
  2218 	// invoke FilterSettingChange
       
  2219 	TRequestStatus mockLtsyStatus;
       
  2220 	RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter newSetting =
       
  2221 	                                RMobileBroadcastMessaging::EBroadcastAcceptNone;
       
  2222 	messaging.SetFilterSetting(mockLtsyStatus, newSetting);
       
  2223 	User::WaitForRequest(mockLtsyStatus);
       
  2224 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  2225 
       
  2226 	// completion and check results
       
  2227 	User::WaitForRequest(reqStatus);
       
  2228 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  2229 	ASSERT_EQUALS(newSetting, setting);
       
  2230 
       
  2231 	AssertMockLtsyStatusL();
       
  2232 	
       
  2233  	//-------------------------------------------------------------------------
       
  2234 	// TEST C: Successful completion when CMmBroadcastTsy::iCbRoutingActivated is ETrue
       
  2235  	//-------------------------------------------------------------------------
       
  2236 	// setting request and execute
       
  2237 	messaging.NotifyFilterSettingChange(reqStatus, setting);
       
  2238 
       
  2239 	// setting environement ( CMmBroadcastTsy::iCbRoutingActivated to ETrue)
       
  2240 	iMockLTSY.NotifyTerminated(mockLtsyStatus);	
       
  2241     iMockLTSY.CompleteL(EMobileBroadcastMessagingReceiveMessage, KErrNone);
       
  2242 	User::WaitForRequest(mockLtsyStatus);
       
  2243 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  2244 	AssertMockLtsyStatusL();
       
  2245 
       
  2246 	// invoke FilterSettingChange
       
  2247 	TCbsCbmiAndLangAndFilter expectData;
       
  2248 	expectData.iSetting = RMobileBroadcastMessaging::EBroadcastAcceptAll;
       
  2249 	expectData.iCbmiStorage = KNullDesC; // deprecated
       
  2250 	expectData.iLanguageStorage = KNullDesC; // deprecated
       
  2251 	TMockLtsyData1<TCbsCbmiAndLangAndFilter> expectLtsyData(expectData);
       
  2252     expectLtsyData.SerialiseL(data); 
       
  2253     iMockLTSY.ExpectL(EMobileBroadcastMessagingSetFilterSetting, data);
       
  2254 	iMockLTSY.CompleteL(EMobileBroadcastMessagingSetFilterSetting, KErrNone);
       
  2255 	messaging.SetFilterSetting(mockLtsyStatus, expectData.iSetting);
       
  2256 	User::WaitForRequest(mockLtsyStatus); // KERN:4 in CMmBroadcastTsy.cpp line 1059
       
  2257 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  2258 
       
  2259 	// completion and check results
       
  2260 	User::WaitForRequest(reqStatus);
       
  2261 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  2262 	ASSERT_EQUALS(expectData.iSetting, setting);
       
  2263 
       
  2264 	AssertMockLtsyStatusL();
       
  2265 	
       
  2266 	CleanupStack::PopAndDestroy(3, this); // messaging, data, this
       
  2267 	
       
  2268 	}
       
  2269 
       
  2270 
       
  2271 /**
       
  2272 @SYMTestCaseID BA-CTSY-BRMSG-BNFSC-0002
       
  2273 @SYMComponent  telephony_ctsy
       
  2274 @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileBroadcastMessaging::NotifyFilterSettingChange
       
  2275 @SYMTestPriority High
       
  2276 @SYMTestActions Invokes cancelling of RMobileBroadcastMessaging::NotifyFilterSettingChange
       
  2277 @SYMTestExpectedResults Pass
       
  2278 @SYMTestType CT
       
  2279 */
       
  2280 void CCTsyBroadcastMessagingFU::TestNotifyFilterSettingChange0002L()
       
  2281 	{
       
  2282 
       
  2283 	OpenEtelServerL(EUseExtendedError);
       
  2284 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2285 	OpenPhoneL();
       
  2286 
       
  2287 	RMobileBroadcastMessaging messaging;
       
  2288 	TInt err = messaging.Open(iPhone);
       
  2289 	ASSERT_EQUALS(KErrNone, err);
       
  2290 	CleanupClosePushL(messaging);
       
  2291 
       
  2292 	TRequestStatus reqStatus;
       
  2293 
       
  2294 	//-------------------------------------------------------------------------
       
  2295 	// Test cancelling of RMobileBroadcastMessaging::NotifyFilterSettingChange
       
  2296 	//-------------------------------------------------------------------------
       
  2297  
       
  2298 	// setting request and execute
       
  2299 	RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter setting;
       
  2300 	messaging.NotifyFilterSettingChange(reqStatus, setting);
       
  2301 	
       
  2302 	messaging.CancelAsyncRequest(EMobileBroadcastMessagingNotifyFilterSettingChange);
       
  2303 
       
  2304 	// completion and check results
       
  2305 	User::WaitForRequest(reqStatus);
       
  2306 	ASSERT_EQUALS(KErrCancel, reqStatus.Int());
       
  2307 
       
  2308 	AssertMockLtsyStatusL();
       
  2309 	
       
  2310 	CleanupStack::PopAndDestroy(2, this); // messaging, this
       
  2311 
       
  2312 	}
       
  2313 
       
  2314 
       
  2315 /**
       
  2316 @SYMTestCaseID BA-CTSY-BRMSG-BNFSC-0003
       
  2317 @SYMComponent  telephony_ctsy
       
  2318 @SYMTestCaseDesc Test support in CTSY for RMobileBroadcastMessaging::NotifyFilterSettingChange with bad parameter data
       
  2319 @SYMTestPriority High
       
  2320 @SYMTestActions Invokes RMobileBroadcastMessaging::NotifyFilterSettingChange with bad parameter data
       
  2321 @SYMTestExpectedResults Pass
       
  2322 @SYMTestType CT
       
  2323 */
       
  2324 void CCTsyBroadcastMessagingFU::TestNotifyFilterSettingChange0003L()
       
  2325 	{
       
  2326 
       
  2327 	OpenEtelServerL(EUseExtendedError);
       
  2328 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2329 	OpenPhoneL();
       
  2330 
       
  2331 	RMobileBroadcastMessaging messaging;
       
  2332 	TInt err = messaging.Open(iPhone);
       
  2333 	ASSERT_EQUALS(KErrNone, err);
       
  2334 	CleanupClosePushL(messaging);
       
  2335 
       
  2336 	TRequestStatus reqStatus;
       
  2337 
       
  2338 	//-------------------------------------------------------------------------
       
  2339 	// Test A: Test passing wrong version of parameters to
       
  2340 	// RMobileBroadcastMessaging::NotifyFilterSettingChange
       
  2341  	//-------------------------------------------------------------------------
       
  2342 
       
  2343 	// setting request and execute
       
  2344 	RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter* settingPtr(NULL);
       
  2345 	messaging.NotifyFilterSettingChange(reqStatus, *settingPtr);
       
  2346 
       
  2347 	// completion and check results
       
  2348 	User::WaitForRequest(reqStatus);
       
  2349 	ASSERT_EQUALS(KErrBadDescriptor, reqStatus.Int());
       
  2350 
       
  2351 	AssertMockLtsyStatusL();
       
  2352 
       
  2353 	CleanupStack::PopAndDestroy(2, this); // messaging, this
       
  2354 
       
  2355 	}
       
  2356 
       
  2357 
       
  2358 /**
       
  2359 @SYMTestCaseID BA-CTSY-BRMSG-BNFSC-0004
       
  2360 @SYMComponent  telephony_ctsy
       
  2361 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileBroadcastMessaging::NotifyFilterSettingChange
       
  2362 @SYMTestPriority High
       
  2363 @SYMTestActions Invokes multiple client requests to RMobileBroadcastMessaging::NotifyFilterSettingChange
       
  2364 @SYMTestExpectedResults Pass
       
  2365 @SYMTestType CT
       
  2366 */
       
  2367 void CCTsyBroadcastMessagingFU::TestNotifyFilterSettingChange0004L()
       
  2368 	{
       
  2369 					
       
  2370 	OpenEtelServerL(EUseExtendedError);
       
  2371 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2372 	OpenPhoneL();
       
  2373 
       
  2374 	RMobileBroadcastMessaging messaging;
       
  2375 	TInt err = messaging.Open(iPhone);
       
  2376 	ASSERT_EQUALS(KErrNone, err);
       
  2377 	CleanupClosePushL(messaging);
       
  2378 
       
  2379 	// Open second client
       
  2380 	RTelServer telServer2;
       
  2381 	err = telServer2.Connect();
       
  2382 	ASSERT_EQUALS(KErrNone, err);
       
  2383 	CleanupClosePushL(telServer2);
       
  2384 
       
  2385 	RMobilePhone phone2;
       
  2386 	err = phone2.Open(telServer2, KMmTsyPhoneName);
       
  2387 	ASSERT_EQUALS(KErrNone, err);
       
  2388 	CleanupClosePushL(phone2);
       
  2389 
       
  2390 	RMobileBroadcastMessaging messaging2;
       
  2391 	err = messaging2.Open(phone2);
       
  2392 	ASSERT_EQUALS(KErrNone, err);
       
  2393 	CleanupClosePushL(messaging2);
       
  2394 
       
  2395 	//-------------------------------------------------------------------------
       
  2396 	// Test A: Test multiple clients requesting RMobileBroadcastMessaging::NotifyFilterSettingChange
       
  2397  	//-------------------------------------------------------------------------
       
  2398 
       
  2399 	// execute 1st request
       
  2400 	RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter setting;
       
  2401 	TRequestStatus reqStatus;
       
  2402 	messaging.NotifyFilterSettingChange(reqStatus, setting);
       
  2403 
       
  2404 	// execute 2nd request
       
  2405 	RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter setting2;
       
  2406 	TRequestStatus reqStatus2;
       
  2407 	messaging2.NotifyFilterSettingChange(reqStatus2, setting2);
       
  2408 
       
  2409 	// invoke FilterSettingChange
       
  2410 	TRequestStatus mockLtsyStatus;
       
  2411 	RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter newSetting =
       
  2412 	                                RMobileBroadcastMessaging::EBroadcastAcceptNone;
       
  2413 	messaging.SetFilterSetting(mockLtsyStatus, newSetting);
       
  2414 	User::WaitForRequest(mockLtsyStatus);
       
  2415 	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  2416 
       
  2417 	// completion and check results
       
  2418 	User::WaitForRequest(reqStatus);
       
  2419 	ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  2420 	ASSERT_EQUALS(newSetting, setting);
       
  2421 
       
  2422 	User::WaitForRequest(reqStatus2);
       
  2423 	ASSERT_EQUALS(KErrNone, reqStatus2.Int());
       
  2424 	ASSERT_EQUALS(newSetting, setting2);
       
  2425 
       
  2426 	AssertMockLtsyStatusL();
       
  2427 	CleanupStack::PopAndDestroy(5, this); // messaging2, phone2, telServer2, messaging, this
       
  2428 
       
  2429 	}
       
  2430 
       
  2431 
       
  2432 /**
       
  2433 @SYMTestCaseID BA-CTSY-BRMSG-BNLFC-0001
       
  2434 @SYMComponent  telephony_ctsy
       
  2435 @SYMTestCaseDesc Test support in CTSY for RMobileBroadcastMessaging::NotifyLanguageFilterChange
       
  2436 @SYMTestPriority High
       
  2437 @SYMTestActions Invokes RMobileBroadcastMessaging::NotifyLanguageFilterChange
       
  2438 @SYMTestExpectedResults Pass
       
  2439 @SYMTestType CT
       
  2440 */
       
  2441 void CCTsyBroadcastMessagingFU::TestNotifyLanguageFilterChange0001L()
       
  2442 	{
       
  2443 
       
  2444 	OpenEtelServerL(EUseExtendedError);
       
  2445 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2446 	OpenPhoneL();
       
  2447 
       
  2448 	RMobileBroadcastMessaging messaging;
       
  2449 	TInt err = messaging.Open(iPhone);
       
  2450 	ASSERT_EQUALS(KErrNone, err);
       
  2451 	CleanupClosePushL(messaging);
       
  2452 
       
  2453 	TBuf<1> buf;
       
  2454 	TRequestStatus reqStatus;
       
  2455 	messaging.NotifyLanguageFilterChange(reqStatus, buf);
       
  2456 	User::WaitForRequest(reqStatus);
       
  2457 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
  2458 
       
  2459 	AssertMockLtsyStatusL();
       
  2460 	CleanupStack::PopAndDestroy(2, this); // messaging, this
       
  2461 	
       
  2462 	}
       
  2463 
       
  2464 
       
  2465 /**
       
  2466 @SYMTestCaseID BA-CTSY-BRMSG-MNBILC-0001
       
  2467 @SYMComponent  telephony_ctsy
       
  2468 @SYMTestCaseDesc Test support in CTSY for RMobileBroadcastMessaging::NotifyBroadcastIdListChange
       
  2469 @SYMTestPriority High
       
  2470 @SYMTestActions Invokes RMobileBroadcastMessaging::NotifyBroadcastIdListChange
       
  2471 @SYMTestExpectedResults Pass
       
  2472 @SYMTestType CT
       
  2473 */
       
  2474 void CCTsyBroadcastMessagingFU::TestNotifyBroadcastIdListChange0001L()
       
  2475 	{
       
  2476 
       
  2477 	OpenEtelServerL(EUseExtendedError);
       
  2478 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2479 	OpenPhoneL();
       
  2480 
       
  2481 	RMobileBroadcastMessaging messaging;
       
  2482 	TInt err = messaging.Open(iPhone);
       
  2483 	ASSERT_EQUALS(KErrNone, err);
       
  2484 	CleanupClosePushL(messaging);
       
  2485 
       
  2486 	TRequestStatus reqStatus;
       
  2487 	messaging.NotifyBroadcastIdListChange(reqStatus);
       
  2488 	User::WaitForRequest(reqStatus);
       
  2489 	ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
  2490 
       
  2491 	AssertMockLtsyStatusL();
       
  2492 	CleanupStack::PopAndDestroy(2, this); // messaging, this
       
  2493 	
       
  2494 	}
       
  2495 
       
  2496 
       
  2497 /**
       
  2498 @SYMTestCaseID BA-CTSY-BRMSG-BGC-0001
       
  2499 @SYMComponent  telephony_ctsy
       
  2500 @SYMTestCaseDesc Test support in CTSY for RMobileBroadcastMessaging::GetCaps
       
  2501 @SYMTestPriority High
       
  2502 @SYMTestActions Invokes RMobileBroadcastMessaging::GetCaps
       
  2503 @SYMTestExpectedResults Pass
       
  2504 @SYMTestType CT
       
  2505 */
       
  2506 void CCTsyBroadcastMessagingFU::TestGetCaps0001L()
       
  2507 	{
       
  2508 
       
  2509 	OpenEtelServerL(EUseExtendedError);
       
  2510 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2511 	OpenPhoneL();
       
  2512 
       
  2513 	RMobileBroadcastMessaging messaging;
       
  2514 	TInt err = messaging.Open(iPhone);
       
  2515 	ASSERT_EQUALS(KErrNone, err);
       
  2516 	CleanupClosePushL(messaging);
       
  2517 
       
  2518  	//-------------------------------------------------------------------------
       
  2519 	// TEST C: Successful completion request of
       
  2520 	// RMobileBroadcastMessaging::GetCaps.
       
  2521  	//-------------------------------------------------------------------------
       
  2522 
       
  2523 	RMobileBroadcastMessaging::TMobileBroadcastCapsV1 caps;
       
  2524 	RMobileBroadcastMessaging::TMobileBroadcastCapsV1Pckg capsPckg(caps);
       
  2525 	err = messaging.GetCaps(capsPckg);
       
  2526 	
       
  2527 	// check results
       
  2528 	ASSERT_EQUALS(KErrNone, err);
       
  2529 
       
  2530 	TUint32 expModeCaps = RMobileBroadcastMessaging::KCapsGsmTpduFormat;
       
  2531 #ifdef __WINS__
       
  2532 	expModeCaps = RMobileBroadcastMessaging::KCapsWcdmaTpduFormat
       
  2533         | RMobileBroadcastMessaging::KCapsGsmTpduFormat;
       
  2534 #endif // __WINS__       
       
  2535 	ASSERT_EQUALS(expModeCaps, caps.iModeCaps);
       
  2536 
       
  2537 	TUint32 expFilterCaps = RMobileBroadcastMessaging::KCapsSimpleFilter;
       
  2538 	ASSERT_EQUALS(expFilterCaps, caps.iFilterCaps);
       
  2539 
       
  2540 	AssertMockLtsyStatusL();
       
  2541 	CleanupStack::PopAndDestroy(2, this); // messaging, this
       
  2542 	
       
  2543 	}
       
  2544 
       
  2545 
       
  2546 /**
       
  2547 @SYMTestCaseID BA-CTSY-BRMSG-BGC-0003
       
  2548 @SYMComponent  telephony_ctsy
       
  2549 @SYMTestCaseDesc Test support in CTSY for RMobileBroadcastMessaging::GetCaps with bad parameter data
       
  2550 @SYMTestPriority High
       
  2551 @SYMTestActions Invokes RMobileBroadcastMessaging::GetCaps with bad parameter data
       
  2552 @SYMTestExpectedResults Pass
       
  2553 @SYMTestType CT
       
  2554 */
       
  2555 void CCTsyBroadcastMessagingFU::TestGetCaps0003L()
       
  2556 	{
       
  2557 
       
  2558 	OpenEtelServerL(EUseExtendedError);
       
  2559 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2560 	OpenPhoneL();
       
  2561 
       
  2562 	RMobileBroadcastMessaging messaging;
       
  2563 	TInt err = messaging.Open(iPhone);
       
  2564 	ASSERT_EQUALS(KErrNone, err);
       
  2565 	CleanupClosePushL(messaging);
       
  2566 
       
  2567 	//-------------------------------------------------------------------------
       
  2568 	// Test A: Test passing wrong version of parameters to
       
  2569 	// RMobileBroadcastMessaging::GetCaps
       
  2570  	//-------------------------------------------------------------------------
       
  2571 
       
  2572 	RMobileBroadcastMessaging::TMobileBroadcastCapsV1* caps(NULL);
       
  2573 	RMobileBroadcastMessaging::TMobileBroadcastCapsV1Pckg capsPckg(*caps);
       
  2574 	err = messaging.GetCaps(capsPckg);
       
  2575 	ASSERT_EQUALS(KErrBadDescriptor, err);
       
  2576 
       
  2577 	//-------------------------------------------------------------------------
       
  2578 	// Test B: Test passing wrong descriptor size to parameter in
       
  2579 	// RMobileBroadcastMessaging::GetCaps
       
  2580  	//-------------------------------------------------------------------------
       
  2581 
       
  2582 	TInt intCaps;
       
  2583 	TPckg<TInt> intCapsPckg(intCaps);
       
  2584 	err = messaging.GetCaps(intCapsPckg);
       
  2585 	ASSERT_EQUALS(KErrArgument, err);
       
  2586 
       
  2587 	AssertMockLtsyStatusL();
       
  2588 	CleanupStack::PopAndDestroy(2, this); // messaging, this
       
  2589 
       
  2590 	}