telephonyserverplugins/common_tsy/test/component/src/cctsysmsmessagingfu.cpp
changeset 0 3553901f7fa8
child 5 7ef16719d8cb
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 SmsMessaging in the Common TSY.
       
    15 // 
       
    16 //
       
    17 
       
    18 /**
       
    19  @file 
       
    20 */
       
    21 
       
    22 #include "cctsysmsmessagingfu.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 
       
    31 CTestSuite* CCTsySmsMessagingFU::CreateSuiteL(const TDesC& aName)
       
    32     {
       
    33     SUB_SUITE;
       
    34 
       
    35     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestNotifyMoSmsBearerChange0001L);
       
    36     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestNotifyReceiveModeChange0001L);
       
    37     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestNotifyReceiveModeChange0002L);
       
    38     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestNotifyReceiveModeChange0004L);
       
    39     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestSendMessage0001L);
       
    40     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestSendMessage0002L);
       
    41     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestSendMessage0003L);
       
    42     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestSendMessage0004L);
       
    43     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestSendMessage0005L);
       
    44     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestAckSmsStored0001L);
       
    45     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestAckSmsStored0002L);
       
    46     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestAckSmsStored0004L);
       
    47     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestAckSmsStored0005L);
       
    48     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestNackSmsStored0001L);
       
    49     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestNackSmsStored0002L);
       
    50     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestNackSmsStored0004L);
       
    51     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestNackSmsStored0005L);
       
    52     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestGetMoSmsBearer0001L);
       
    53     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestGetReceiveMode0001L);
       
    54     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestReceiveMessage0001L);
       
    55     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestReceiveMessage0001AL);
       
    56     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestReceiveMessage0002L);
       
    57     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestReceiveMessage0003L);
       
    58     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestReceiveMessage0004L);
       
    59     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestSetMoSmsBearer0001L);
       
    60     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestSetMoSmsBearer0002L);
       
    61     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestSetMoSmsBearer0004L);
       
    62     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestSetReceiveMode0001L);
       
    63     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestSetReceiveMode0002L);
       
    64     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestSetReceiveMode0004L);
       
    65     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestStoreSmspListL0001L);
       
    66     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestStoreSmspListL0002L);
       
    67     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestStoreSmspListL0004L);
       
    68     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestStoreSmspListL0005L);
       
    69     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestResumeSmsReception0001L);
       
    70     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestResumeSmsReception0002L);
       
    71     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestResumeSmsReception0004L);
       
    72     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestResumeSmsReception0005L);
       
    73     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestGetMessageStoreInfo0001L);
       
    74     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestGetMessageStoreInfo0002L);
       
    75     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestGetMessageStoreInfo0003L);
       
    76     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestGetMessageStoreInfo0004L);
       
    77     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestGetMessageStoreInfo0005L);
       
    78     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestNotifySmspListChange0001L);
       
    79     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestNotifySmspListChange0002L);
       
    80     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestNotifySmspListChange0004L);
       
    81     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestSendMessageNoFdnCheck0001L);
       
    82     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestSendMessageNoFdnCheck0002L);
       
    83     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestSendMessageNoFdnCheck0003L);
       
    84     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestSendMessageNoFdnCheck0004L);
       
    85     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestSendMessageNoFdnCheck0005L);
       
    86     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestEnumerateMessageStores0001L);
       
    87     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestGetCaps0001L);
       
    88     ADD_TEST_STEP_ISO_CPP(CCTsySmsMessagingFU, TestGetCaps0003L);
       
    89 
       
    90 
       
    91     END_SUITE;
       
    92     }
       
    93 
       
    94 
       
    95 //
       
    96 // Actual test cases
       
    97 //
       
    98 
       
    99 
       
   100 /**
       
   101 @SYMTestCaseID BA-CTSY-SMSM-SNMSBC-0001
       
   102 @SYMComponent  telephony_ctsy
       
   103 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::NotifyMoSmsBearerChange
       
   104 @SYMTestPriority High
       
   105 @SYMTestActions Invokes RMobileSmsMessaging::NotifyMoSmsBearerChange
       
   106 @SYMTestExpectedResults Pass
       
   107 @SYMTestType CT
       
   108 */
       
   109 void CCTsySmsMessagingFU::TestNotifyMoSmsBearerChange0001L()
       
   110     {
       
   111 
       
   112     OpenEtelServerL(EUseExtendedError);
       
   113     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   114     OpenPhoneL();
       
   115 
       
   116     RMobileSmsMessaging messaging;
       
   117     TInt err = messaging.Open(iPhone);
       
   118     ASSERT_EQUALS(KErrNone, err);
       
   119     CleanupClosePushL(messaging);
       
   120 
       
   121     RMobileSmsMessaging::TMobileSmsBearer smsBearer;
       
   122     TRequestStatus reqStatus;
       
   123         
       
   124     //-------------------------------------------------------------------------
       
   125     // TEST A: failure to dispatch request to LTSY
       
   126     //-------------------------------------------------------------------------
       
   127 
       
   128     messaging.NotifyMoSmsBearerChange(reqStatus, smsBearer);
       
   129 
       
   130     User::WaitForRequest(reqStatus);
       
   131     ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
   132 
       
   133     AssertMockLtsyStatusL();
       
   134     CleanupStack::PopAndDestroy(2, this); 
       
   135     
       
   136     }
       
   137 
       
   138 
       
   139 
       
   140 /**
       
   141 @SYMTestCaseID BA-CTSY-SMSM-SNRMC-0001
       
   142 @SYMComponent  telephony_ctsy
       
   143 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::NotifyReceiveModeChange
       
   144 @SYMTestPriority High
       
   145 @SYMTestActions Invokes RMobileSmsMessaging::NotifyReceiveModeChange
       
   146 @SYMTestExpectedResults Pass
       
   147 @SYMTestType CT
       
   148 */
       
   149 void CCTsySmsMessagingFU::TestNotifyReceiveModeChange0001L()
       
   150     {
       
   151 
       
   152     OpenEtelServerL(EUseExtendedError);
       
   153     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   154     OpenPhoneL();
       
   155 
       
   156 
       
   157     RMobileSmsMessaging messaging;
       
   158     TInt err = messaging.Open(iPhone);
       
   159     ASSERT_EQUALS(KErrNone, err);
       
   160     CleanupClosePushL(messaging);
       
   161 
       
   162     RMobileSmsMessaging::TMobileSmsReceiveMode smsReceiveMode;
       
   163     RMobileSmsMessaging::TMobileSmsReceiveMode smsSetReceiveMode(RMobileSmsMessaging::EReceiveUnstoredClientAck);
       
   164     TRequestStatus reqStatus;
       
   165     TRequestStatus reqSetStatus;
       
   166 
       
   167     //-------------------------------------------------------------------------
       
   168     // TEST E: Unsolicited completion of RMobileSmsMessaging::NotifyReceiveModeChange
       
   169     // from LTSY.
       
   170     //-------------------------------------------------------------------------
       
   171 
       
   172     messaging.SetReceiveMode(reqSetStatus, smsSetReceiveMode);
       
   173 
       
   174     User::WaitForRequest(reqSetStatus);
       
   175     ASSERT_EQUALS(KErrNone, reqSetStatus.Int());
       
   176     
       
   177     //-------------------------------------------------------------------------
       
   178     // TEST C: Successful completion request of
       
   179     // RMobileSmsMessaging::NotifyReceiveModeChange when result is not cached.
       
   180     //-------------------------------------------------------------------------
       
   181 
       
   182     messaging.NotifyReceiveModeChange(reqStatus, smsReceiveMode);
       
   183 
       
   184     messaging.SetReceiveMode(reqSetStatus, smsSetReceiveMode);
       
   185 
       
   186     User::WaitForRequest(reqSetStatus);
       
   187     ASSERT_EQUALS(KErrNone, reqSetStatus.Int());
       
   188 
       
   189     User::WaitForRequest(reqStatus);
       
   190     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
   191 
       
   192     ASSERT_EQUALS(smsSetReceiveMode, smsReceiveMode);
       
   193 
       
   194 
       
   195     //-------------------------------------------------------------------------
       
   196     // TEST E2: Unsolicited completion of RMobileSmsMessaging::NotifyReceiveModeChange
       
   197     // from LTSY.
       
   198     //-------------------------------------------------------------------------
       
   199 
       
   200     ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 360201); 
       
   201     ASSERT_TRUE(EFalse);
       
   202 
       
   203     //Request for EMobileSmsMessagingNotifyReceiveModeChange is self reposting. 
       
   204     //If it was completed somehow and then SetReceiveMode() was called without call of NotifyReceiveModeChange() - 
       
   205     //this result in getting wrong request handle for completion in CTelObject::ReqCompleted() 
       
   206     //{updatedReqEntry=PhoneOwner()->FindByTsyHandleAndPlacedRequest(aTsyReqHandle);
       
   207     //__ASSERT_ALWAYS(updatedReqEntry!=NULL, Fault(EEtelFaultCompletionReceivedWithNoReqPackage));}
       
   208 
       
   209     messaging.SetReceiveMode(reqSetStatus, smsSetReceiveMode);
       
   210 
       
   211     User::WaitForRequest(reqSetStatus);
       
   212     ASSERT_EQUALS(KErrNone, reqSetStatus.Int());
       
   213     
       
   214 
       
   215     AssertMockLtsyStatusL();
       
   216     CleanupStack::PopAndDestroy(2, this); // data, this
       
   217     
       
   218     }
       
   219 
       
   220 
       
   221 /**
       
   222 @SYMTestCaseID BA-CTSY-SMSM-SNRMC-0002
       
   223 @SYMComponent  telephony_ctsy
       
   224 @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsMessaging::NotifyReceiveModeChange
       
   225 @SYMTestPriority High
       
   226 @SYMTestActions Invokes cancelling of RMobileSmsMessaging::NotifyReceiveModeChange
       
   227 @SYMTestExpectedResults Pass
       
   228 @SYMTestType CT
       
   229 */
       
   230 void CCTsySmsMessagingFU::TestNotifyReceiveModeChange0002L()
       
   231     {
       
   232 
       
   233     OpenEtelServerL(EUseExtendedError);
       
   234     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   235     OpenPhoneL();
       
   236 
       
   237     RMobileSmsMessaging messaging;
       
   238     TInt err = messaging.Open(iPhone);
       
   239     ASSERT_EQUALS(KErrNone, err);
       
   240     CleanupClosePushL(messaging);
       
   241 
       
   242     RMobileSmsMessaging::TMobileSmsReceiveMode smsReceiveMode;
       
   243     RMobileSmsMessaging::TMobileSmsReceiveMode smsSetReceiveMode(RMobileSmsMessaging::EReceiveUnstoredClientAck);
       
   244     TRequestStatus reqStatus;
       
   245     TRequestStatus reqSetStatus;
       
   246 
       
   247     //-------------------------------------------------------------------------
       
   248     // Test cancelling of RMobileSmsMessaging::NotifyReceiveModeChange
       
   249     //-------------------------------------------------------------------------
       
   250     
       
   251     messaging.NotifyReceiveModeChange(reqStatus, smsReceiveMode);
       
   252 
       
   253     messaging.CancelAsyncRequest(EMobileSmsMessagingNotifyReceiveModeChange);
       
   254 
       
   255     messaging.SetReceiveMode(reqSetStatus, smsSetReceiveMode);
       
   256 
       
   257     User::WaitForRequest(reqSetStatus);
       
   258     ASSERT_EQUALS(KErrNone, reqSetStatus.Int());
       
   259 
       
   260 
       
   261     User::WaitForRequest(reqStatus);
       
   262     ASSERT_EQUALS(KErrCancel, reqStatus.Int());
       
   263 
       
   264     CleanupStack::PopAndDestroy(2);
       
   265     
       
   266     }
       
   267 
       
   268 
       
   269 
       
   270 /**
       
   271 @SYMTestCaseID BA-CTSY-SMSM-SNRMC-0004
       
   272 @SYMComponent  telephony_ctsy
       
   273 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsMessaging::NotifyReceiveModeChange
       
   274 @SYMTestPriority High
       
   275 @SYMTestActions Invokes multiple client requests to RMobileSmsMessaging::NotifyReceiveModeChange
       
   276 @SYMTestExpectedResults Pass
       
   277 @SYMTestType CT
       
   278 */
       
   279 void CCTsySmsMessagingFU::TestNotifyReceiveModeChange0004L()
       
   280     {
       
   281                     
       
   282     OpenEtelServerL(EUseExtendedError);
       
   283     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   284     OpenPhoneL();
       
   285 
       
   286 
       
   287     // Open second client
       
   288     RTelServer telServer2;
       
   289     TInt ret = telServer2.Connect();
       
   290     ASSERT_EQUALS(KErrNone, ret);
       
   291     CleanupClosePushL(telServer2);
       
   292 
       
   293     RMobilePhone phone2;
       
   294     ret = phone2.Open(telServer2,KMmTsyPhoneName);
       
   295     ASSERT_EQUALS(KErrNone, ret);
       
   296     CleanupClosePushL(phone2);
       
   297 
       
   298 
       
   299     RMobileSmsMessaging messaging;
       
   300     TInt err = messaging.Open(iPhone);
       
   301     ASSERT_EQUALS(KErrNone, err);
       
   302     CleanupClosePushL(messaging);
       
   303 
       
   304     RMobileSmsMessaging messaging2;
       
   305     err = messaging2.Open(phone2);
       
   306     ASSERT_EQUALS(KErrNone, err);
       
   307     CleanupClosePushL(messaging2);
       
   308 
       
   309     RMobileSmsMessaging::TMobileSmsReceiveMode smsReceiveMode;
       
   310     RMobileSmsMessaging::TMobileSmsReceiveMode smsSetReceiveMode(RMobileSmsMessaging::EReceiveUnstoredClientAck);
       
   311     TRequestStatus reqStatus;
       
   312     TRequestStatus reqSetStatus;
       
   313 
       
   314     RMobileSmsMessaging::TMobileSmsReceiveMode smsReceiveMode2;
       
   315     TRequestStatus reqStatus2;
       
   316     TRequestStatus reqSetStatus2;
       
   317 
       
   318     messaging.NotifyReceiveModeChange(reqStatus, smsReceiveMode);
       
   319     messaging2.NotifyReceiveModeChange(reqStatus2, smsReceiveMode2);
       
   320 
       
   321     messaging.SetReceiveMode(reqSetStatus, smsSetReceiveMode);
       
   322 
       
   323     User::WaitForRequest(reqSetStatus);
       
   324     ASSERT_EQUALS(KErrNone, reqSetStatus.Int());
       
   325 
       
   326     User::WaitForRequest(reqStatus);
       
   327     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
   328 
       
   329     User::WaitForRequest(reqStatus2);
       
   330     ASSERT_EQUALS(KErrNone, reqStatus2.Int());
       
   331 
       
   332     ASSERT_EQUALS(smsSetReceiveMode, smsReceiveMode);
       
   333     ASSERT_EQUALS(smsSetReceiveMode, smsReceiveMode2);
       
   334 
       
   335 
       
   336     CleanupStack::PopAndDestroy(5, this); 
       
   337 
       
   338     }
       
   339 
       
   340 
       
   341 
       
   342 /**
       
   343 @SYMTestCaseID BA-CTSY-SMSM-SSM-0001
       
   344 @SYMComponent  telephony_ctsy
       
   345 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::SendMessage
       
   346 @SYMTestPriority High
       
   347 @SYMTestActions Invokes RMobileSmsMessaging::SendMessage
       
   348 @SYMTestExpectedResults Pass
       
   349 @SYMTestType CT
       
   350 */
       
   351 void CCTsySmsMessagingFU::TestSendMessage0001L()
       
   352     {
       
   353 
       
   354     OpenEtelServerL(EUseExtendedError);
       
   355     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   356     OpenPhoneL();
       
   357 
       
   358     RBuf8 data;
       
   359     CleanupClosePushL(data);
       
   360 
       
   361     RMobileSmsMessaging messaging;
       
   362     TInt err = messaging.Open(iPhone);
       
   363     ASSERT_EQUALS(KErrNone, err);
       
   364     CleanupClosePushL(messaging);
       
   365         
       
   366     //-------------------------------------------------------------------------
       
   367     // TEST A: failure to dispatch request to LTSY
       
   368     //-------------------------------------------------------------------------
       
   369 
       
   370     _LIT8(KMessage, "Merry christmas");
       
   371     TBuf8<32> tmpName(KMessage);
       
   372     
       
   373     TRequestStatus reqStatus;
       
   374     RMobileSmsMessaging::TMobileSmsSendAttributesV1 expectSmsAttr;
       
   375     RMobileSmsMessaging::TMobileSmsSendAttributesV1 smsAttr;
       
   376     RMobileSmsMessaging::TMobileSmsSendAttributesV1Pckg smsAttrPckg(smsAttr);
       
   377 
       
   378     TSendSmsDataAndAttributes dataAndAttr;
       
   379     dataAndAttr.iIpc = EMobileSmsMessagingSendMessage; 
       
   380     dataAndAttr.iAttributes = &expectSmsAttr; 
       
   381     dataAndAttr.iMsgData = &tmpName; 
       
   382 
       
   383     TMockLtsyData1<TSendSmsDataAndAttributes> expTsyData(dataAndAttr);           
       
   384     expTsyData.SerialiseL(data);
       
   385 
       
   386     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessage, data, KErrNotSupported);
       
   387     messaging.SendMessage(reqStatus, tmpName, smsAttrPckg);
       
   388 
       
   389     User::WaitForRequest(reqStatus);
       
   390     ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
   391 
       
   392     AssertMockLtsyStatusL();
       
   393 
       
   394     //-------------------------------------------------------------------------
       
   395     // TEST B1: failure on completion of pending request from LTSY->CTSY
       
   396     //-------------------------------------------------------------------------
       
   397 
       
   398     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessage, data);
       
   399 
       
   400     const TInt16 KMsgRef(25);
       
   401     TInt16 msgRef(KMsgRef);
       
   402     TBuf8<RMobileSmsMessaging::KGsmTpduSize> smsMsg(KMessage);
       
   403     
       
   404     TMockLtsyData2<TInt16, TBuf8<RMobileSmsMessaging::KGsmTpduSize> > compTsyData(msgRef, smsMsg);
       
   405     data.Close();
       
   406     compTsyData.SerialiseL(data);
       
   407     
       
   408     iMockLTSY.CompleteL(EMobileSmsMessagingSendMessage, KErrGeneral, data, 10);
       
   409     messaging.SendMessage(reqStatus, tmpName, smsAttrPckg);
       
   410 
       
   411     data.Close();
       
   412     expTsyData.SerialiseL(data);
       
   413     
       
   414     // complete request by error passing to HandleRequest() in ResendSms()
       
   415     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessage, data, KErrNotSupported);
       
   416 
       
   417     User::WaitForRequest(reqStatus);
       
   418     ASSERT_EQUALS(KErrGeneral, reqStatus.Int());
       
   419     
       
   420     AssertMockLtsyStatusL();
       
   421 
       
   422     //-------------------------------------------------------------------------
       
   423     // TEST B2: failure on completion of pending request from LTSY->CTSY
       
   424     //-------------------------------------------------------------------------
       
   425 
       
   426     // the API makes 3 attemps to make the EMobileSmsMessagingSendMessage request
       
   427     // we complete all of them with KErrGeneral
       
   428 
       
   429     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessage, data);
       
   430 
       
   431     data.Close();
       
   432     compTsyData.SerialiseL(data);
       
   433     
       
   434     iMockLTSY.CompleteL(EMobileSmsMessagingSendMessage, KErrGeneral, data, 10);
       
   435     messaging.SendMessage(reqStatus, tmpName, smsAttrPckg);
       
   436 
       
   437     data.Close();
       
   438     expTsyData.SerialiseL(data);
       
   439 
       
   440     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessage, data);
       
   441 
       
   442     data.Close();
       
   443     compTsyData.SerialiseL(data);
       
   444 
       
   445     iMockLTSY.CompleteL(EMobileSmsMessagingSendMessage, KErrGeneral, data, 10);
       
   446 
       
   447     data.Close();
       
   448     expTsyData.SerialiseL(data);
       
   449 
       
   450     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessage, data);
       
   451 
       
   452     data.Close();
       
   453     compTsyData.SerialiseL(data);
       
   454     
       
   455     iMockLTSY.CompleteL(EMobileSmsMessagingSendMessage, KErrGeneral, data, 10);
       
   456 
       
   457     User::WaitForRequest(reqStatus);
       
   458     ASSERT_EQUALS(KErrGeneral, reqStatus.Int());
       
   459 
       
   460     AssertMockLtsyStatusL();
       
   461 
       
   462     //-------------------------------------------------------------------------
       
   463     // TEST C: Successful completion request of
       
   464     // RMobileSmsMessaging::SendMessage when result is not cached.
       
   465     //-------------------------------------------------------------------------
       
   466 
       
   467     _LIT8(KSubmit, "Submit");
       
   468     _LIT(KNum, "+441632960000");
       
   469     
       
   470     smsAttr.iGsmServiceCentre.iTypeOfNumber = RMobilePhone::EInternationalNumber;
       
   471     smsAttr.iGsmServiceCentre.iNumberPlan = RMobilePhone::EIsdnNumberPlan;
       
   472     smsAttr.iGsmServiceCentre.iTelNumber.Copy(KNum);
       
   473     smsAttr.iCdmaServiceCategory = 0;
       
   474     smsAttr.iCdmaTeleservice = 0;
       
   475     smsAttr.iDataFormat = RMobileSmsMessaging::EFormatGsmTpdu;
       
   476     smsAttr.iFlags = 0;
       
   477     smsAttr.iMsgRef = 0;
       
   478     smsAttr.iSubmitReport = KSubmit;
       
   479     smsAttr.iMore = EFalse;
       
   480     smsAttr.iDestination.iTypeOfNumber = RMobilePhone::EInternationalNumber;
       
   481     smsAttr.iDestination.iNumberPlan = RMobilePhone::EIsdnNumberPlan;
       
   482     smsAttr.iDestination.iTelNumber.Copy(KNum);
       
   483     
       
   484     expectSmsAttr = smsAttr;
       
   485     
       
   486     data.Close();
       
   487     expTsyData.SerialiseL(data);
       
   488 
       
   489     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessage, data);
       
   490 
       
   491     data.Close();
       
   492     compTsyData.SerialiseL(data);
       
   493 
       
   494     iMockLTSY.CompleteL(EMobileSmsMessagingSendMessage, KErrNone, data, 10);
       
   495     
       
   496     messaging.SendMessage(reqStatus, tmpName, smsAttrPckg);
       
   497 
       
   498     User::WaitForRequest(reqStatus);
       
   499     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
   500 
       
   501     ASSERT_EQUALS(RMobilePhone::EInternationalNumber, smsAttr.iGsmServiceCentre.iTypeOfNumber);
       
   502     ASSERT_EQUALS(RMobilePhone::EIsdnNumberPlan, smsAttr.iGsmServiceCentre.iNumberPlan);
       
   503     ASSERT_EQUALS(0, smsAttr.iGsmServiceCentre.iTelNumber.Compare(KNum));
       
   504     ASSERT_EQUALS(0, smsAttr.iCdmaServiceCategory);
       
   505     ASSERT_EQUALS(0, smsAttr.iCdmaTeleservice);
       
   506     ASSERT_EQUALS(RMobileSmsMessaging::EFormatGsmTpdu, smsAttr.iDataFormat);
       
   507     ASSERT_TRUE((RMobileSmsMessaging::KMessageReference | RMobileSmsMessaging::KGsmSubmitReport)
       
   508          == smsAttr.iFlags);
       
   509     ASSERT_TRUE(msgRef == smsAttr.iMsgRef);
       
   510     ASSERT_EQUALS(0, smsAttr.iSubmitReport.Compare(smsMsg));
       
   511     ASSERT_TRUE(EFalse == smsAttr.iMore);
       
   512     ASSERT_EQUALS(RMobilePhone::EInternationalNumber, smsAttr.iDestination.iTypeOfNumber);
       
   513     ASSERT_EQUALS(RMobilePhone::EIsdnNumberPlan, smsAttr.iDestination.iNumberPlan);
       
   514     ASSERT_EQUALS(0, smsAttr.iDestination.iTelNumber.Compare(KNum));
       
   515 
       
   516     AssertMockLtsyStatusL();
       
   517 
       
   518     //-------------------------------------------------------------------------
       
   519     // TEST C2: Successful completion request of
       
   520     // RMobileSmsMessaging::SendMessage when result is not cached.
       
   521     //-------------------------------------------------------------------------
       
   522 
       
   523     smsAttr.iGsmServiceCentre.iTypeOfNumber = RMobilePhone::EInternationalNumber;
       
   524     smsAttr.iGsmServiceCentre.iNumberPlan = RMobilePhone::EIsdnNumberPlan;
       
   525     smsAttr.iGsmServiceCentre.iTelNumber.Copy(KNum);
       
   526     smsAttr.iCdmaServiceCategory = 0;
       
   527     smsAttr.iCdmaTeleservice = 0;
       
   528     smsAttr.iDataFormat = RMobileSmsMessaging::EFormatGsmTpdu;
       
   529     smsAttr.iFlags = 0;
       
   530     smsAttr.iMsgRef = 0;
       
   531     smsAttr.iSubmitReport = KSubmit;
       
   532     smsAttr.iMore = EFalse;
       
   533     smsAttr.iDestination.iTypeOfNumber = RMobilePhone::EInternationalNumber;
       
   534     smsAttr.iDestination.iNumberPlan = RMobilePhone::EIsdnNumberPlan;
       
   535     smsAttr.iDestination.iTelNumber.Copy(KNum);
       
   536 
       
   537     expectSmsAttr = smsAttr;
       
   538 
       
   539     tmpName.SetLength(0);
       
   540     smsMsg.SetLength(0);
       
   541 
       
   542     data.Close();
       
   543     expTsyData.SerialiseL(data);
       
   544 
       
   545     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessage, data);
       
   546 
       
   547     data.Close();
       
   548     compTsyData.SerialiseL(data);
       
   549 
       
   550     iMockLTSY.CompleteL(EMobileSmsMessagingSendMessage, KErrNone, data, 10);
       
   551     
       
   552     messaging.SendMessage(reqStatus, tmpName, smsAttrPckg);
       
   553 
       
   554     User::WaitForRequest(reqStatus);
       
   555     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
   556 
       
   557     ASSERT_EQUALS(RMobilePhone::EInternationalNumber, smsAttr.iGsmServiceCentre.iTypeOfNumber);
       
   558     ASSERT_EQUALS(RMobilePhone::EIsdnNumberPlan, smsAttr.iGsmServiceCentre.iNumberPlan);
       
   559     ASSERT_EQUALS(0, smsAttr.iGsmServiceCentre.iTelNumber.Compare(KNum));
       
   560     ASSERT_EQUALS(0, smsAttr.iCdmaServiceCategory);
       
   561     ASSERT_EQUALS(0, smsAttr.iCdmaTeleservice);
       
   562     ASSERT_EQUALS(RMobileSmsMessaging::EFormatGsmTpdu, smsAttr.iDataFormat);
       
   563     ASSERT_TRUE(RMobileSmsMessaging::KMessageReference == smsAttr.iFlags);
       
   564     ASSERT_TRUE(KMsgRef == smsAttr.iMsgRef);
       
   565     ASSERT_EQUALS(0, smsAttr.iSubmitReport.Compare(KSubmit));
       
   566     ASSERT_TRUE(EFalse == smsAttr.iMore);
       
   567     ASSERT_EQUALS(RMobilePhone::EInternationalNumber, smsAttr.iDestination.iTypeOfNumber);
       
   568     ASSERT_EQUALS(RMobilePhone::EIsdnNumberPlan, smsAttr.iDestination.iNumberPlan);
       
   569     ASSERT_EQUALS(0, smsAttr.iDestination.iTelNumber.Compare(KNum));
       
   570 
       
   571     AssertMockLtsyStatusL();
       
   572 
       
   573     //-------------------------------------------------------------------------
       
   574     // TEST E: Unsolicited completion of RMobileSmsMessaging::SendMessage
       
   575     // from LTSY.
       
   576     //-------------------------------------------------------------------------
       
   577 
       
   578     TRequestStatus mockLtsyStatus;
       
   579     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
   580     
       
   581     iMockLTSY.CompleteL(EMobileSmsMessagingSendMessage, KErrNone, data, 10);
       
   582     
       
   583     User::WaitForRequest(mockLtsyStatus);
       
   584     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
   585 
       
   586     AssertMockLtsyStatusL();
       
   587     
       
   588     CleanupStack::PopAndDestroy(3, this); 
       
   589     
       
   590     }
       
   591 
       
   592 
       
   593 /**
       
   594 @SYMTestCaseID BA-CTSY-SMSM-SSM-0002
       
   595 @SYMComponent  telephony_ctsy
       
   596 @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsMessaging::SendMessage
       
   597 @SYMTestPriority High
       
   598 @SYMTestActions Invokes cancelling of RMobileSmsMessaging::SendMessage
       
   599 @SYMTestExpectedResults Pass
       
   600 @SYMTestType CT
       
   601 */
       
   602 void CCTsySmsMessagingFU::TestSendMessage0002L()
       
   603     {
       
   604 
       
   605     OpenEtelServerL(EUseExtendedError);
       
   606     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   607     OpenPhoneL();
       
   608 
       
   609     RMobileSmsMessaging messaging;
       
   610     TInt err = messaging.Open(iPhone);
       
   611     ASSERT_EQUALS(KErrNone, err);
       
   612     CleanupClosePushL(messaging);
       
   613 
       
   614     TRequestStatus mockLtsyStatus;
       
   615     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
   616 
       
   617     RBuf8 data;
       
   618     CleanupClosePushL(data);
       
   619 
       
   620     _LIT8(KMessage, "Merry christmas");
       
   621     TBuf8<32> tmpName(KMessage);
       
   622     
       
   623     TRequestStatus reqStatus;
       
   624     RMobileSmsMessaging::TMobileSmsSendAttributesV1 smsAttr;
       
   625     RMobileSmsMessaging::TMobileSmsSendAttributesV1Pckg smsAttrPckg(smsAttr);
       
   626 
       
   627     TSendSmsDataAndAttributes dataAndAttr;
       
   628     dataAndAttr.iIpc = EMobileSmsMessagingSendMessage; 
       
   629     dataAndAttr.iAttributes = &smsAttr; 
       
   630     dataAndAttr.iMsgData = &tmpName; 
       
   631 
       
   632     TMockLtsyData1<TSendSmsDataAndAttributes> expTsyData(dataAndAttr);           
       
   633     expTsyData.SerialiseL(data);
       
   634 
       
   635     //-------------------------------------------------------------------------
       
   636     // Test cancelling of RMobileSmsMessaging::SendMessage
       
   637     //-------------------------------------------------------------------------
       
   638     
       
   639     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessage, data);
       
   640 
       
   641     const TInt16 KMsgRef(25);
       
   642     TInt16 msgRef(KMsgRef);
       
   643     TBuf8<RMobileSmsMessaging::KGsmTpduSize> smsMsg(KMessage);
       
   644     TMockLtsyData2<TInt16, TBuf8<RMobileSmsMessaging::KGsmTpduSize> > compTsyData(msgRef, smsMsg);
       
   645     data.Close();
       
   646     compTsyData.SerialiseL(data);
       
   647     
       
   648     iMockLTSY.CompleteL(EMobileSmsMessagingSendMessage, KErrNone, data, 10);
       
   649 
       
   650     messaging.SendMessage(reqStatus, tmpName, smsAttrPckg);
       
   651 
       
   652     messaging.CancelAsyncRequest(EMobileSmsMessagingSendMessage);
       
   653     
       
   654     User::WaitForRequest(reqStatus);
       
   655     // cancel does not work for SendMessage(), this is correct
       
   656     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
   657 
       
   658     // Wait for completion of iMockLTSY.NotifyTerminated
       
   659     User::WaitForRequest(mockLtsyStatus);
       
   660     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
   661     
       
   662     AssertMockLtsyStatusL();
       
   663     
       
   664     CleanupStack::PopAndDestroy(3);
       
   665     
       
   666     }
       
   667 
       
   668 
       
   669 /**
       
   670 @SYMTestCaseID BA-CTSY-SMSM-SSM-0003
       
   671 @SYMComponent  telephony_ctsy
       
   672 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::SendMessage with bad parameter data
       
   673 @SYMTestPriority High
       
   674 @SYMTestActions Invokes RMobileSmsMessaging::SendMessage with bad parameter data
       
   675 @SYMTestExpectedResults Pass
       
   676 @SYMTestType CT
       
   677 */
       
   678 void CCTsySmsMessagingFU::TestSendMessage0003L()
       
   679     {
       
   680     OpenEtelServerL(EUseExtendedError);
       
   681     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   682     OpenPhoneL();
       
   683 
       
   684     RMobileSmsMessaging messaging;
       
   685     TInt err = messaging.Open(iPhone);
       
   686     ASSERT_EQUALS(KErrNone, err);
       
   687     CleanupClosePushL(messaging);
       
   688 
       
   689     TRequestStatus reqStatus;
       
   690     TBuf8<1> tmpName;
       
   691     TInt smsAttr(1);
       
   692     TPckg<TInt8> badSmsAttrPckg(smsAttr);
       
   693 
       
   694     messaging.SendMessage(reqStatus, tmpName, badSmsAttrPckg);
       
   695         
       
   696     User::WaitForRequest(reqStatus);
       
   697     ASSERT_EQUALS(KErrArgument, reqStatus.Int());
       
   698 
       
   699     AssertMockLtsyStatusL();
       
   700     CleanupStack::PopAndDestroy(2); // messaging, this
       
   701     }
       
   702 
       
   703 
       
   704 /**
       
   705 @SYMTestCaseID BA-CTSY-SMSM-SSM-0004
       
   706 @SYMComponent  telephony_ctsy
       
   707 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsMessaging::SendMessage
       
   708 @SYMTestPriority High
       
   709 @SYMTestActions Invokes multiple client requests to RMobileSmsMessaging::SendMessage
       
   710 @SYMTestExpectedResults Pass
       
   711 @SYMTestType CT
       
   712 */
       
   713 void CCTsySmsMessagingFU::TestSendMessage0004L()
       
   714     {
       
   715 
       
   716     OpenEtelServerL(EUseExtendedError);
       
   717     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   718     OpenPhoneL();
       
   719 
       
   720     RMobileSmsMessaging messaging;
       
   721     TInt err = messaging.Open(iPhone);
       
   722     ASSERT_EQUALS(KErrNone, err);
       
   723     CleanupClosePushL(messaging);
       
   724 
       
   725     RTelServer telServer2;
       
   726     TInt ret = telServer2.Connect();
       
   727     ASSERT_EQUALS(KErrNone, ret);
       
   728     CleanupClosePushL(telServer2);
       
   729 
       
   730     RMobilePhone phone2;
       
   731     ret = phone2.Open(telServer2,KMmTsyPhoneName);
       
   732     ASSERT_EQUALS(KErrNone, ret);
       
   733     CleanupClosePushL(phone2);
       
   734 
       
   735     RMobileSmsMessaging messaging2;
       
   736     err = messaging2.Open(phone2);
       
   737     ASSERT_EQUALS(KErrNone, err);
       
   738     CleanupClosePushL(messaging2);
       
   739 
       
   740     RBuf8 data;
       
   741     CleanupClosePushL(data);
       
   742 
       
   743     RBuf8 data2;
       
   744     CleanupClosePushL(data2);
       
   745 
       
   746     _LIT8(KMessage, "Merry christmas");
       
   747     _LIT8(KMessage2, "Merry christmas2");
       
   748     TBuf8<32> tmpName(KMessage);
       
   749     TBuf8<32> tmpName2(KMessage2);
       
   750     
       
   751     TRequestStatus reqStatus;
       
   752     RMobileSmsMessaging::TMobileSmsSendAttributesV1 smsAttr;
       
   753     RMobileSmsMessaging::TMobileSmsSendAttributesV1Pckg smsAttrPckg(smsAttr);
       
   754 
       
   755     TRequestStatus reqStatus2;
       
   756     RMobileSmsMessaging::TMobileSmsSendAttributesV1 smsAttr2;
       
   757     RMobileSmsMessaging::TMobileSmsSendAttributesV1Pckg smsAttrPckg2(smsAttr2);
       
   758 
       
   759     TSendSmsDataAndAttributes dataAndAttr;
       
   760     dataAndAttr.iIpc = EMobileSmsMessagingSendMessage; 
       
   761     dataAndAttr.iAttributes = &smsAttr; 
       
   762     dataAndAttr.iMsgData = &tmpName; 
       
   763 
       
   764     TMockLtsyData1<TSendSmsDataAndAttributes> expTsyData(dataAndAttr);           
       
   765     expTsyData.SerialiseL(data);
       
   766 
       
   767     
       
   768     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessage, data);
       
   769 
       
   770     const TInt16 KMsgRef(25);
       
   771     TInt16 msgRef(KMsgRef);
       
   772     TBuf8<RMobileSmsMessaging::KGsmTpduSize> smsMsg(KMessage);
       
   773     TMockLtsyData2<TInt16, TBuf8<RMobileSmsMessaging::KGsmTpduSize> > compTsyData(msgRef, smsMsg);
       
   774     data.Close();
       
   775     compTsyData.SerialiseL(data);
       
   776     
       
   777     iMockLTSY.CompleteL(EMobileSmsMessagingSendMessage, KErrNone, data);
       
   778 
       
   779     messaging.SendMessage(reqStatus, tmpName, smsAttrPckg);
       
   780 
       
   781     messaging2.SendMessage(reqStatus2, tmpName2, smsAttrPckg2);
       
   782     
       
   783     User::WaitForRequest(reqStatus);
       
   784     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
   785 
       
   786     User::WaitForRequest(reqStatus2);
       
   787     ASSERT_EQUALS(KErrServerBusy, reqStatus2.Int());
       
   788 
       
   789     AssertMockLtsyStatusL();
       
   790 
       
   791     CleanupStack::PopAndDestroy(7);
       
   792 
       
   793     }
       
   794 
       
   795 
       
   796 /**
       
   797 @SYMTestCaseID BA-CTSY-SMSM-SSM-0005
       
   798 @SYMComponent  telephony_ctsy
       
   799 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::SendMessage with timeout
       
   800 @SYMTestPriority High
       
   801 @SYMTestActions Invokes RMobileSmsMessaging::SendMessage and tests for timeout
       
   802 @SYMTestExpectedResults Pass
       
   803 @SYMTestType CT
       
   804 */
       
   805 void CCTsySmsMessagingFU::TestSendMessage0005L()
       
   806     {
       
   807 
       
   808     OpenEtelServerL(EUseExtendedError);
       
   809     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   810     OpenPhoneL();
       
   811 
       
   812     RMobileSmsMessaging messaging;
       
   813     TInt err = messaging.Open(iPhone);
       
   814     ASSERT_EQUALS(KErrNone, err);
       
   815     CleanupClosePushL(messaging);
       
   816 
       
   817     RBuf8 data;
       
   818     CleanupClosePushL(data);
       
   819 
       
   820     _LIT8(KMessage, "Merry christmas");
       
   821     TBuf8<32> tmpName(KMessage);
       
   822     
       
   823     TRequestStatus reqStatus;
       
   824     RMobileSmsMessaging::TMobileSmsSendAttributesV1 smsAttr;
       
   825     RMobileSmsMessaging::TMobileSmsSendAttributesV1Pckg smsAttrPckg(smsAttr);
       
   826 
       
   827     TSendSmsDataAndAttributes dataAndAttr;
       
   828     dataAndAttr.iIpc = EMobileSmsMessagingSendMessage; 
       
   829     dataAndAttr.iAttributes = &smsAttr; 
       
   830     dataAndAttr.iMsgData = &tmpName; 
       
   831 
       
   832     TMockLtsyData1<TSendSmsDataAndAttributes> expTsyData(dataAndAttr);           
       
   833     expTsyData.SerialiseL(data);
       
   834 
       
   835     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessage, data);
       
   836 
       
   837     messaging.SendMessage(reqStatus, tmpName, smsAttrPckg);
       
   838 
       
   839     User::WaitForRequest(reqStatus);
       
   840     ASSERT_EQUALS(KErrTimedOut, reqStatus.Int());
       
   841 
       
   842     AssertMockLtsyStatusL();
       
   843 
       
   844     CleanupStack::PopAndDestroy(3);
       
   845 
       
   846     }
       
   847 
       
   848 
       
   849 /**
       
   850 @SYMTestCaseID BA-CTSY-SMSM-SASS-0001
       
   851 @SYMComponent  telephony_ctsy
       
   852 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::AckSmsStored
       
   853 @SYMTestPriority High
       
   854 @SYMTestActions Invokes RMobileSmsMessaging::AckSmsStored
       
   855 @SYMTestExpectedResults Pass
       
   856 @SYMTestType CT
       
   857 */
       
   858 void CCTsySmsMessagingFU::TestAckSmsStored0001L()
       
   859     {
       
   860 
       
   861     OpenEtelServerL(EUseExtendedError);
       
   862     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
   863     OpenPhoneL();
       
   864 
       
   865     RMobileSmsMessaging messaging;
       
   866     TInt err = messaging.Open(iPhone);
       
   867     ASSERT_EQUALS(KErrNone, err);
       
   868     CleanupClosePushL(messaging);
       
   869 
       
   870     RBuf8 data;
       
   871     CleanupClosePushL(data);
       
   872 
       
   873     
       
   874     _LIT8(KMessage, "Happy New Year");
       
   875 
       
   876     TRequestStatus reqStatus;
       
   877     TRequestStatus mockLtsyStatus;
       
   878     
       
   879     TDesC8* msgPtr = const_cast<TDesC8*>(&KMessage);
       
   880 
       
   881     TMockLtsyData1<TDesC8*> expTsyData(msgPtr);
       
   882     
       
   883     TDesC8* zeroPtr(NULL);
       
   884     TMockLtsyData1<TDesC8*> expZeroTsyData(zeroPtr);
       
   885     
       
   886     //-------------------------------------------------------------------------
       
   887     // TEST A1: check AckSmsStored() when acknoledgement is not expected
       
   888     //-------------------------------------------------------------------------
       
   889 
       
   890     expTsyData.SerialiseL(data);
       
   891  
       
   892     messaging.AckSmsStored(reqStatus, KMessage, ETrue);
       
   893 
       
   894     User::WaitForRequest(reqStatus);
       
   895     ASSERT_EQUALS(KErrNotReady, reqStatus.Int());
       
   896 
       
   897     AssertMockLtsyStatusL();
       
   898 
       
   899     //-------------------------------------------------------------------------
       
   900     // TEST A2: unsuccessful acknoledgement request to the network
       
   901     //-------------------------------------------------------------------------
       
   902     
       
   903     // make the server expect an acknowledgement
       
   904     TRequestStatus reqReceiveStatus;
       
   905     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1 receiveAttr;
       
   906     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1Pckg receiveAttrPckg(receiveAttr);
       
   907 
       
   908     TUint8 smsRoutingStatus ( KSmsRoutingActivated );
       
   909     TMockLtsyData1<TUint8> compSmsRoutingTsyData(smsRoutingStatus);
       
   910     data.Close();
       
   911     compSmsRoutingTsyData.SerialiseL(data);
       
   912 
       
   913     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting);    
       
   914     iMockLTSY.CompleteL(EMmTsyActivateSmsRouting, KErrNone, data);
       
   915 
       
   916     TBuf8<100> forMsg;
       
   917 
       
   918     TSmsMsg smsMsg;
       
   919     TSmsMsg* smsMsgPtr(&smsMsg);
       
   920     TBool ind(EFalse);
       
   921     
       
   922     smsMsg.iSmsClass2 = ETrue;
       
   923     smsMsg.iDeleteAfterClientAck = ETrue;
       
   924     smsMsg.iSmsMsg.Copy(KMessage);
       
   925 
       
   926     TMockLtsyData2<TBool, TSmsMsg*> compTsyData(ind, smsMsgPtr);
       
   927     data.Close();
       
   928     compTsyData.SerialiseL(data);
       
   929     
       
   930     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
   931 
       
   932     messaging.ReceiveMessage(reqReceiveStatus, forMsg, receiveAttrPckg);
       
   933     User::WaitForRequest(reqReceiveStatus);
       
   934     ASSERT_EQUALS(KErrNone, reqReceiveStatus.Int());
       
   935     
       
   936     // The server now is expecting the acknowledgement
       
   937     
       
   938     data.Close();
       
   939     expTsyData.SerialiseL(data);
       
   940     iMockLTSY.ExpectL(EMobileSmsMessagingAckSmsStored, data, KErrGeneral);
       
   941 
       
   942     messaging.AckSmsStored(reqStatus, KMessage, EFalse);
       
   943     
       
   944     User::WaitForRequest(reqStatus);    
       
   945     ASSERT_EQUALS(KErrGeneral, reqStatus.Int());
       
   946  
       
   947     AssertMockLtsyStatusL();
       
   948 
       
   949     //-------------------------------------------------------------------------
       
   950     // TEST A3: unsuccessful acknoledgement completion
       
   951     //-------------------------------------------------------------------------
       
   952     
       
   953     // make the server expect an acknowledgement
       
   954     data.Close();
       
   955     compSmsRoutingTsyData.SerialiseL(data);
       
   956 
       
   957     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting);    
       
   958     iMockLTSY.CompleteL(EMmTsyActivateSmsRouting, KErrNone, data);
       
   959 
       
   960     data.Close();
       
   961     compTsyData.SerialiseL(data);
       
   962     
       
   963     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
   964 
       
   965     messaging.ReceiveMessage(reqReceiveStatus, forMsg, receiveAttrPckg);
       
   966     User::WaitForRequest(reqReceiveStatus);
       
   967     ASSERT_EQUALS(KErrNone, reqReceiveStatus.Int());
       
   968     
       
   969     // The server now is expecting the acknowledgement
       
   970     
       
   971     data.Close();
       
   972     expTsyData.SerialiseL(data);
       
   973     iMockLTSY.ExpectL(EMobileSmsMessagingAckSmsStored, data);
       
   974 
       
   975     iMockLTSY.CompleteL(EMobileSmsMessagingAckSmsStored, KErrGeneral);
       
   976 
       
   977     messaging.AckSmsStored(reqStatus, KMessage, EFalse);
       
   978     
       
   979     User::WaitForRequest(reqStatus);    
       
   980     ASSERT_EQUALS(KErrGeneral, reqStatus.Int());
       
   981  
       
   982     AssertMockLtsyStatusL();    
       
   983     
       
   984     
       
   985     //-------------------------------------------------------------------------
       
   986     // TEST B1, test AckSmsStored() when there are sms received
       
   987     // that have iDeleteAfterClientAck = true
       
   988     //-------------------------------------------------------------------------
       
   989 
       
   990     // make the server expect an acknowledgement
       
   991     messaging.ReceiveMessage(reqReceiveStatus, forMsg, receiveAttrPckg);
       
   992 
       
   993     data.Close();
       
   994     compTsyData.SerialiseL(data);
       
   995 
       
   996     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
   997 
       
   998     User::WaitForRequest(reqReceiveStatus);
       
   999     ASSERT_EQUALS(KErrNone, reqReceiveStatus.Int());
       
  1000 
       
  1001     // The server now is expecting the acknowledgement
       
  1002     
       
  1003     data.Close();
       
  1004     expTsyData.SerialiseL(data);
       
  1005 
       
  1006     iMockLTSY.ExpectL(EMobileSmsMessagingAckSmsStored, data);    
       
  1007     iMockLTSY.CompleteL(EMobileSmsMessagingAckSmsStored, KErrNone);
       
  1008 
       
  1009     messaging.AckSmsStored(reqStatus, KMessage, EFalse);
       
  1010     User::WaitForRequest(reqStatus);    
       
  1011     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1012 
       
  1013     AssertMockLtsyStatusL();           
       
  1014     
       
  1015 
       
  1016     //-------------------------------------------------------------------------
       
  1017     // TEST B2, check AckSmsStored() when there are sms received 
       
  1018     // but they have iDeleteAfterClientAck = false
       
  1019     //-------------------------------------------------------------------------
       
  1020 
       
  1021     // make the server expect an acknowledgement
       
  1022     messaging.ReceiveMessage(reqReceiveStatus, forMsg, receiveAttrPckg);
       
  1023 
       
  1024     smsMsg.iSmsClass2 = ETrue;
       
  1025     smsMsg.iDeleteAfterClientAck = EFalse;
       
  1026     smsMsg.iSmsMsg.Copy(KMessage);
       
  1027 
       
  1028     data.Close();
       
  1029     compTsyData.SerialiseL(data);
       
  1030 
       
  1031     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
  1032 
       
  1033     User::WaitForRequest(reqReceiveStatus);
       
  1034     ASSERT_EQUALS(KErrNone, reqReceiveStatus.Int());
       
  1035 
       
  1036     // The server now is expecting the acknowledgement
       
  1037     
       
  1038     data.Close();
       
  1039     expTsyData.SerialiseL(data);
       
  1040 
       
  1041     iMockLTSY.ExpectL(EMobileSmsMessagingAckSmsStored, data);    
       
  1042     iMockLTSY.CompleteL(EMobileSmsMessagingAckSmsStored, KErrNone);
       
  1043 
       
  1044     messaging.AckSmsStored(reqStatus, KMessage, EFalse);
       
  1045     
       
  1046     User::WaitForRequest(reqStatus);    
       
  1047     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1048 
       
  1049     AssertMockLtsyStatusL();
       
  1050 
       
  1051     //-------------------------------------------------------------------------
       
  1052     // TEST E: Unsolicited completion of RMobileSmsMessaging::AckSmsStored
       
  1053     // from LTSY.
       
  1054     //-------------------------------------------------------------------------
       
  1055 
       
  1056     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  1057 
       
  1058     iMockLTSY.CompleteL(EMobileSmsMessagingAckSmsStored, KErrNone);
       
  1059 
       
  1060     User::WaitForRequest(mockLtsyStatus);
       
  1061     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  1062 
       
  1063     AssertMockLtsyStatusL();
       
  1064     CleanupStack::PopAndDestroy(3, this); // data, messaging, this
       
  1065     
       
  1066     }
       
  1067 
       
  1068 
       
  1069 /**
       
  1070 @SYMTestCaseID BA-CTSY-SMSM-SASS-0002
       
  1071 @SYMComponent  telephony_ctsy
       
  1072 @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsMessaging::AckSmsStored
       
  1073 @SYMTestPriority High
       
  1074 @SYMTestActions Invokes cancelling of RMobileSmsMessaging::AckSmsStored
       
  1075 @SYMTestExpectedResults Pass
       
  1076 @SYMTestType CT
       
  1077 */
       
  1078 void CCTsySmsMessagingFU::TestAckSmsStored0002L()
       
  1079     {
       
  1080 
       
  1081     OpenEtelServerL(EUseExtendedError);
       
  1082     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1083     OpenPhoneL();
       
  1084 
       
  1085     RMobileSmsMessaging messaging;
       
  1086     TInt err = messaging.Open(iPhone);
       
  1087     ASSERT_EQUALS(KErrNone, err);
       
  1088     CleanupClosePushL(messaging);
       
  1089 
       
  1090     RBuf8 data;
       
  1091     CleanupClosePushL(data);
       
  1092 
       
  1093     TRequestStatus mockLtsyStatus;
       
  1094     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  1095     
       
  1096     _LIT8(KMessage, "Happy New Year");
       
  1097 
       
  1098     // make the server expect an acknowledgement
       
  1099     TRequestStatus reqReceiveStatus;
       
  1100     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1 receiveAttr;
       
  1101     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1Pckg receiveAttrPckg(receiveAttr);
       
  1102 
       
  1103     TUint8 smsRoutingStatus ( KSmsRoutingActivated );
       
  1104     TMockLtsyData1<TUint8> compSmsRoutingTsyData(smsRoutingStatus);
       
  1105     data.Close();
       
  1106     compSmsRoutingTsyData.SerialiseL(data);
       
  1107 
       
  1108     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting);    
       
  1109     iMockLTSY.CompleteL(EMmTsyActivateSmsRouting, KErrNone, data);
       
  1110 
       
  1111     TBuf8<100> forMsg;
       
  1112     
       
  1113     TSmsMsg smsMsg;
       
  1114     TSmsMsg* smsMsgPtr(&smsMsg);
       
  1115     TBool ind(EFalse);
       
  1116     
       
  1117     smsMsg.iSmsClass2 = ETrue;
       
  1118     smsMsg.iDeleteAfterClientAck = ETrue;
       
  1119     smsMsg.iSmsMsg.Copy(KMessage);
       
  1120 
       
  1121     TMockLtsyData2<TBool, TSmsMsg*> compTsyData(ind, smsMsgPtr);
       
  1122     data.Close();
       
  1123     compTsyData.SerialiseL(data);
       
  1124     
       
  1125     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
  1126 
       
  1127     messaging.ReceiveMessage(reqReceiveStatus, forMsg, receiveAttrPckg);
       
  1128     User::WaitForRequest(reqReceiveStatus);
       
  1129     ASSERT_EQUALS(KErrNone, reqReceiveStatus.Int());
       
  1130     
       
  1131     // The server now is expecting the acknowledgement
       
  1132     
       
  1133     TRequestStatus reqStatus;
       
  1134     TDesC8* msgPtr = const_cast<TDesC8*>(&KMessage);
       
  1135 
       
  1136     TMockLtsyData1<TDesC8*> expTsyData(msgPtr);
       
  1137     
       
  1138     expTsyData.SerialiseL(data);
       
  1139 
       
  1140     iMockLTSY.ExpectL(EMobileSmsMessagingAckSmsStored, data);
       
  1141     iMockLTSY.CompleteL(EMobileSmsMessagingAckSmsStored, KErrNone);     
       
  1142 
       
  1143     messaging.AckSmsStored(reqStatus, KMessage, ETrue);
       
  1144 
       
  1145     messaging.CancelAsyncRequest(EMobileSmsMessagingAckSmsStored);
       
  1146 
       
  1147     User::WaitForRequest(reqStatus);
       
  1148     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1149     
       
  1150     // Wait for completion of iMockLTSY.NotifyTerminated
       
  1151     User::WaitForRequest(mockLtsyStatus);
       
  1152     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  1153     
       
  1154     AssertMockLtsyStatusL();
       
  1155     
       
  1156     CleanupStack::PopAndDestroy(3); 
       
  1157     
       
  1158     }
       
  1159 
       
  1160 /**
       
  1161 @SYMTestCaseID BA-CTSY-SMSM-SASS-0004
       
  1162 @SYMComponent  telephony_ctsy
       
  1163 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsMessaging::AckSmsStored
       
  1164 @SYMTestPriority High
       
  1165 @SYMTestActions Invokes multiple client requests to RMobileSmsMessaging::AckSmsStored
       
  1166 @SYMTestExpectedResults Pass
       
  1167 @SYMTestType CT
       
  1168 */
       
  1169 void CCTsySmsMessagingFU::TestAckSmsStored0004L()
       
  1170     {
       
  1171                     
       
  1172     OpenEtelServerL(EUseExtendedError);
       
  1173     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1174     OpenPhoneL();
       
  1175 
       
  1176     RBuf8 data;
       
  1177     CleanupClosePushL(data);
       
  1178 
       
  1179     // Open second client
       
  1180     RTelServer telServer2;
       
  1181     TInt ret = telServer2.Connect();
       
  1182     ASSERT_EQUALS(KErrNone, ret);
       
  1183     CleanupClosePushL(telServer2);
       
  1184 
       
  1185     RMobilePhone phone2;
       
  1186     ret = phone2.Open(telServer2,KMmTsyPhoneName);
       
  1187     ASSERT_EQUALS(KErrNone, ret);
       
  1188     CleanupClosePushL(phone2);
       
  1189 
       
  1190 
       
  1191     RMobileSmsMessaging messaging;
       
  1192     TInt err = messaging.Open(iPhone);
       
  1193     ASSERT_EQUALS(KErrNone, err);
       
  1194     CleanupClosePushL(messaging);
       
  1195 
       
  1196     RMobileSmsMessaging messaging2;
       
  1197     err = messaging2.Open(phone2);
       
  1198     ASSERT_EQUALS(KErrNone, err);
       
  1199     CleanupClosePushL(messaging2);
       
  1200 
       
  1201     
       
  1202     _LIT8(KMessage, "Happy New Year");
       
  1203     _LIT8(KMessage2, "Happy New Year2");    
       
  1204     
       
  1205     // make the server expect an acknowledgement
       
  1206 
       
  1207     TRequestStatus reqReceiveStatus;
       
  1208     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1 receiveAttr;
       
  1209     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1Pckg receiveAttrPckg(receiveAttr);
       
  1210 
       
  1211     TUint8 smsRoutingStatus ( KSmsRoutingActivated );
       
  1212     TMockLtsyData1<TUint8> compSmsRoutingTsyData(smsRoutingStatus);
       
  1213     data.Close();
       
  1214     compSmsRoutingTsyData.SerialiseL(data);
       
  1215 
       
  1216     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting);    
       
  1217     iMockLTSY.CompleteL(EMmTsyActivateSmsRouting, KErrNone, data);
       
  1218 
       
  1219     TBuf8<100> forMsg;
       
  1220     
       
  1221     TSmsMsg smsMsg;
       
  1222     TSmsMsg* smsMsgPtr(&smsMsg);
       
  1223     TBool ind(EFalse);
       
  1224     
       
  1225     smsMsg.iSmsClass2 = ETrue;
       
  1226     smsMsg.iDeleteAfterClientAck = ETrue;
       
  1227     smsMsg.iSmsMsg.Copy(KMessage);
       
  1228 
       
  1229     TMockLtsyData2<TBool, TSmsMsg*> compTsyData(ind, smsMsgPtr);
       
  1230     data.Close();
       
  1231     compTsyData.SerialiseL(data);
       
  1232     
       
  1233     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
  1234 
       
  1235     messaging.ReceiveMessage(reqReceiveStatus, forMsg, receiveAttrPckg);
       
  1236     User::WaitForRequest(reqReceiveStatus);
       
  1237     ASSERT_EQUALS(KErrNone, reqReceiveStatus.Int());
       
  1238     
       
  1239     // The server now is expecting the acknowledgement
       
  1240     
       
  1241     TRequestStatus reqStatus;
       
  1242     TRequestStatus reqStatus2;
       
  1243 
       
  1244     TDesC8* msgPtr = const_cast<TDesC8*>(&KMessage);
       
  1245 
       
  1246     TMockLtsyData1<TDesC8*> expTsyData(msgPtr);
       
  1247     
       
  1248     expTsyData.SerialiseL(data);
       
  1249 
       
  1250     iMockLTSY.ExpectL(EMobileSmsMessagingAckSmsStored, data);
       
  1251     iMockLTSY.CompleteL(EMobileSmsMessagingAckSmsStored, KErrNone, 10);     
       
  1252 
       
  1253     messaging.AckSmsStored(reqStatus, KMessage, ETrue);
       
  1254 
       
  1255     messaging2.AckSmsStored(reqStatus2, KMessage2, ETrue);
       
  1256 
       
  1257     User::WaitForRequest(reqStatus);
       
  1258     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1259 
       
  1260     User::WaitForRequest(reqStatus2);
       
  1261     ASSERT_EQUALS(KErrServerBusy, reqStatus2.Int());
       
  1262 
       
  1263     AssertMockLtsyStatusL();
       
  1264 
       
  1265     CleanupStack::PopAndDestroy(6, this); 
       
  1266 
       
  1267     }
       
  1268 
       
  1269 
       
  1270 /**
       
  1271 @SYMTestCaseID BA-CTSY-SMSM-SASS-0005
       
  1272 @SYMComponent  telephony_ctsy
       
  1273 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::AckSmsStored with timeout
       
  1274 @SYMTestPriority High
       
  1275 @SYMTestActions Invokes RMobileSmsMessaging::AckSmsStored and tests for timeout
       
  1276 @SYMTestExpectedResults Pass
       
  1277 @SYMTestType CT
       
  1278 */
       
  1279 void CCTsySmsMessagingFU::TestAckSmsStored0005L()
       
  1280     {
       
  1281 
       
  1282     OpenEtelServerL(EUseExtendedError);
       
  1283     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1284     OpenPhoneL();
       
  1285 
       
  1286     RMobileSmsMessaging messaging;
       
  1287     TInt err = messaging.Open(iPhone);
       
  1288     ASSERT_EQUALS(KErrNone, err);
       
  1289     CleanupClosePushL(messaging);
       
  1290 
       
  1291     RBuf8 data;
       
  1292     CleanupClosePushL(data);
       
  1293 
       
  1294     
       
  1295     _LIT8(KMessage, "Happy New Year");
       
  1296 
       
  1297     // make the server expect an acknowledgement 
       
  1298 
       
  1299     TRequestStatus reqReceiveStatus;
       
  1300     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1 receiveAttr;
       
  1301     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1Pckg receiveAttrPckg(receiveAttr);
       
  1302 
       
  1303     TUint8 smsRoutingStatus ( KSmsRoutingActivated );
       
  1304     TMockLtsyData1<TUint8> compSmsRoutingTsyData(smsRoutingStatus);
       
  1305     data.Close();
       
  1306     compSmsRoutingTsyData.SerialiseL(data);
       
  1307 
       
  1308     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting);    
       
  1309     iMockLTSY.CompleteL(EMmTsyActivateSmsRouting, KErrNone, data);
       
  1310 
       
  1311     TBuf8<100> forMsg;
       
  1312     
       
  1313     TSmsMsg smsMsg;
       
  1314     TSmsMsg* smsMsgPtr(&smsMsg);
       
  1315     TBool ind(EFalse);
       
  1316     
       
  1317     smsMsg.iSmsClass2 = ETrue;
       
  1318     smsMsg.iDeleteAfterClientAck = ETrue;
       
  1319     smsMsg.iSmsMsg.Copy(KMessage);
       
  1320 
       
  1321     TMockLtsyData2<TBool, TSmsMsg*> compTsyData(ind, smsMsgPtr);
       
  1322     data.Close();
       
  1323     compTsyData.SerialiseL(data);
       
  1324     
       
  1325     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
  1326 
       
  1327     messaging.ReceiveMessage(reqReceiveStatus, forMsg, receiveAttrPckg);
       
  1328     User::WaitForRequest(reqReceiveStatus);
       
  1329     ASSERT_EQUALS(KErrNone, reqReceiveStatus.Int());
       
  1330     
       
  1331     // The server now is expecting the acknowledgement
       
  1332     
       
  1333     TRequestStatus reqStatus;
       
  1334     TDesC8* msgPtr = const_cast<TDesC8*>(&KMessage);
       
  1335 
       
  1336     TMockLtsyData1<TDesC8*> expTsyData(msgPtr);
       
  1337     
       
  1338     expTsyData.SerialiseL(data);
       
  1339 
       
  1340     iMockLTSY.ExpectL(EMobileSmsMessagingAckSmsStored, data);
       
  1341 
       
  1342     messaging.AckSmsStored(reqStatus, KMessage, ETrue);
       
  1343 
       
  1344     User::WaitForRequest(reqStatus);
       
  1345     ASSERT_EQUALS(KErrTimedOut, reqStatus.Int());
       
  1346     
       
  1347     AssertMockLtsyStatusL();
       
  1348     
       
  1349     CleanupStack::PopAndDestroy(3, this); 
       
  1350     }
       
  1351 
       
  1352 
       
  1353 /**
       
  1354 @SYMTestCaseID BA-CTSY-SMSM-SNSS-0001
       
  1355 @SYMComponent  telephony_ctsy
       
  1356 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::NackSmsStored
       
  1357 @SYMTestPriority High
       
  1358 @SYMTestActions Invokes RMobileSmsMessaging::NackSmsStored
       
  1359 @SYMTestExpectedResults Pass
       
  1360 @SYMTestType CT
       
  1361 */
       
  1362 void CCTsySmsMessagingFU::TestNackSmsStored0001L()
       
  1363     {
       
  1364 
       
  1365     OpenEtelServerL(EUseExtendedError);
       
  1366     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1367     OpenPhoneL();
       
  1368 
       
  1369     RMobileSmsMessaging messaging;
       
  1370     TInt err = messaging.Open(iPhone);
       
  1371     ASSERT_EQUALS(KErrNone, err);
       
  1372     CleanupClosePushL(messaging);
       
  1373 
       
  1374     RBuf8 data;
       
  1375     CleanupClosePushL(data);
       
  1376 
       
  1377     
       
  1378     _LIT8(KMessage, "Happy New Year");
       
  1379 
       
  1380     TRequestStatus reqStatus;
       
  1381     TRequestStatus mockLtsyStatus;
       
  1382     
       
  1383     TDesC8* msgPtr = const_cast<TDesC8*>(&KMessage);
       
  1384     TInt rpCause(0);
       
  1385     TMockLtsyData2<TDesC8*, TInt> expTsyData(msgPtr, rpCause);
       
  1386 
       
  1387     
       
  1388     //-------------------------------------------------------------------------
       
  1389     // TEST A1: check NackSmsStored() when acknoledgement is not expected
       
  1390     //-------------------------------------------------------------------------
       
  1391 
       
  1392     expTsyData.SerialiseL(data);
       
  1393  
       
  1394     messaging.NackSmsStored(reqStatus, KMessage, rpCause);
       
  1395 
       
  1396     User::WaitForRequest(reqStatus);
       
  1397     ASSERT_EQUALS(KErrNotReady, reqStatus.Int());
       
  1398 
       
  1399     AssertMockLtsyStatusL();
       
  1400 
       
  1401     //-------------------------------------------------------------------------
       
  1402     // TEST A2: unsuccessful completion
       
  1403     //-------------------------------------------------------------------------
       
  1404     
       
  1405     // make the server expect an acknowledgement
       
  1406     TRequestStatus reqReceiveStatus;
       
  1407     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1 receiveAttr;
       
  1408     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1Pckg receiveAttrPckg(receiveAttr);
       
  1409 
       
  1410     TUint8 smsRoutingStatus ( KSmsRoutingActivated );
       
  1411     TMockLtsyData1<TUint8> compSmsRoutingTsyData(smsRoutingStatus);
       
  1412     data.Close();
       
  1413     compSmsRoutingTsyData.SerialiseL(data);
       
  1414 
       
  1415     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting);    
       
  1416     iMockLTSY.CompleteL(EMmTsyActivateSmsRouting, KErrNone, data);
       
  1417 
       
  1418     TBuf8<100> forMsg;
       
  1419 
       
  1420     TSmsMsg smsMsg;
       
  1421     TSmsMsg* smsMsgPtr(&smsMsg);
       
  1422     TBool ind(EFalse);
       
  1423     
       
  1424     smsMsg.iSmsClass2 = ETrue;
       
  1425     smsMsg.iDeleteAfterClientAck = ETrue;
       
  1426     smsMsg.iSmsMsg.Copy(KMessage);
       
  1427 
       
  1428     TMockLtsyData2<TBool, TSmsMsg*> compTsyData(ind, smsMsgPtr);
       
  1429     data.Close();
       
  1430     compTsyData.SerialiseL(data);
       
  1431     
       
  1432     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
  1433 
       
  1434     messaging.ReceiveMessage(reqReceiveStatus, forMsg, receiveAttrPckg);
       
  1435     User::WaitForRequest(reqReceiveStatus);
       
  1436     ASSERT_EQUALS(KErrNone, reqReceiveStatus.Int());
       
  1437     
       
  1438     // The server now is expecting the acknowledgement
       
  1439     
       
  1440     data.Close();
       
  1441     expTsyData.SerialiseL(data);
       
  1442     iMockLTSY.ExpectL(EMobileSmsMessagingNackSmsStored, data);
       
  1443 
       
  1444     iMockLTSY.CompleteL(EMobileSmsMessagingNackSmsStored, KErrGeneral);
       
  1445 
       
  1446     messaging.NackSmsStored(reqStatus, KMessage, rpCause);
       
  1447     
       
  1448     User::WaitForRequest(reqStatus);    
       
  1449     ASSERT_EQUALS(KErrGeneral, reqStatus.Int());
       
  1450  
       
  1451     AssertMockLtsyStatusL();
       
  1452     
       
  1453     
       
  1454     //-------------------------------------------------------------------------
       
  1455     // TEST B1, test NackSmsStored() when there are sms received
       
  1456     // that have iDeleteAfterClientAck = true
       
  1457     //-------------------------------------------------------------------------
       
  1458     
       
  1459     // make the server expect an acknowledgement
       
  1460     messaging.ReceiveMessage(reqReceiveStatus, forMsg, receiveAttrPckg);
       
  1461 
       
  1462     smsMsg.iSmsClass2 = ETrue;
       
  1463     smsMsg.iDeleteAfterClientAck = ETrue;
       
  1464     smsMsg.iSmsMsg.Copy(KMessage);
       
  1465 
       
  1466     data.Close();
       
  1467     compTsyData.SerialiseL(data);
       
  1468 
       
  1469     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
  1470 
       
  1471     User::WaitForRequest(reqReceiveStatus);
       
  1472     ASSERT_EQUALS(KErrNone, reqReceiveStatus.Int());
       
  1473 
       
  1474     // The server now is expecting the acknowledgement
       
  1475     
       
  1476     data.Close();
       
  1477     expTsyData.SerialiseL(data);
       
  1478 
       
  1479     iMockLTSY.ExpectL(EMobileSmsMessagingNackSmsStored, data);    
       
  1480     iMockLTSY.CompleteL(EMobileSmsMessagingNackSmsStored, KErrNone);
       
  1481 
       
  1482     messaging.NackSmsStored(reqStatus, KMessage, rpCause);
       
  1483 
       
  1484     User::WaitForRequest(reqStatus);    
       
  1485     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1486 
       
  1487     AssertMockLtsyStatusL();           
       
  1488     
       
  1489 
       
  1490     //-------------------------------------------------------------------------
       
  1491     // TEST B2, check NackSmsStored() when there are sms received 
       
  1492     // but they have iDeleteAfterClientAck = false
       
  1493     //-------------------------------------------------------------------------
       
  1494 
       
  1495     // make the server expect an acknowledgement
       
  1496     messaging.ReceiveMessage(reqReceiveStatus, forMsg, receiveAttrPckg);
       
  1497 
       
  1498     smsMsg.iSmsClass2 = ETrue;
       
  1499     smsMsg.iDeleteAfterClientAck = EFalse;
       
  1500     smsMsg.iSmsMsg.Copy(KMessage);
       
  1501 
       
  1502     data.Close();
       
  1503     compTsyData.SerialiseL(data);
       
  1504 
       
  1505     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
  1506 
       
  1507     User::WaitForRequest(reqReceiveStatus);
       
  1508     ASSERT_EQUALS(KErrNone, reqReceiveStatus.Int());
       
  1509 
       
  1510     // The server now is expecting the acknowledgement
       
  1511     
       
  1512     data.Close();
       
  1513     expTsyData.SerialiseL(data);
       
  1514 
       
  1515     iMockLTSY.ExpectL(EMobileSmsMessagingNackSmsStored, data);    
       
  1516     iMockLTSY.CompleteL(EMobileSmsMessagingNackSmsStored, KErrNone);
       
  1517     
       
  1518     messaging.NackSmsStored(reqStatus, KMessage, rpCause);
       
  1519 
       
  1520     User::WaitForRequest(reqStatus);    
       
  1521     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1522 
       
  1523     AssertMockLtsyStatusL();
       
  1524 
       
  1525     //-------------------------------------------------------------------------
       
  1526     // TEST E: Unsolicited completion of RMobileSmsMessaging::AckSmsStored
       
  1527     // from LTSY.
       
  1528     //-------------------------------------------------------------------------
       
  1529 
       
  1530     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  1531 
       
  1532     iMockLTSY.CompleteL(EMobileSmsMessagingNackSmsStored, KErrNone);
       
  1533 
       
  1534     User::WaitForRequest(mockLtsyStatus);
       
  1535     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  1536 
       
  1537     AssertMockLtsyStatusL();
       
  1538     CleanupStack::PopAndDestroy(3, this); // data, messaging, this
       
  1539     
       
  1540     }
       
  1541 
       
  1542 
       
  1543 /**
       
  1544 @SYMTestCaseID BA-CTSY-SMSM-SNSS-0002
       
  1545 @SYMComponent  telephony_ctsy
       
  1546 @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsMessaging::NackSmsStored
       
  1547 @SYMTestPriority High
       
  1548 @SYMTestActions Invokes cancelling of RMobileSmsMessaging::NackSmsStored
       
  1549 @SYMTestExpectedResults Pass
       
  1550 @SYMTestType CT
       
  1551 */
       
  1552 void CCTsySmsMessagingFU::TestNackSmsStored0002L()
       
  1553     {
       
  1554 
       
  1555     OpenEtelServerL(EUseExtendedError);
       
  1556     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1557     OpenPhoneL();
       
  1558 
       
  1559     RMobileSmsMessaging messaging;
       
  1560     TInt err = messaging.Open(iPhone);
       
  1561     ASSERT_EQUALS(KErrNone, err);
       
  1562     CleanupClosePushL(messaging);
       
  1563 
       
  1564 
       
  1565     TRequestStatus mockLtsyStatus;
       
  1566     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  1567 
       
  1568     RBuf8 data;
       
  1569     CleanupClosePushL(data);
       
  1570 
       
  1571     _LIT8(KMessage, "Happy New Year");
       
  1572     
       
  1573     TRequestStatus reqStatus;
       
  1574     TDesC8* msgPtr = const_cast<TDesC8*>(&KMessage);
       
  1575     TInt rpCause(0);
       
  1576 
       
  1577     //-------------------------------------------------------------------------
       
  1578     // Test cancelling of RMobileSmsMessaging::NackSmsStored
       
  1579     //-------------------------------------------------------------------------
       
  1580 
       
  1581     // make the server expect an acknowledgement
       
  1582     TRequestStatus reqReceiveStatus;
       
  1583     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1 receiveAttr;
       
  1584     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1Pckg receiveAttrPckg(receiveAttr);
       
  1585 
       
  1586     TUint8 smsRoutingStatus ( KSmsRoutingActivated );
       
  1587     TMockLtsyData1<TUint8> compSmsRoutingTsyData(smsRoutingStatus);
       
  1588     data.Close();
       
  1589     compSmsRoutingTsyData.SerialiseL(data);
       
  1590 
       
  1591     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting);    
       
  1592     iMockLTSY.CompleteL(EMmTsyActivateSmsRouting, KErrNone, data);
       
  1593 
       
  1594     TBuf8<100> forMsg;
       
  1595 
       
  1596     TSmsMsg smsMsg;
       
  1597     TSmsMsg* smsMsgPtr(&smsMsg);
       
  1598     TBool ind(EFalse);
       
  1599     
       
  1600     smsMsg.iSmsClass2 = ETrue;
       
  1601     smsMsg.iDeleteAfterClientAck = ETrue;
       
  1602     smsMsg.iSmsMsg.Copy(KMessage);
       
  1603 
       
  1604     TMockLtsyData2<TBool, TSmsMsg*> compTsyData(ind, smsMsgPtr);
       
  1605     data.Close();
       
  1606     compTsyData.SerialiseL(data);
       
  1607     
       
  1608     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
  1609 
       
  1610     messaging.ReceiveMessage(reqReceiveStatus, forMsg, receiveAttrPckg);
       
  1611     User::WaitForRequest(reqReceiveStatus);
       
  1612     ASSERT_EQUALS(KErrNone, reqReceiveStatus.Int());
       
  1613     
       
  1614     // The server now is expecting the acknowledgement
       
  1615      
       
  1616     TMockLtsyData2<TDesC8*, TInt> expTsyData(msgPtr, rpCause);
       
  1617 
       
  1618     expTsyData.SerialiseL(data);
       
  1619 
       
  1620     iMockLTSY.ExpectL(EMobileSmsMessagingNackSmsStored, data);
       
  1621     iMockLTSY.CompleteL(EMobileSmsMessagingNackSmsStored, KErrNone);
       
  1622 
       
  1623     messaging.NackSmsStored(reqStatus, KMessage, rpCause); 
       
  1624     
       
  1625     messaging.CancelAsyncRequest(EMobileSmsMessagingNackSmsStored);
       
  1626 
       
  1627     User::WaitForRequest(reqStatus);
       
  1628     ASSERT_EQUALS(KErrNone, reqStatus.Int());       
       
  1629 
       
  1630     // Wait for completion of iMockLTSY.NotifyTerminated
       
  1631     User::WaitForRequest(mockLtsyStatus);
       
  1632     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());    
       
  1633     
       
  1634     AssertMockLtsyStatusL();
       
  1635         
       
  1636     CleanupStack::PopAndDestroy(3); 
       
  1637     
       
  1638     }
       
  1639 
       
  1640 
       
  1641 
       
  1642 /**
       
  1643 @SYMTestCaseID BA-CTSY-SMSM-SNSS-0004
       
  1644 @SYMComponent  telephony_ctsy
       
  1645 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsMessaging::NackSmsStored
       
  1646 @SYMTestPriority High
       
  1647 @SYMTestActions Invokes multiple client requests to RMobileSmsMessaging::NackSmsStored
       
  1648 @SYMTestExpectedResults Pass
       
  1649 @SYMTestType CT
       
  1650 */
       
  1651 void CCTsySmsMessagingFU::TestNackSmsStored0004L()
       
  1652     {
       
  1653     OpenEtelServerL(EUseExtendedError);
       
  1654     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1655     OpenPhoneL();
       
  1656 
       
  1657     RBuf8 data;
       
  1658     CleanupClosePushL(data);
       
  1659 
       
  1660     // Open second client
       
  1661     RTelServer telServer2;
       
  1662     TInt ret = telServer2.Connect();
       
  1663     ASSERT_EQUALS(KErrNone, ret);
       
  1664     CleanupClosePushL(telServer2);
       
  1665 
       
  1666     RMobilePhone phone2;
       
  1667     ret = phone2.Open(telServer2,KMmTsyPhoneName);
       
  1668     ASSERT_EQUALS(KErrNone, ret);
       
  1669     CleanupClosePushL(phone2);
       
  1670 
       
  1671 
       
  1672     RMobileSmsMessaging messaging;
       
  1673     TInt err = messaging.Open(iPhone);
       
  1674     ASSERT_EQUALS(KErrNone, err);
       
  1675     CleanupClosePushL(messaging);
       
  1676 
       
  1677     RMobileSmsMessaging messaging2;
       
  1678     err = messaging2.Open(phone2);
       
  1679     ASSERT_EQUALS(KErrNone, err);
       
  1680     CleanupClosePushL(messaging2);
       
  1681 
       
  1682 
       
  1683     TRequestStatus reqStatus;
       
  1684     TRequestStatus reqStatus2;
       
  1685     
       
  1686     _LIT8(KMessage, "Happy New Year");
       
  1687     _LIT8(KMessage2, "Happy New Year2");
       
  1688 
       
  1689     // make the server expect an acknowledgement
       
  1690     TRequestStatus reqReceiveStatus;
       
  1691     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1 receiveAttr;
       
  1692     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1Pckg receiveAttrPckg(receiveAttr);
       
  1693 
       
  1694     TUint8 smsRoutingStatus ( KSmsRoutingActivated );
       
  1695     TMockLtsyData1<TUint8> compSmsRoutingTsyData(smsRoutingStatus);
       
  1696     data.Close();
       
  1697     compSmsRoutingTsyData.SerialiseL(data);
       
  1698 
       
  1699     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting);    
       
  1700     iMockLTSY.CompleteL(EMmTsyActivateSmsRouting, KErrNone, data);
       
  1701 
       
  1702     TBuf8<100> forMsg;
       
  1703 
       
  1704     TSmsMsg smsMsg;
       
  1705     TSmsMsg* smsMsgPtr(&smsMsg);
       
  1706     TBool ind(EFalse);
       
  1707     
       
  1708     smsMsg.iSmsClass2 = ETrue;
       
  1709     smsMsg.iDeleteAfterClientAck = ETrue;
       
  1710     smsMsg.iSmsMsg.Copy(KMessage);
       
  1711 
       
  1712     TMockLtsyData2<TBool, TSmsMsg*> compTsyData(ind, smsMsgPtr);
       
  1713     data.Close();
       
  1714     compTsyData.SerialiseL(data);
       
  1715     
       
  1716     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
  1717 
       
  1718     messaging.ReceiveMessage(reqReceiveStatus, forMsg, receiveAttrPckg);
       
  1719     User::WaitForRequest(reqReceiveStatus);
       
  1720     ASSERT_EQUALS(KErrNone, reqReceiveStatus.Int());
       
  1721     
       
  1722     // The server now is expecting the acknowledgement    
       
  1723     
       
  1724     TDesC8* msgPtr = const_cast<TDesC8*>(&KMessage);
       
  1725     TInt rpCause(0);
       
  1726 
       
  1727     TMockLtsyData2<TDesC8*, TInt> expTsyData(msgPtr, rpCause);
       
  1728     
       
  1729     expTsyData.SerialiseL(data);
       
  1730 
       
  1731     iMockLTSY.ExpectL(EMobileSmsMessagingNackSmsStored, data);
       
  1732     iMockLTSY.CompleteL(EMobileSmsMessagingNackSmsStored, KErrNone, 10);        
       
  1733 
       
  1734     messaging.NackSmsStored(reqStatus, KMessage, rpCause); 
       
  1735 
       
  1736     TInt rpCause2(0);
       
  1737 
       
  1738     messaging2.NackSmsStored(reqStatus2, KMessage2, rpCause2); 
       
  1739 
       
  1740     User::WaitForRequest(reqStatus);
       
  1741     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  1742 
       
  1743     User::WaitForRequest(reqStatus2);
       
  1744     ASSERT_EQUALS(KErrServerBusy, reqStatus2.Int());
       
  1745 
       
  1746     AssertMockLtsyStatusL();
       
  1747 
       
  1748     CleanupStack::PopAndDestroy(6, this); 
       
  1749     }
       
  1750 
       
  1751 
       
  1752 /**
       
  1753 @SYMTestCaseID BA-CTSY-SMSM-SNSS-0005
       
  1754 @SYMComponent  telephony_ctsy
       
  1755 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::NackSmsStored with timeout
       
  1756 @SYMTestPriority High
       
  1757 @SYMTestActions Invokes RMobileSmsMessaging::NackSmsStored and tests for timeout
       
  1758 @SYMTestExpectedResults Pass
       
  1759 @SYMTestType CT
       
  1760 */
       
  1761 void CCTsySmsMessagingFU::TestNackSmsStored0005L()
       
  1762     {
       
  1763     
       
  1764     OpenEtelServerL(EUseExtendedError);
       
  1765     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1766     OpenPhoneL();
       
  1767 
       
  1768     RMobileSmsMessaging messaging;
       
  1769     TInt err = messaging.Open(iPhone);
       
  1770     ASSERT_EQUALS(KErrNone, err);
       
  1771     CleanupClosePushL(messaging);
       
  1772 
       
  1773     RBuf8 data;
       
  1774     CleanupClosePushL(data);
       
  1775 
       
  1776     _LIT8(KMessage, "Happy New Year");
       
  1777 
       
  1778     // make the server expect an acknowledgement
       
  1779     TRequestStatus reqReceiveStatus;
       
  1780     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1 receiveAttr;
       
  1781     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1Pckg receiveAttrPckg(receiveAttr);
       
  1782 
       
  1783     TUint8 smsRoutingStatus ( KSmsRoutingActivated );
       
  1784     TMockLtsyData1<TUint8> compSmsRoutingTsyData(smsRoutingStatus);
       
  1785     data.Close();
       
  1786     compSmsRoutingTsyData.SerialiseL(data);
       
  1787 
       
  1788     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting);    
       
  1789     iMockLTSY.CompleteL(EMmTsyActivateSmsRouting, KErrNone, data);
       
  1790 
       
  1791     TBuf8<100> forMsg;
       
  1792 
       
  1793     TSmsMsg smsMsg;
       
  1794     TSmsMsg* smsMsgPtr(&smsMsg);
       
  1795     TBool ind(EFalse);
       
  1796     
       
  1797     smsMsg.iSmsClass2 = ETrue;
       
  1798     smsMsg.iDeleteAfterClientAck = ETrue;
       
  1799     smsMsg.iSmsMsg.Copy(KMessage);
       
  1800 
       
  1801     TMockLtsyData2<TBool, TSmsMsg*> compTsyData(ind, smsMsgPtr);
       
  1802     data.Close();
       
  1803     compTsyData.SerialiseL(data);
       
  1804     
       
  1805     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
  1806 
       
  1807     messaging.ReceiveMessage(reqReceiveStatus, forMsg, receiveAttrPckg);
       
  1808     User::WaitForRequest(reqReceiveStatus);
       
  1809     ASSERT_EQUALS(KErrNone, reqReceiveStatus.Int());
       
  1810     
       
  1811     // The server now is expecting the acknowledgement        
       
  1812     
       
  1813     TRequestStatus reqStatus;
       
  1814     TDesC8* msgPtr = const_cast<TDesC8*>(&KMessage);
       
  1815     TInt rpCause(0);   
       
  1816 
       
  1817 
       
  1818     TMockLtsyData2<TDesC8*, TInt> expTsyData(msgPtr, rpCause);
       
  1819 
       
  1820     expTsyData.SerialiseL(data);
       
  1821 
       
  1822     iMockLTSY.ExpectL(EMobileSmsMessagingNackSmsStored, data);
       
  1823 
       
  1824     messaging.NackSmsStored(reqStatus, KMessage, rpCause); 
       
  1825     
       
  1826     User::WaitForRequest(reqStatus);
       
  1827     ASSERT_EQUALS(KErrTimedOut, reqStatus.Int());
       
  1828     
       
  1829     AssertMockLtsyStatusL();    
       
  1830 
       
  1831     CleanupStack::PopAndDestroy(3); 
       
  1832     
       
  1833     }
       
  1834 
       
  1835 
       
  1836 /**
       
  1837 @SYMTestCaseID BA-CTSY-SMSM-SGMSB-0001
       
  1838 @SYMComponent  telephony_ctsy
       
  1839 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::GetMoSmsBearer
       
  1840 @SYMTestPriority High
       
  1841 @SYMTestActions Invokes RMobileSmsMessaging::GetMoSmsBearer
       
  1842 @SYMTestExpectedResults Pass
       
  1843 @SYMTestType CT
       
  1844 */
       
  1845 void CCTsySmsMessagingFU::TestGetMoSmsBearer0001L()
       
  1846     {
       
  1847 
       
  1848     OpenEtelServerL(EUseExtendedError);
       
  1849     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1850     OpenPhoneL();
       
  1851 
       
  1852     RMobileSmsMessaging messaging;
       
  1853     TInt err = messaging.Open(iPhone);
       
  1854     ASSERT_EQUALS(KErrNone, err);
       
  1855     CleanupClosePushL(messaging);
       
  1856 
       
  1857     RMobileSmsMessaging::TMobileSmsBearer bearer;
       
  1858     
       
  1859     err = messaging.GetMoSmsBearer(bearer);
       
  1860     ASSERT_EQUALS(KErrNotSupported, err);
       
  1861 
       
  1862     AssertMockLtsyStatusL();
       
  1863     CleanupStack::PopAndDestroy(2, this); 
       
  1864     
       
  1865     }
       
  1866 
       
  1867 
       
  1868 
       
  1869 /**
       
  1870 @SYMTestCaseID BA-CTSY-SMSM-SGRM-0001
       
  1871 @SYMComponent  telephony_ctsy
       
  1872 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::GetReceiveMode
       
  1873 @SYMTestPriority High
       
  1874 @SYMTestActions Invokes RMobileSmsMessaging::GetReceiveMode
       
  1875 @SYMTestExpectedResults Pass
       
  1876 @SYMTestType CT
       
  1877 */
       
  1878 void CCTsySmsMessagingFU::TestGetReceiveMode0001L()
       
  1879     {
       
  1880 
       
  1881     OpenEtelServerL(EUseExtendedError);
       
  1882     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1883     OpenPhoneL();
       
  1884 
       
  1885     RMobileSmsMessaging messaging;
       
  1886     TInt err = messaging.Open(iPhone);
       
  1887     ASSERT_EQUALS(KErrNone, err);
       
  1888     CleanupClosePushL(messaging);
       
  1889 
       
  1890     RMobileSmsMessaging::TMobileSmsReceiveMode mode;
       
  1891     
       
  1892     err = messaging.GetReceiveMode(mode);
       
  1893     ASSERT_EQUALS(KErrNone, err);
       
  1894     ASSERT_EQUALS(RMobileSmsMessaging::EReceiveUnstoredClientAck, mode);
       
  1895 
       
  1896     TRequestStatus reqStatus;
       
  1897     RMobileSmsMessaging::TMobileSmsReceiveMode modeToSet(RMobileSmsMessaging::EReceiveStored);
       
  1898 
       
  1899     messaging.SetReceiveMode(reqStatus, modeToSet);
       
  1900 
       
  1901     User::WaitForRequest(reqStatus);
       
  1902     ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
  1903 
       
  1904     err = messaging.GetReceiveMode(mode);
       
  1905     ASSERT_EQUALS(KErrNone, err);
       
  1906     ASSERT_EQUALS(RMobileSmsMessaging::EReceiveUnstoredClientAck, mode);
       
  1907 
       
  1908 
       
  1909     AssertMockLtsyStatusL();
       
  1910     CleanupStack::PopAndDestroy(2, this); 
       
  1911     
       
  1912     }
       
  1913 
       
  1914 
       
  1915 
       
  1916 /**
       
  1917 @SYMTestCaseID BA-CTSY-SMSM-SRM-0001
       
  1918 @SYMComponent  telephony_ctsy
       
  1919 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::ReceiveMessage
       
  1920 @SYMTestPriority High
       
  1921 @SYMTestActions Invokes RMobileSmsMessaging::ReceiveMessage
       
  1922 @SYMTestExpectedResults Pass
       
  1923 @SYMTestType CT
       
  1924 */
       
  1925 void CCTsySmsMessagingFU::TestReceiveMessage0001L()
       
  1926     {
       
  1927 
       
  1928     OpenEtelServerL(EUseExtendedError);
       
  1929     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  1930     OpenPhoneL();
       
  1931 
       
  1932     RMobileSmsMessaging messaging;
       
  1933     TInt err = messaging.Open(iPhone);
       
  1934     ASSERT_EQUALS(KErrNone, err);
       
  1935     CleanupClosePushL(messaging);
       
  1936 
       
  1937     RMobileSmsStore store;
       
  1938 
       
  1939     err = store.Open(messaging, KETelMeSmsStore);
       
  1940     ASSERT_EQUALS(KErrNotSupported, err);
       
  1941     
       
  1942     
       
  1943     iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo, KErrNone);
       
  1944     err = store.Open(messaging, KETelIccSmsStore);
       
  1945     ASSERT_EQUALS(KErrNone, err);
       
  1946     CleanupClosePushL(store);
       
  1947  
       
  1948     RBuf8 data;
       
  1949     CleanupClosePushL(data);
       
  1950 
       
  1951     TRequestStatus reqStatus;
       
  1952     TRequestStatus mockLtsyStatus;
       
  1953     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1 receiveAttr;
       
  1954     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1Pckg receiveAttrPckg(receiveAttr);
       
  1955   
       
  1956     _LIT8(KMessage, "Happy New Year");
       
  1957     TBuf8<100> forMsg;
       
  1958         
       
  1959     //-------------------------------------------------------------------------
       
  1960     // TEST A1: failure to dispatch request to LTSY
       
  1961     //-------------------------------------------------------------------------
       
  1962 
       
  1963     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting, KErrNotSupported);
       
  1964 
       
  1965     messaging.ReceiveMessage(reqStatus, forMsg, receiveAttrPckg);
       
  1966 
       
  1967     User::WaitForRequest(reqStatus);    
       
  1968     ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
  1969 
       
  1970     AssertMockLtsyStatusL();
       
  1971 
       
  1972     //-------------------------------------------------------------------------
       
  1973     // TEST B: failure on completion of pending request from LTSY->CTSY
       
  1974     //-------------------------------------------------------------------------
       
  1975 
       
  1976     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting);
       
  1977 
       
  1978     messaging.ReceiveMessage(reqStatus, forMsg, receiveAttrPckg);
       
  1979 
       
  1980     TSmsMsg smsMsg;
       
  1981     TSmsMsg* smsMsgPtr(&smsMsg);
       
  1982     TBool ind(EFalse);
       
  1983     
       
  1984     smsMsg.iSmsClass2 = ETrue;
       
  1985     smsMsg.iDeleteAfterClientAck = ETrue;
       
  1986     smsMsg.iSmsMsg.Copy(KMessage);
       
  1987 
       
  1988     TMockLtsyData2<TBool, TSmsMsg*> compTsyData(ind, smsMsgPtr);
       
  1989     compTsyData.SerialiseL(data);
       
  1990 
       
  1991     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrGeneral, data);
       
  1992 
       
  1993     User::WaitForRequest(reqStatus);    
       
  1994     ASSERT_EQUALS(KErrGeneral, reqStatus.Int());
       
  1995 
       
  1996     AssertMockLtsyStatusL();
       
  1997 
       
  1998     //-------------------------------------------------------------------------
       
  1999     // TEST E: Unsolicited completion of RMobileSmsMessaging::ReceiveMessage
       
  2000     // from LTSY.
       
  2001     //-------------------------------------------------------------------------
       
  2002 
       
  2003     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2004 
       
  2005     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
  2006 
       
  2007     TDesC8* zeroPtr(NULL);
       
  2008     TInt rpCause(KErrGsmSMSUnspecifiedProtocolError);
       
  2009     TMockLtsyData2<TDesC8*, TInt> expTsyData(zeroPtr, rpCause);
       
  2010 
       
  2011     data.Close();
       
  2012     expTsyData.SerialiseL(data);
       
  2013 
       
  2014     iMockLTSY.ExpectL(EMobileSmsMessagingNackSmsStored, data);
       
  2015     
       
  2016     User::WaitForRequest(mockLtsyStatus);
       
  2017     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  2018 
       
  2019     AssertMockLtsyStatusL();
       
  2020 
       
  2021     TDesC8* msgPtr = const_cast<TDesC8*>(&KMessage);
       
  2022     
       
  2023     TMockLtsyData1<TDesC8*> expAckTsyData(msgPtr);
       
  2024     
       
  2025     data.Close();
       
  2026     expAckTsyData.SerialiseL(data);
       
  2027 
       
  2028     smsMsg.iSmsClass2 = ETrue;
       
  2029     smsMsg.iDeleteAfterClientAck = EFalse;
       
  2030     smsMsg.iSmsMsg.Copy(KMessage);
       
  2031 
       
  2032     TMockLtsyData2<TBool, TSmsMsg*> compRecTsyData(ind, smsMsgPtr);
       
  2033     
       
  2034     data.Close();
       
  2035     compRecTsyData.SerialiseL(data);
       
  2036 
       
  2037     //-------------------------------------------------------------------------
       
  2038     // successful completion of RMobileSmsMessaging::ReceiveMessage 
       
  2039     // in case when iClientStorageFull = false
       
  2040     //-------------------------------------------------------------------------
       
  2041 
       
  2042     data.Close();
       
  2043     expAckTsyData.SerialiseL(data);
       
  2044 
       
  2045     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting);
       
  2046     messaging.ReceiveMessage(reqStatus, forMsg, receiveAttrPckg);
       
  2047 
       
  2048     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2049 
       
  2050     data.Close();
       
  2051     compRecTsyData.SerialiseL(data);
       
  2052 
       
  2053     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
  2054 
       
  2055     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting);
       
  2056 
       
  2057     User::WaitForRequest(mockLtsyStatus);
       
  2058     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  2059 
       
  2060     AssertMockLtsyStatusL();
       
  2061 
       
  2062     //completion with KErrGsmSMSUnspecifiedProtocolError and iClientStorageFull = false
       
  2063   
       
  2064     data.Close();
       
  2065     compRecTsyData.SerialiseL(data);
       
  2066 
       
  2067     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2068     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrGsmSMSUnspecifiedProtocolError, data);
       
  2069 
       
  2070     rpCause = KErrGsmSMSUnspecifiedProtocolError;
       
  2071     data.Close();
       
  2072     expTsyData.SerialiseL(data);
       
  2073 
       
  2074     iMockLTSY.ExpectL(EMobileSmsMessagingNackSmsStored, data);
       
  2075 
       
  2076     User::WaitForRequest(mockLtsyStatus);
       
  2077     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  2078 
       
  2079     AssertMockLtsyStatusL();
       
  2080    
       
  2081     
       
  2082     //-------------------------------------------------------------------------
       
  2083     // successful completion of RMobileSmsMessaging::ReceiveMessage 
       
  2084     // in case when iClientStorageFull = false and iSmsClass2 = EFalse
       
  2085     //-------------------------------------------------------------------------
       
  2086 
       
  2087 
       
  2088     data.Close();
       
  2089     expAckTsyData.SerialiseL(data);
       
  2090 
       
  2091     iMockLTSY.ExpectL(EMobileSmsMessagingAckSmsStored, data);
       
  2092     
       
  2093     TRequestStatus reqAckStatus;
       
  2094     
       
  2095     messaging.AckSmsStored(reqAckStatus, KMessage, EFalse);
       
  2096 
       
  2097     iMockLTSY.CompleteL(EMobileSmsMessagingAckSmsStored, KErrNone);
       
  2098 
       
  2099     User::WaitForRequest(reqAckStatus);
       
  2100     ASSERT_EQUALS(KErrNone, reqAckStatus.Int());
       
  2101 
       
  2102     AssertMockLtsyStatusL();
       
  2103 
       
  2104     smsMsg.iSmsClass2 = EFalse;
       
  2105 
       
  2106     data.Close();
       
  2107     compRecTsyData.SerialiseL(data);
       
  2108 
       
  2109     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2110     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
  2111     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting);
       
  2112     messaging.CancelAsyncRequest(EMobileSmsMessagingReceiveMessage);
       
  2113     User::WaitForRequest(mockLtsyStatus);
       
  2114     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  2115 
       
  2116     User::WaitForRequest(reqStatus);
       
  2117     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  2118     
       
  2119     AssertMockLtsyStatusL();
       
  2120 
       
  2121     //-------------------------------------------------------------------------
       
  2122     // Unsolicited completion of RMobileSmsMessaging::ReceiveMessage 
       
  2123     // in case when (iClientStorageFull && smsClass2)
       
  2124     //-------------------------------------------------------------------------    
       
  2125 
       
  2126     data.Close();
       
  2127     expAckTsyData.SerialiseL(data);
       
  2128     
       
  2129     iMockLTSY.ExpectL(EMobileSmsMessagingAckSmsStored, data);
       
  2130     messaging.AckSmsStored(reqStatus, KMessage, ETrue);
       
  2131     iMockLTSY.CompleteL(EMobileSmsMessagingAckSmsStored, KErrNone);
       
  2132 
       
  2133     User::WaitForRequest(reqStatus);
       
  2134     ASSERT_EQUALS(KErrNone, reqStatus.Int());    
       
  2135     
       
  2136     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2137 
       
  2138     smsMsg.iSmsClass2 = ETrue;
       
  2139     
       
  2140     data.Close();
       
  2141     compRecTsyData.SerialiseL(data);
       
  2142     
       
  2143     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
  2144 
       
  2145     TMockLtsyData1<TDesC8*> expZeroAckTsyData(zeroPtr);
       
  2146     data.Close();
       
  2147     expZeroAckTsyData.SerialiseL(data);
       
  2148     
       
  2149     iMockLTSY.ExpectL(EMobileSmsMessagingAckSmsStored, data);
       
  2150 
       
  2151     User::WaitForRequest(mockLtsyStatus);
       
  2152     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  2153 
       
  2154     AssertMockLtsyStatusL();    
       
  2155     
       
  2156     
       
  2157     //-------------------------------------------------------------------------
       
  2158     // TEST C: Successful completion request of
       
  2159     // RMobileSmsMessaging::ReceiveMessage when result is not cached.
       
  2160     //-------------------------------------------------------------------------
       
  2161 
       
  2162     // smsStoreArray is not zero, complete ReceiveMessage() from DeliverClass2ToSmsStack()
       
  2163    
       
  2164     TRequestStatus reqResumeStatus;
       
  2165     iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
       
  2166 
       
  2167     iMockLTSY.CompleteL(EMobileSmsMessagingResumeSmsReception, KErrNone);
       
  2168     messaging.ResumeSmsReception(reqResumeStatus);
       
  2169 
       
  2170     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting);
       
  2171     
       
  2172     User::WaitForRequest(reqResumeStatus);
       
  2173     ASSERT_EQUALS(KErrNone, reqResumeStatus.Int());
       
  2174     
       
  2175     TRequestStatus reqRecStatus;
       
  2176     messaging.ReceiveMessage(reqRecStatus, forMsg, receiveAttrPckg);    
       
  2177     
       
  2178     User::WaitForRequest(reqRecStatus);
       
  2179     ASSERT_EQUALS(KErrNone, reqRecStatus.Int());
       
  2180 
       
  2181     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2182 
       
  2183     TUint8 smsRoutingStatus1 ( KSmsRoutingActivated );
       
  2184     TMockLtsyData1<TUint8> compSmsRoutingTsyData1(smsRoutingStatus1);
       
  2185     data.Close();
       
  2186     compSmsRoutingTsyData1.SerialiseL(data);
       
  2187     iMockLTSY.CompleteL(EMmTsyActivateSmsRouting, KErrNone, data);
       
  2188 
       
  2189     User::WaitForRequest(mockLtsyStatus);
       
  2190     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  2191 
       
  2192     messaging.AckSmsStored(reqAckStatus, KMessage, ETrue);
       
  2193 
       
  2194     User::WaitForRequest(reqAckStatus);
       
  2195     ASSERT_EQUALS(KErrNone, reqAckStatus.Int());
       
  2196 
       
  2197     AssertMockLtsyStatusL();
       
  2198 
       
  2199     //completion of receive request with rpError = KErrGsmSMSMemoryCapacityExceeded
       
  2200     
       
  2201     
       
  2202     smsMsg.iSmsClass2 = EFalse;
       
  2203     smsMsg.iDeleteAfterClientAck = EFalse;
       
  2204     smsMsg.iSmsMsg.Copy(KMessage);
       
  2205 
       
  2206     data.Close();
       
  2207     compRecTsyData.SerialiseL(data);
       
  2208 
       
  2209     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2210     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
  2211 
       
  2212     rpCause = KErrGsmSMSMemoryCapacityExceeded;
       
  2213     data.Close();
       
  2214     expTsyData.SerialiseL(data);
       
  2215 
       
  2216     iMockLTSY.ExpectL(EMobileSmsMessagingNackSmsStored, data);
       
  2217     
       
  2218     User::WaitForRequest(mockLtsyStatus);
       
  2219     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  2220 
       
  2221     AssertMockLtsyStatusL();
       
  2222 
       
  2223     //completion using KErrGsmSMSUnspecifiedProtocolError
       
  2224 
       
  2225     data.Close();
       
  2226     compRecTsyData.SerialiseL(data);
       
  2227 
       
  2228     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2229     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrGsmSMSUnspecifiedProtocolError, data);
       
  2230 
       
  2231     rpCause = KErrGsmSMSMemoryCapacityExceeded;
       
  2232     data.Close();
       
  2233     expTsyData.SerialiseL(data);
       
  2234 
       
  2235     iMockLTSY.ExpectL(EMobileSmsMessagingNackSmsStored, data);
       
  2236 
       
  2237     User::WaitForRequest(mockLtsyStatus);
       
  2238     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  2239 
       
  2240     AssertMockLtsyStatusL();
       
  2241 
       
  2242     //completion using KErrGsmSMSMemoryCapacityExceeded and 
       
  2243     // setting iServerRoutingActivity = ERoutingNotActivated
       
  2244     data.Close();
       
  2245     compRecTsyData.SerialiseL(data);
       
  2246 
       
  2247     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2248     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrGsmSMSMemoryCapacityExceeded, data);
       
  2249 
       
  2250     rpCause = KErrGsmSMSMemoryCapacityExceeded;
       
  2251     data.Close();
       
  2252     expTsyData.SerialiseL(data);
       
  2253 
       
  2254     iMockLTSY.ExpectL(EMobileSmsMessagingNackSmsStored, data, KErrNotSupported);
       
  2255 
       
  2256     User::WaitForRequest(mockLtsyStatus);
       
  2257     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  2258     
       
  2259     AssertMockLtsyStatusL();
       
  2260 
       
  2261     //completion of EMobileSmsMessagingReceiveMessage with KErrGeneral
       
  2262     ind = ETrue;
       
  2263 
       
  2264     data.Close();
       
  2265     compRecTsyData.SerialiseL(data);
       
  2266 
       
  2267     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2268     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrGeneral, data);
       
  2269 
       
  2270     User::WaitForRequest(mockLtsyStatus);
       
  2271     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  2272 
       
  2273     AssertMockLtsyStatusL();
       
  2274     
       
  2275     //completion of EMmTsyActivateSmsRouting with KErrGeneral
       
  2276     
       
  2277     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2278 
       
  2279     TUint8 smsRoutingStatus ( KSmsRoutingDeactivated );
       
  2280     TMockLtsyData1<TUint8> compSmsRoutingTsyData(smsRoutingStatus);
       
  2281     data.Close();
       
  2282     compSmsRoutingTsyData.SerialiseL(data);
       
  2283 
       
  2284     iMockLTSY.CompleteL(EMmTsyActivateSmsRouting, KErrGeneral, data);
       
  2285 
       
  2286     User::WaitForRequest(mockLtsyStatus);
       
  2287     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  2288     
       
  2289     AssertMockLtsyStatusL();   
       
  2290     
       
  2291     //Unsolicited completion of EMobileSmsMessagingReceiveMessage with KErrGeneral
       
  2292     
       
  2293     data.Close();
       
  2294     compRecTsyData.SerialiseL(data);
       
  2295 
       
  2296     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2297     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrGeneral, data);
       
  2298 
       
  2299     rpCause = KErrGsmSMSMemoryCapacityExceeded; // set to mem capacity exceeded so that base will resend the message later.
       
  2300     data.Close();
       
  2301     expTsyData.SerialiseL(data);
       
  2302 
       
  2303     iMockLTSY.ExpectL(EMobileSmsMessagingNackSmsStored, data);
       
  2304 
       
  2305     User::WaitForRequest(mockLtsyStatus);
       
  2306     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  2307 
       
  2308     AssertMockLtsyStatusL();
       
  2309     
       
  2310     CleanupStack::PopAndDestroy(4, this); 
       
  2311     
       
  2312     }
       
  2313 
       
  2314 /**
       
  2315 @SYMTestCaseID BA-CTSY-SMSM-SRM-0001A
       
  2316 @SYMComponent  telephony_ctsy
       
  2317 @SYMTestCaseDesc Test support in CTSY for  RMobileSmsMessaging::ReceiveMessage before modem is ready
       
  2318 @SYMTestPriority High
       
  2319 @SYMTestActions Invokes RMobileSmsMessaging::ReceiveMessage
       
  2320 @SYMTestExpectedResults Pass
       
  2321 @SYMTestType CT
       
  2322 */
       
  2323 void CCTsySmsMessagingFU::TestReceiveMessage0001AL()
       
  2324     {
       
  2325 
       
  2326     OpenEtelServerL(EUseExtendedError);
       
  2327     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2328 
       
  2329 
       
  2330     RTelServer telServer;
       
  2331     TInt ret = telServer.Connect();
       
  2332     ASSERT_EQUALS(KErrNone, ret);
       
  2333     CleanupClosePushL(telServer);
       
  2334 
       
  2335     RMobilePhone phone;
       
  2336     ret = phone.Open(telServer,KMmTsyPhoneName);
       
  2337     ASSERT_EQUALS(KErrNone, ret);
       
  2338     CleanupClosePushL(phone);
       
  2339 
       
  2340     RMobileSmsMessaging messaging;
       
  2341     TInt err = messaging.Open(phone);
       
  2342     ASSERT_EQUALS(KErrNone, err);
       
  2343     CleanupClosePushL(messaging);
       
  2344 
       
  2345     err=iMockLTSY.Connect();
       
  2346     ASSERT_EQUALS(KErrNone, err);
       
  2347     TRequestStatus mockLtsyStatus;
       
  2348     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2349 
       
  2350     RBuf8 data;
       
  2351     CleanupClosePushL(data);
       
  2352 
       
  2353     //-------------------------------------------------------------------------
       
  2354     // Test activation of RMobileSmsMessaging::ReceiveMessage
       
  2355     //-------------------------------------------------------------------------
       
  2356     
       
  2357     TRequestStatus reqStatus;
       
  2358     TBuf8<100> forMsg;
       
  2359     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1 receiveAttr;
       
  2360     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1Pckg receiveAttrPckg(receiveAttr);
       
  2361 
       
  2362 
       
  2363     TSmsMsg smsMsg;
       
  2364     TSmsMsg* smsMsgPtr(&smsMsg);
       
  2365     TBool ind(EFalse);
       
  2366     
       
  2367     TMockLtsyData2<TBool, TSmsMsg*> compTsyData(ind, smsMsgPtr);
       
  2368     compTsyData.SerialiseL(data);
       
  2369 
       
  2370     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
  2371 
       
  2372     messaging.ReceiveMessage(reqStatus, forMsg, receiveAttrPckg);
       
  2373 
       
  2374     User::WaitForRequest(reqStatus);    
       
  2375     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  2376     
       
  2377     CleanupStack::PopAndDestroy(5); 
       
  2378     
       
  2379     }
       
  2380 
       
  2381 /**
       
  2382 @SYMTestCaseID BA-CTSY-SMSM-SRM-0002
       
  2383 @SYMComponent  telephony_ctsy
       
  2384 @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsMessaging::ReceiveMessage
       
  2385 @SYMTestPriority High
       
  2386 @SYMTestActions Invokes cancelling of RMobileSmsMessaging::ReceiveMessage
       
  2387 @SYMTestExpectedResults Pass
       
  2388 @SYMTestType CT
       
  2389 */
       
  2390 void CCTsySmsMessagingFU::TestReceiveMessage0002L()
       
  2391     {
       
  2392 
       
  2393     OpenEtelServerL(EUseExtendedError);
       
  2394     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2395     OpenPhoneL();
       
  2396 
       
  2397     RMobileSmsMessaging messaging;
       
  2398     TInt err = messaging.Open(iPhone);
       
  2399     ASSERT_EQUALS(KErrNone, err);
       
  2400     CleanupClosePushL(messaging);
       
  2401 
       
  2402     TRequestStatus mockLtsyStatus;
       
  2403     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2404 
       
  2405     RBuf8 data;
       
  2406     CleanupClosePushL(data);
       
  2407 
       
  2408     //-------------------------------------------------------------------------
       
  2409     // Test cancelling of RMobileSmsMessaging::ReceiveMessage
       
  2410     //-------------------------------------------------------------------------
       
  2411     
       
  2412     TRequestStatus reqStatus;
       
  2413     TBuf8<100> forMsg;
       
  2414     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1 receiveAttr;
       
  2415     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1Pckg receiveAttrPckg(receiveAttr);
       
  2416 
       
  2417 
       
  2418     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting);
       
  2419 
       
  2420     TSmsMsg smsMsg;
       
  2421     TSmsMsg* smsMsgPtr(&smsMsg);
       
  2422     TBool ind(EFalse);
       
  2423     
       
  2424     TMockLtsyData2<TBool, TSmsMsg*> compTsyData(ind, smsMsgPtr);
       
  2425     compTsyData.SerialiseL(data);
       
  2426 
       
  2427     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrGeneral, data);
       
  2428 
       
  2429     messaging.ReceiveMessage(reqStatus, forMsg, receiveAttrPckg);
       
  2430     
       
  2431     messaging.CancelAsyncRequest(EMobileSmsMessagingReceiveMessage);
       
  2432 
       
  2433     User::WaitForRequest(reqStatus);    
       
  2434     ASSERT_EQUALS(KErrCancel, reqStatus.Int());
       
  2435     
       
  2436     // this is used for proper processing of unsolicited complete for EMobileSmsMessagingReceiveMessage
       
  2437     TDesC8* zeroPtr(NULL);
       
  2438     TInt rpCause(KErrGsmSMSUnspecifiedProtocolError);
       
  2439     TMockLtsyData2<TDesC8*, TInt> expTsyData(zeroPtr, rpCause);
       
  2440 
       
  2441     data.Close();
       
  2442     expTsyData.SerialiseL(data);
       
  2443 
       
  2444     iMockLTSY.ExpectL(EMobileSmsMessagingNackSmsStored, data);
       
  2445     
       
  2446     // Wait for completion of iMockLTSY.NotifyTerminated
       
  2447     User::WaitForRequest(mockLtsyStatus);
       
  2448     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  2449     CleanupStack::PopAndDestroy(3); 
       
  2450     
       
  2451     }
       
  2452 
       
  2453 
       
  2454 /**
       
  2455 @SYMTestCaseID BA-CTSY-SMSM-SRM-0003
       
  2456 @SYMComponent  telephony_ctsy
       
  2457 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::ReceiveMessage with bad parameter data
       
  2458 @SYMTestPriority High
       
  2459 @SYMTestActions Invokes RMobileSmsMessaging::ReceiveMessage with bad parameter data
       
  2460 @SYMTestExpectedResults Pass
       
  2461 @SYMTestType CT
       
  2462 */
       
  2463 void CCTsySmsMessagingFU::TestReceiveMessage0003L()
       
  2464     {
       
  2465     OpenEtelServerL(EUseExtendedError);
       
  2466     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2467     OpenPhoneL();
       
  2468 
       
  2469     RMobileSmsMessaging messaging;
       
  2470     TInt err = messaging.Open(iPhone);
       
  2471     ASSERT_EQUALS(KErrNone, err);
       
  2472     CleanupClosePushL(messaging);
       
  2473 
       
  2474     //-------------------------------------------------------------------------
       
  2475     // Failure of completion with bad MsgAttribute
       
  2476     //-------------------------------------------------------------------------
       
  2477     
       
  2478     TRequestStatus status1;
       
  2479     const TInt KSmsBufLength = 231;
       
  2480     TBuf8<KSmsBufLength> normalBuf;
       
  2481     TInt8 tmp;
       
  2482     TPckg<TInt8> badPckg(tmp);
       
  2483 
       
  2484     messaging.ReceiveMessage(status1, normalBuf, badPckg);
       
  2485     
       
  2486     User::WaitForRequest(status1);    
       
  2487     ASSERT_EQUALS(KErrArgument, status1.Int());
       
  2488     
       
  2489     AssertMockLtsyStatusL();    
       
  2490     
       
  2491     
       
  2492     //-------------------------------------------------------------------------
       
  2493     // Failure of completion with too small data buffer
       
  2494     //-------------------------------------------------------------------------
       
  2495    
       
  2496     TRequestStatus status2;
       
  2497     RBuf8 data;
       
  2498     CleanupClosePushL(data);
       
  2499 
       
  2500     TBuf8<1> badBuf;
       
  2501     
       
  2502     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1 receiveAttr;
       
  2503     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1Pckg receiveAttrPckg(receiveAttr);
       
  2504     
       
  2505     _LIT8(KMessage, "Happy New Year");
       
  2506     
       
  2507     TSmsMsg smsMsg;
       
  2508     TSmsMsg* smsMsgPtr(&smsMsg);
       
  2509     TBool ind(EFalse);
       
  2510     
       
  2511     smsMsg.iSmsClass2 = ETrue;
       
  2512     smsMsg.iDeleteAfterClientAck = EFalse;
       
  2513     smsMsg.iSmsMsg.Copy(KMessage);
       
  2514     
       
  2515     TMockLtsyData2<TBool, TSmsMsg*> compTsyData(ind, smsMsgPtr);
       
  2516     compTsyData.SerialiseL(data);
       
  2517 
       
  2518     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting);
       
  2519     
       
  2520     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
  2521 
       
  2522     messaging.ReceiveMessage(status2, badBuf, receiveAttrPckg);
       
  2523 
       
  2524     User::WaitForRequest(status2);    
       
  2525     ASSERT_EQUALS(KErrArgument, status2.Int());    
       
  2526 
       
  2527     AssertMockLtsyStatusL();
       
  2528 
       
  2529     CleanupStack::PopAndDestroy(3); 
       
  2530 
       
  2531     }
       
  2532 
       
  2533 
       
  2534 /**
       
  2535 @SYMTestCaseID BA-CTSY-SMSM-SRM-0004
       
  2536 @SYMComponent  telephony_ctsy
       
  2537 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsMessaging::ReceiveMessage
       
  2538 @SYMTestPriority High
       
  2539 @SYMTestActions Invokes multiple client requests to RMobileSmsMessaging::ReceiveMessage
       
  2540 @SYMTestExpectedResults Pass
       
  2541 @SYMTestType CT
       
  2542 */
       
  2543 void CCTsySmsMessagingFU::TestReceiveMessage0004L()
       
  2544     {
       
  2545                     
       
  2546     OpenEtelServerL(EUseExtendedError);
       
  2547     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2548     OpenPhoneL();
       
  2549 
       
  2550     RBuf8 data;
       
  2551     CleanupClosePushL(data);
       
  2552 
       
  2553     // Open second client
       
  2554     RTelServer telServer2;
       
  2555     TInt ret = telServer2.Connect();
       
  2556     ASSERT_EQUALS(KErrNone, ret);
       
  2557     CleanupClosePushL(telServer2);
       
  2558 
       
  2559     RMobilePhone phone2;
       
  2560     ret = phone2.Open(telServer2,KMmTsyPhoneName);
       
  2561     ASSERT_EQUALS(KErrNone, ret);
       
  2562     CleanupClosePushL(phone2);
       
  2563 
       
  2564     RMobileSmsMessaging messaging;
       
  2565     TInt err = messaging.Open(iPhone);
       
  2566     ASSERT_EQUALS(KErrNone, err);
       
  2567     CleanupClosePushL(messaging);
       
  2568 
       
  2569     RMobileSmsMessaging messaging2;
       
  2570     err = messaging2.Open(phone2);
       
  2571     ASSERT_EQUALS(KErrNone, err);
       
  2572     CleanupClosePushL(messaging2);
       
  2573 
       
  2574     //-------------------------------------------------------------------------
       
  2575     // Test A: Test multiple clients requesting RMobileSmsMessaging::ReceiveMessage
       
  2576     //-------------------------------------------------------------------------
       
  2577 
       
  2578     TRequestStatus reqStatus;
       
  2579     TRequestStatus reqStatus2;
       
  2580     TBuf8<100> forMsg;
       
  2581     TBuf8<100> forMsg2;
       
  2582     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1 receiveAttr;
       
  2583     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1 receiveAttr2;
       
  2584     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1Pckg receiveAttrPckg(receiveAttr);
       
  2585     RMobileSmsMessaging::TMobileSmsReceiveAttributesV1Pckg receiveAttrPckg2(receiveAttr2);
       
  2586 
       
  2587     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting);
       
  2588 
       
  2589     messaging.ReceiveMessage(reqStatus, forMsg, receiveAttrPckg);
       
  2590 
       
  2591     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting);
       
  2592 
       
  2593     messaging2.ReceiveMessage(reqStatus2, forMsg2, receiveAttrPckg2);
       
  2594 
       
  2595 
       
  2596     
       
  2597     TSmsMsg smsMsg;
       
  2598     TSmsMsg* smsMsgPtr(&smsMsg);
       
  2599     TBool ind(EFalse);
       
  2600     
       
  2601     TMockLtsyData2<TBool, TSmsMsg*> compTsyData(ind, smsMsgPtr);
       
  2602     compTsyData.SerialiseL(data);
       
  2603 
       
  2604     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
  2605 
       
  2606     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting);
       
  2607 
       
  2608 
       
  2609 
       
  2610     TSmsMsg smsMsg2;
       
  2611     TSmsMsg* smsMsgPtr2(&smsMsg2);
       
  2612     TBool ind2(EFalse);
       
  2613     
       
  2614     TMockLtsyData2<TBool, TSmsMsg*> compTsyData2(ind2, smsMsgPtr2);
       
  2615     data.Close();
       
  2616     compTsyData2.SerialiseL(data);
       
  2617 
       
  2618     iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, data);
       
  2619 
       
  2620     iMockLTSY.ExpectL(EMmTsyActivateSmsRouting);
       
  2621 
       
  2622 
       
  2623     ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 360502);
       
  2624     //request for EMobileSmsMessagingReceiveMessage in case of mutiple clients hangs on 
       
  2625     //User::WaitForRequest() untill testexecute aborts the test with timeout
       
  2626     
       
  2627     ASSERT_TRUE(EFalse);
       
  2628 
       
  2629     User::WaitForRequest(reqStatus);    
       
  2630     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  2631 
       
  2632     User::WaitForRequest(reqStatus2);
       
  2633     ASSERT_EQUALS(KErrNone, reqStatus2.Int());
       
  2634 
       
  2635     AssertMockLtsyStatusL();
       
  2636 
       
  2637     CleanupStack::PopAndDestroy(5, this); 
       
  2638 
       
  2639     }
       
  2640 
       
  2641 
       
  2642 
       
  2643 /**
       
  2644 @SYMTestCaseID BA-CTSY-SMSM-SSMSB-0001
       
  2645 @SYMComponent  telephony_ctsy
       
  2646 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::SetMoSmsBearer
       
  2647 @SYMTestPriority High
       
  2648 @SYMTestActions Invokes RMobileSmsMessaging::SetMoSmsBearer
       
  2649 @SYMTestExpectedResults Pass
       
  2650 @SYMTestType CT
       
  2651 */
       
  2652 void CCTsySmsMessagingFU::TestSetMoSmsBearer0001L()
       
  2653     {
       
  2654 
       
  2655     OpenEtelServerL(EUseExtendedError);
       
  2656     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2657     OpenPhoneL();
       
  2658 
       
  2659     RBuf8 data;
       
  2660     CleanupClosePushL(data);
       
  2661 
       
  2662     RMobileSmsMessaging messaging;
       
  2663     TInt err = messaging.Open(iPhone);
       
  2664     ASSERT_EQUALS(KErrNone, err);
       
  2665     CleanupClosePushL(messaging);
       
  2666 
       
  2667     TRequestStatus reqStatus;
       
  2668     RMobileSmsMessaging::TMobileSmsBearer smsBearer;
       
  2669     
       
  2670 
       
  2671     TMockLtsyData1<RMobileSmsMessaging::TMobileSmsBearer> expTsyData(smsBearer);
       
  2672 
       
  2673     //-------------------------------------------------------------------------
       
  2674     // TEST A1: failure to dispatch request to LTSY
       
  2675     //-------------------------------------------------------------------------
       
  2676 
       
  2677     // -1 means an invalid value, which is out of bounds of enum TMobileSmsBearer
       
  2678     smsBearer = (RMobileSmsMessaging::TMobileSmsBearer) -1;
       
  2679     messaging.SetMoSmsBearer(reqStatus, smsBearer);
       
  2680 
       
  2681     User::WaitForRequest(reqStatus);
       
  2682     ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
  2683 
       
  2684 
       
  2685     //-------------------------------------------------------------------------
       
  2686     // TEST B: failure on completion of pending request from LTSY->CTSY
       
  2687     //-------------------------------------------------------------------------
       
  2688     smsBearer = RMobileSmsMessaging::ESmsBearerPacketOnly;
       
  2689     expTsyData.SerialiseL(data);
       
  2690 
       
  2691     iMockLTSY.ExpectL(EMobileSmsMessagingSetMoSmsBearer, data);
       
  2692     
       
  2693     messaging.SetMoSmsBearer(reqStatus, smsBearer);
       
  2694 
       
  2695     iMockLTSY.CompleteL(EMobileSmsMessagingSetMoSmsBearer, KErrGeneral);
       
  2696 
       
  2697     User::WaitForRequest(reqStatus);
       
  2698     ASSERT_EQUALS(KErrGeneral, reqStatus.Int());
       
  2699 
       
  2700     AssertMockLtsyStatusL();
       
  2701 
       
  2702     //-------------------------------------------------------------------------
       
  2703     // TEST C: Successful completion request of
       
  2704     // RMobileSmsMessaging::SetMoSmsBearer when result is not cached.
       
  2705     //-------------------------------------------------------------------------
       
  2706 
       
  2707     smsBearer = RMobileSmsMessaging::ESmsBearerPacketPreferred;
       
  2708 
       
  2709     data.Close();
       
  2710     expTsyData.SerialiseL(data);
       
  2711 
       
  2712     iMockLTSY.ExpectL(EMobileSmsMessagingSetMoSmsBearer, data);
       
  2713     
       
  2714     messaging.SetMoSmsBearer(reqStatus, smsBearer);
       
  2715 
       
  2716     iMockLTSY.CompleteL(EMobileSmsMessagingSetMoSmsBearer, KErrNone);
       
  2717 
       
  2718     User::WaitForRequest(reqStatus);
       
  2719     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  2720 
       
  2721     AssertMockLtsyStatusL();
       
  2722 
       
  2723     //-------------------------------------------------------------------------
       
  2724     // TEST E: Unsolicited completion of RMobileSmsMessaging::SetMoSmsBearer
       
  2725     // from LTSY.
       
  2726     //-------------------------------------------------------------------------
       
  2727 
       
  2728     TRequestStatus mockLtsyStatus;
       
  2729     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2730 
       
  2731     iMockLTSY.CompleteL(EMobileSmsMessagingSetMoSmsBearer, KErrNone);
       
  2732 
       
  2733     User::WaitForRequest(mockLtsyStatus);
       
  2734     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  2735 
       
  2736     AssertMockLtsyStatusL();
       
  2737 
       
  2738     //-------------------------------------------------------------------------
       
  2739     // TEST A2: failure to dispatch request to LTSY
       
  2740     //-------------------------------------------------------------------------
       
  2741     smsBearer = RMobileSmsMessaging::ESmsBearerCircuitOnly;
       
  2742 
       
  2743     data.Close();
       
  2744     expTsyData.SerialiseL(data);
       
  2745 
       
  2746     iMockLTSY.ExpectL(EMobileSmsMessagingSetMoSmsBearer, data, KErrNotSupported);
       
  2747     
       
  2748     
       
  2749     ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 360601);
       
  2750 
       
  2751     //Test A for EMobileSmsMessagingSetMoSmsBearer (failure to dispatch request to LTSY) 
       
  2752     //result in unknown exception in request completion in ETel::CompleteAndDestroyReq(), 
       
  2753     //more concrete - in Deque() function
       
  2754 
       
  2755     ASSERT_TRUE(EFalse);
       
  2756     
       
  2757     messaging.SetMoSmsBearer(reqStatus, smsBearer);
       
  2758 
       
  2759     User::WaitForRequest(reqStatus);
       
  2760     ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
  2761 
       
  2762     AssertMockLtsyStatusL();
       
  2763     CleanupStack::PopAndDestroy(2, this); // data, this
       
  2764     
       
  2765     }
       
  2766 
       
  2767 
       
  2768 /**
       
  2769 @SYMTestCaseID BA-CTSY-SMSM-SSMSB-0002
       
  2770 @SYMComponent  telephony_ctsy
       
  2771 @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsMessaging::SetMoSmsBearer
       
  2772 @SYMTestPriority High
       
  2773 @SYMTestActions Invokes cancelling of RMobileSmsMessaging::SetMoSmsBearer
       
  2774 @SYMTestExpectedResults Pass
       
  2775 @SYMTestType CT
       
  2776 */
       
  2777 void CCTsySmsMessagingFU::TestSetMoSmsBearer0002L()
       
  2778     {
       
  2779     OpenEtelServerL(EUseExtendedError);
       
  2780     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2781     OpenPhoneL();
       
  2782 
       
  2783     RMobileSmsMessaging messaging;
       
  2784     TInt err = messaging.Open(iPhone);
       
  2785     ASSERT_EQUALS(KErrNone, err);
       
  2786     CleanupClosePushL(messaging);
       
  2787 
       
  2788     TRequestStatus reqStatus;
       
  2789     RMobileSmsMessaging::TMobileSmsBearer smsBearer(RMobileSmsMessaging::ESmsBearerCircuitPreferred);
       
  2790     
       
  2791 
       
  2792     TMockLtsyData1<RMobileSmsMessaging::TMobileSmsBearer> expTsyData(smsBearer);
       
  2793 
       
  2794     RBuf8 data;
       
  2795     CleanupClosePushL(data);
       
  2796 
       
  2797     //-------------------------------------------------------------------------
       
  2798     // Test cancelling of RMobileSmsMessaging::SetMoSmsBearer
       
  2799     //-------------------------------------------------------------------------
       
  2800 
       
  2801     TRequestStatus mockLtsyStatus;
       
  2802     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  2803     
       
  2804     expTsyData.SerialiseL(data);
       
  2805 
       
  2806     iMockLTSY.ExpectL(EMobileSmsMessagingSetMoSmsBearer, data);
       
  2807     iMockLTSY.CompleteL(EMobileSmsMessagingSetMoSmsBearer, KErrNone, 10);
       
  2808     
       
  2809     messaging.SetMoSmsBearer(reqStatus, smsBearer);
       
  2810     
       
  2811     messaging.CancelAsyncRequest(EMobileSmsMessagingSetMoSmsBearer);
       
  2812 
       
  2813     User::WaitForRequest(mockLtsyStatus);
       
  2814     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  2815     
       
  2816     User::WaitForRequest(reqStatus);
       
  2817     ASSERT_EQUALS(KErrCancel, reqStatus.Int());
       
  2818 
       
  2819     AssertMockLtsyStatusL();
       
  2820     
       
  2821     CleanupStack::PopAndDestroy(3); // data, this
       
  2822     
       
  2823     }
       
  2824 
       
  2825 
       
  2826 
       
  2827 /**
       
  2828 @SYMTestCaseID BA-CTSY-SMSM-SSMSB-0004
       
  2829 @SYMComponent  telephony_ctsy
       
  2830 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsMessaging::SetMoSmsBearer
       
  2831 @SYMTestPriority High
       
  2832 @SYMTestActions Invokes multiple client requests to RMobileSmsMessaging::SetMoSmsBearer
       
  2833 @SYMTestExpectedResults Pass
       
  2834 @SYMTestType CT
       
  2835 */
       
  2836 void CCTsySmsMessagingFU::TestSetMoSmsBearer0004L()
       
  2837     {
       
  2838                     
       
  2839     OpenEtelServerL(EUseExtendedError);
       
  2840     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2841     OpenPhoneL();
       
  2842 
       
  2843     RBuf8 data;
       
  2844     CleanupClosePushL(data);
       
  2845 
       
  2846     // Open second client
       
  2847     RTelServer telServer2;
       
  2848     TInt ret = telServer2.Connect();
       
  2849     ASSERT_EQUALS(KErrNone, ret);
       
  2850     CleanupClosePushL(telServer2);
       
  2851 
       
  2852     RMobilePhone phone2;
       
  2853     ret = phone2.Open(telServer2,KMmTsyPhoneName);
       
  2854     ASSERT_EQUALS(KErrNone, ret);
       
  2855     CleanupClosePushL(phone2);
       
  2856 
       
  2857 
       
  2858     RMobileSmsMessaging messaging;
       
  2859     TInt err = messaging.Open(iPhone);
       
  2860     ASSERT_EQUALS(KErrNone, err);
       
  2861     CleanupClosePushL(messaging);
       
  2862 
       
  2863     RMobileSmsMessaging messaging2;
       
  2864     err = messaging2.Open(phone2);
       
  2865     ASSERT_EQUALS(KErrNone, err);
       
  2866     CleanupClosePushL(messaging2);
       
  2867 
       
  2868 
       
  2869     TRequestStatus reqStatus;
       
  2870     TRequestStatus reqStatus2;
       
  2871     RMobileSmsMessaging::TMobileSmsBearer smsBearer(RMobileSmsMessaging::ESmsBearerCircuitPreferred);
       
  2872     RMobileSmsMessaging::TMobileSmsBearer smsBearer2(RMobileSmsMessaging::ESmsBearerPacketOnly);
       
  2873 
       
  2874 
       
  2875     //-------------------------------------------------------------------------
       
  2876     // Test A: Test multiple clients requesting RMobileSmsMessaging::SetMoSmsBearer
       
  2877     //-------------------------------------------------------------------------
       
  2878 
       
  2879     TMockLtsyData1<RMobileSmsMessaging::TMobileSmsBearer> expTsyData(smsBearer);
       
  2880     expTsyData.SerialiseL(data);
       
  2881 
       
  2882     iMockLTSY.ExpectL(EMobileSmsMessagingSetMoSmsBearer, data);
       
  2883 
       
  2884     messaging.SetMoSmsBearer(reqStatus, smsBearer);
       
  2885 
       
  2886     messaging2.SetMoSmsBearer(reqStatus2, smsBearer2);
       
  2887 
       
  2888     
       
  2889     iMockLTSY.CompleteL(EMobileSmsMessagingSetMoSmsBearer, KErrNone);
       
  2890     User::WaitForRequest(reqStatus);
       
  2891     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  2892 
       
  2893     User::WaitForRequest(reqStatus2);
       
  2894     ASSERT_EQUALS(KErrServerBusy, reqStatus2.Int());
       
  2895 
       
  2896     AssertMockLtsyStatusL();
       
  2897 
       
  2898     CleanupStack::PopAndDestroy(6, this); 
       
  2899     }
       
  2900 
       
  2901 
       
  2902 
       
  2903 /**
       
  2904 @SYMTestCaseID BA-CTSY-SMSM-SSRM-0001
       
  2905 @SYMComponent  telephony_ctsy
       
  2906 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::SetReceiveMode
       
  2907 @SYMTestPriority High
       
  2908 @SYMTestActions Invokes RMobileSmsMessaging::SetReceiveMode
       
  2909 @SYMTestExpectedResults Pass
       
  2910 @SYMTestType CT
       
  2911 */
       
  2912 void CCTsySmsMessagingFU::TestSetReceiveMode0001L()
       
  2913     {
       
  2914     OpenEtelServerL(EUseExtendedError);
       
  2915     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2916     OpenPhoneL();
       
  2917 
       
  2918     RMobileSmsMessaging messaging;
       
  2919     TInt err = messaging.Open(iPhone);
       
  2920     ASSERT_EQUALS(KErrNone, err);
       
  2921     CleanupClosePushL(messaging);
       
  2922 
       
  2923     TRequestStatus reqStatus;
       
  2924     RMobileSmsMessaging::TMobileSmsReceiveMode recMode(RMobileSmsMessaging::EReceiveModeUnspecified);
       
  2925     
       
  2926     //-------------------------------------------------------------------------
       
  2927     // TEST A1: failure to dispatch request to LTSY
       
  2928     //-------------------------------------------------------------------------
       
  2929 
       
  2930     messaging.SetReceiveMode(reqStatus, recMode);
       
  2931 
       
  2932     User::WaitForRequest(reqStatus);
       
  2933     ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
  2934 
       
  2935 
       
  2936     //-------------------------------------------------------------------------
       
  2937     // TEST C: Successful completion request of
       
  2938     // RMobileSmsMessaging::SetReceiveMode when result is not cached.
       
  2939     //-------------------------------------------------------------------------
       
  2940 
       
  2941     recMode = RMobileSmsMessaging::EReceiveUnstoredClientAck;
       
  2942 
       
  2943     messaging.SetReceiveMode(reqStatus, recMode);
       
  2944 
       
  2945     User::WaitForRequest(reqStatus);
       
  2946     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  2947 
       
  2948     AssertMockLtsyStatusL();
       
  2949     CleanupStack::PopAndDestroy(2, this); 
       
  2950     
       
  2951     }
       
  2952 
       
  2953 
       
  2954 /**
       
  2955 @SYMTestCaseID BA-CTSY-SMSM-SSRM-0002
       
  2956 @SYMComponent  telephony_ctsy
       
  2957 @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsMessaging::SetReceiveMode
       
  2958 @SYMTestPriority High
       
  2959 @SYMTestActions Invokes cancelling of RMobileSmsMessaging::SetReceiveMode
       
  2960 @SYMTestExpectedResults Pass
       
  2961 @SYMTestType CT
       
  2962 */
       
  2963 void CCTsySmsMessagingFU::TestSetReceiveMode0002L()
       
  2964     {
       
  2965 
       
  2966     OpenEtelServerL(EUseExtendedError);
       
  2967     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  2968     OpenPhoneL();
       
  2969 
       
  2970     RMobileSmsMessaging messaging;
       
  2971     TInt err = messaging.Open(iPhone);
       
  2972     ASSERT_EQUALS(KErrNone, err);
       
  2973     CleanupClosePushL(messaging);
       
  2974 
       
  2975     TRequestStatus reqStatus;
       
  2976     RMobileSmsMessaging::TMobileSmsReceiveMode recMode(RMobileSmsMessaging::EReceiveUnstoredClientAck);
       
  2977     
       
  2978     //-------------------------------------------------------------------------
       
  2979     // Test cancelling of RMobileSmsMessaging::SetReceiveMode
       
  2980     //-------------------------------------------------------------------------
       
  2981     messaging.SetReceiveMode(reqStatus, recMode);
       
  2982     
       
  2983     messaging.CancelAsyncRequest(EMobileSmsMessagingSetReceiveMode);
       
  2984 
       
  2985     User::WaitForRequest(reqStatus);
       
  2986 
       
  2987     ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 360701);
       
  2988     //SetReceiveModeCancel() is never called, the request cancel can't be completed
       
  2989     // Remove the function and correct comment in mm_messaging.cpp
       
  2990 
       
  2991     ASSERT_EQUALS(KErrCancel, reqStatus.Int());
       
  2992 
       
  2993     AssertMockLtsyStatusL();
       
  2994 
       
  2995 
       
  2996     CleanupStack::PopAndDestroy(2); 
       
  2997     
       
  2998     }
       
  2999 
       
  3000 
       
  3001 /**
       
  3002 @SYMTestCaseID BA-CTSY-SMSM-SSRM-0004
       
  3003 @SYMComponent  telephony_ctsy
       
  3004 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsMessaging::SetReceiveMode
       
  3005 @SYMTestPriority High
       
  3006 @SYMTestActions Invokes multiple client requests to RMobileSmsMessaging::SetReceiveMode
       
  3007 @SYMTestExpectedResults Pass
       
  3008 @SYMTestType CT
       
  3009 */
       
  3010 void CCTsySmsMessagingFU::TestSetReceiveMode0004L()
       
  3011     {
       
  3012     OpenEtelServerL(EUseExtendedError);
       
  3013     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3014     OpenPhoneL();
       
  3015 
       
  3016     RBuf8 data;
       
  3017     CleanupClosePushL(data);
       
  3018 
       
  3019     // Open second client
       
  3020     RTelServer telServer2;
       
  3021     TInt ret = telServer2.Connect();
       
  3022     ASSERT_EQUALS(KErrNone, ret);
       
  3023     CleanupClosePushL(telServer2);
       
  3024 
       
  3025     RMobilePhone phone2;
       
  3026     ret = phone2.Open(telServer2,KMmTsyPhoneName);
       
  3027     ASSERT_EQUALS(KErrNone, ret);
       
  3028     CleanupClosePushL(phone2);
       
  3029 
       
  3030 
       
  3031     RMobileSmsMessaging messaging;
       
  3032     TInt err = messaging.Open(iPhone);
       
  3033     ASSERT_EQUALS(KErrNone, err);
       
  3034     CleanupClosePushL(messaging);
       
  3035 
       
  3036     RMobileSmsMessaging messaging2;
       
  3037     err = messaging2.Open(phone2);
       
  3038     ASSERT_EQUALS(KErrNone, err);
       
  3039     CleanupClosePushL(messaging2);
       
  3040 
       
  3041 
       
  3042     TRequestStatus reqStatus;
       
  3043     TRequestStatus reqStatus2;
       
  3044     RMobileSmsMessaging::TMobileSmsReceiveMode recMode(RMobileSmsMessaging::EReceiveUnstoredClientAck);
       
  3045     RMobileSmsMessaging::TMobileSmsReceiveMode recMode2(RMobileSmsMessaging::EReceiveEither);
       
  3046 
       
  3047 
       
  3048     //-------------------------------------------------------------------------
       
  3049     // Test A: Test multiple clients requesting RMobileSmsMessaging::SetReceiveMode
       
  3050     //-------------------------------------------------------------------------
       
  3051 
       
  3052     messaging.SetReceiveMode(reqStatus, recMode);
       
  3053 
       
  3054     messaging2.SetReceiveMode(reqStatus2, recMode2);
       
  3055 
       
  3056     
       
  3057     User::WaitForRequest(reqStatus);
       
  3058     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  3059 
       
  3060     User::WaitForRequest(reqStatus2);
       
  3061     ASSERT_EQUALS(KErrNotSupported, reqStatus2.Int());
       
  3062 
       
  3063     AssertMockLtsyStatusL();
       
  3064 
       
  3065     CleanupStack::PopAndDestroy(6, this); 
       
  3066     }
       
  3067 
       
  3068 
       
  3069 
       
  3070 /**
       
  3071 @SYMTestCaseID BA-CTSY-SMSM-SSSL-0001
       
  3072 @SYMComponent  telephony_ctsy
       
  3073 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::StoreSmspListL
       
  3074 @SYMTestPriority High
       
  3075 @SYMTestActions Invokes RMobileSmsMessaging::StoreSmspListL
       
  3076 @SYMTestExpectedResults Pass
       
  3077 @SYMTestType CT
       
  3078 */
       
  3079 void CCTsySmsMessagingFU::TestStoreSmspListL0001L()
       
  3080     {
       
  3081 
       
  3082     OpenEtelServerL(EUseExtendedError);
       
  3083     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3084     OpenPhoneL();
       
  3085 
       
  3086     RBuf8 data;
       
  3087     CleanupClosePushL(data);
       
  3088 
       
  3089     RMobileSmsMessaging messaging;
       
  3090     TInt err = messaging.Open(iPhone);
       
  3091     ASSERT_EQUALS(KErrNone, err);
       
  3092     CleanupClosePushL(messaging);
       
  3093 
       
  3094     TRequestStatus reqStatus;
       
  3095     CMobilePhoneSmspList* smspListPtr = CMobilePhoneSmspList::NewL();
       
  3096     CleanupStack::PushL(smspListPtr);
       
  3097     
       
  3098     //-------------------------------------------------------------------------
       
  3099     // TEST A0: failure to dispatch request to LTSY
       
  3100     //-------------------------------------------------------------------------
       
  3101 
       
  3102     messaging.StoreSmspListL(reqStatus, smspListPtr); 
       
  3103 
       
  3104     User::WaitForRequest(reqStatus);
       
  3105     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  3106 
       
  3107     AssertMockLtsyStatusL();
       
  3108 
       
  3109     //-------------------------------------------------------------------------
       
  3110     // TEST A: failure to dispatch request to LTSY
       
  3111     //-------------------------------------------------------------------------
       
  3112     
       
  3113     RMobileSmsMessaging::TMobileSmspEntryV1 smspEntry;
       
  3114     
       
  3115     smspListPtr->AddEntryL(smspEntry);
       
  3116 
       
  3117     TMockLtsyData1<CMobilePhoneSmspList*> expTsyData(smspListPtr);
       
  3118     expTsyData.SerialiseL(data);
       
  3119 
       
  3120     iMockLTSY.ExpectL(EMobileSmsMessagingStoreSmspList, data, KErrNotSupported);
       
  3121 
       
  3122     messaging.StoreSmspListL(reqStatus, smspListPtr); 
       
  3123 
       
  3124     User::WaitForRequest(reqStatus);
       
  3125     ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
  3126 
       
  3127     AssertMockLtsyStatusL();
       
  3128 
       
  3129     //-------------------------------------------------------------------------
       
  3130     // TEST B: failure on completion of pending request from LTSY->CTSY
       
  3131     //-------------------------------------------------------------------------
       
  3132 
       
  3133     iMockLTSY.ExpectL(EMobileSmsMessagingStoreSmspList, data);
       
  3134 
       
  3135     messaging.StoreSmspListL(reqStatus, smspListPtr); 
       
  3136 
       
  3137     iMockLTSY.CompleteL(EMobileSmsMessagingStoreSmspList, KErrGeneral);
       
  3138 
       
  3139     User::WaitForRequest(reqStatus);
       
  3140     ASSERT_EQUALS(KErrGeneral, reqStatus.Int());
       
  3141 
       
  3142     AssertMockLtsyStatusL();
       
  3143 
       
  3144     //-------------------------------------------------------------------------
       
  3145     // TEST C: Successful completion request of
       
  3146     // RMobileSmsMessaging::StoreSmspListL when result is not cached.
       
  3147     //-------------------------------------------------------------------------
       
  3148 
       
  3149     iMockLTSY.ExpectL(EMobileSmsMessagingStoreSmspList, data);
       
  3150 
       
  3151     messaging.StoreSmspListL(reqStatus, smspListPtr); 
       
  3152 
       
  3153     iMockLTSY.CompleteL(EMobileSmsMessagingStoreSmspList, KErrNone);
       
  3154 
       
  3155     User::WaitForRequest(reqStatus);
       
  3156     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  3157 
       
  3158     AssertMockLtsyStatusL();
       
  3159 
       
  3160     //-------------------------------------------------------------------------
       
  3161     // TEST E: Unsolicited completion of RMobileSmsMessaging::StoreSmspListL
       
  3162     // from LTSY.
       
  3163     //-------------------------------------------------------------------------
       
  3164 
       
  3165     TRequestStatus mockLtsyStatus;
       
  3166     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  3167 
       
  3168     iMockLTSY.CompleteL(EMobileSmsMessagingStoreSmspList, KErrNone);
       
  3169 
       
  3170     User::WaitForRequest(mockLtsyStatus);
       
  3171     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  3172 
       
  3173     AssertMockLtsyStatusL();
       
  3174     CleanupStack::PopAndDestroy(4, this); 
       
  3175     
       
  3176     }
       
  3177 
       
  3178 
       
  3179 /**
       
  3180 @SYMTestCaseID BA-CTSY-SMSM-SSSL-0002
       
  3181 @SYMComponent  telephony_ctsy
       
  3182 @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsMessaging::StoreSmspListL
       
  3183 @SYMTestPriority High
       
  3184 @SYMTestActions Invokes cancelling of RMobileSmsMessaging::StoreSmspListL
       
  3185 @SYMTestExpectedResults Pass
       
  3186 @SYMTestType CT
       
  3187 */
       
  3188 void CCTsySmsMessagingFU::TestStoreSmspListL0002L()
       
  3189     {
       
  3190 
       
  3191     OpenEtelServerL(EUseExtendedError);
       
  3192     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3193     OpenPhoneL();
       
  3194 
       
  3195     RMobileSmsMessaging messaging;
       
  3196     TInt err = messaging.Open(iPhone);
       
  3197     ASSERT_EQUALS(KErrNone, err);
       
  3198     CleanupClosePushL(messaging);
       
  3199 
       
  3200     TRequestStatus reqStatus;
       
  3201     CMobilePhoneSmspList* smspListPtr = CMobilePhoneSmspList::NewL();
       
  3202     CleanupStack::PushL(smspListPtr);
       
  3203 
       
  3204     TRequestStatus mockLtsyStatus;
       
  3205     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  3206 
       
  3207     RBuf8 data;
       
  3208     CleanupClosePushL(data);
       
  3209 
       
  3210     RMobileSmsMessaging::TMobileSmspEntryV1 smspEntry;
       
  3211     
       
  3212     smspListPtr->AddEntryL(smspEntry);
       
  3213 
       
  3214     //-------------------------------------------------------------------------
       
  3215     // Test cancelling of RMobileSmsMessaging::StoreSmspListL
       
  3216     //-------------------------------------------------------------------------
       
  3217 
       
  3218     TMockLtsyData1<CMobilePhoneSmspList*> expTsyData(smspListPtr);
       
  3219     expTsyData.SerialiseL(data);
       
  3220 
       
  3221     iMockLTSY.ExpectL(EMobileSmsMessagingStoreSmspList, data, KErrNone);
       
  3222     iMockLTSY.CompleteL(EMobileSmsMessagingStoreSmspList, KErrNone, 20);
       
  3223 
       
  3224     messaging.StoreSmspListL(reqStatus, smspListPtr); 
       
  3225     
       
  3226     messaging.CancelAsyncRequest(EMobileSmsMessagingStoreSmspList);
       
  3227 
       
  3228     User::WaitForRequest(reqStatus);
       
  3229     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  3230     
       
  3231     // Wait for completion of iMockLTSY.NotifyTerminated
       
  3232     User::WaitForRequest(mockLtsyStatus);
       
  3233     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  3234 
       
  3235     AssertMockLtsyStatusL();
       
  3236 
       
  3237     CleanupStack::PopAndDestroy(4);
       
  3238     
       
  3239     }
       
  3240 
       
  3241 
       
  3242 
       
  3243 /**
       
  3244 @SYMTestCaseID BA-CTSY-SMSM-SSSL-0004
       
  3245 @SYMComponent  telephony_ctsy
       
  3246 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsMessaging::StoreSmspListL
       
  3247 @SYMTestPriority High
       
  3248 @SYMTestActions Invokes multiple client requests to RMobileSmsMessaging::StoreSmspListL
       
  3249 @SYMTestExpectedResults Pass
       
  3250 @SYMTestType CT
       
  3251 */
       
  3252 void CCTsySmsMessagingFU::TestStoreSmspListL0004L()
       
  3253     {
       
  3254                     
       
  3255     OpenEtelServerL(EUseExtendedError);
       
  3256     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3257     OpenPhoneL();
       
  3258 
       
  3259     RBuf8 data;
       
  3260     CleanupClosePushL(data);
       
  3261 
       
  3262     // Open second client
       
  3263     RTelServer telServer2;
       
  3264     TInt ret = telServer2.Connect();
       
  3265     ASSERT_EQUALS(KErrNone, ret);
       
  3266     CleanupClosePushL(telServer2);
       
  3267 
       
  3268     RMobilePhone phone2;
       
  3269     ret = phone2.Open(telServer2,KMmTsyPhoneName);
       
  3270     ASSERT_EQUALS(KErrNone, ret);
       
  3271     CleanupClosePushL(phone2);
       
  3272 
       
  3273 
       
  3274     RMobileSmsMessaging messaging;
       
  3275     TInt err = messaging.Open(iPhone);
       
  3276     ASSERT_EQUALS(KErrNone, err);
       
  3277     CleanupClosePushL(messaging);
       
  3278 
       
  3279     RMobileSmsMessaging messaging2;
       
  3280     err = messaging2.Open(phone2);
       
  3281     ASSERT_EQUALS(KErrNone, err);
       
  3282     CleanupClosePushL(messaging2);
       
  3283 
       
  3284     TRequestStatus reqStatus;
       
  3285     TRequestStatus reqStatus2;
       
  3286     CMobilePhoneSmspList* smspListPtr = CMobilePhoneSmspList::NewL();
       
  3287     CleanupStack::PushL(smspListPtr);
       
  3288 
       
  3289     RMobileSmsMessaging::TMobileSmspEntryV1 smspEntry;    
       
  3290     smspListPtr->AddEntryL(smspEntry);
       
  3291 
       
  3292     //-------------------------------------------------------------------------
       
  3293     // Test A: Test multiple clients requesting RMobileSmsMessaging::StoreSmspListL
       
  3294     //-------------------------------------------------------------------------
       
  3295 
       
  3296     TMockLtsyData1<CMobilePhoneSmspList*> expTsyData(smspListPtr);
       
  3297     expTsyData.SerialiseL(data);
       
  3298 
       
  3299     iMockLTSY.ExpectL(EMobileSmsMessagingStoreSmspList, data, KErrNone);
       
  3300 
       
  3301     messaging.StoreSmspListL(reqStatus, smspListPtr); 
       
  3302 
       
  3303 
       
  3304     messaging2.StoreSmspListL(reqStatus2, smspListPtr); 
       
  3305 
       
  3306     
       
  3307     iMockLTSY.CompleteL(EMobileSmsMessagingStoreSmspList, KErrNone);
       
  3308 
       
  3309     User::WaitForRequest(reqStatus);
       
  3310     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  3311 
       
  3312 
       
  3313     User::WaitForRequest(reqStatus2);
       
  3314     ASSERT_EQUALS(KErrServerBusy, reqStatus2.Int());
       
  3315 
       
  3316     AssertMockLtsyStatusL();
       
  3317 
       
  3318     CleanupStack::PopAndDestroy(7, this); 
       
  3319     }
       
  3320 
       
  3321 
       
  3322 /**
       
  3323 @SYMTestCaseID BA-CTSY-SMSM-SSSL-0005
       
  3324 @SYMComponent  telephony_ctsy
       
  3325 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::StoreSmspListL with timeout
       
  3326 @SYMTestPriority High
       
  3327 @SYMTestActions Invokes RMobileSmsMessaging::StoreSmspListL and tests for timeout
       
  3328 @SYMTestExpectedResults Pass
       
  3329 @SYMTestType CT
       
  3330 */
       
  3331 void CCTsySmsMessagingFU::TestStoreSmspListL0005L()
       
  3332     {
       
  3333     OpenEtelServerL(EUseExtendedError);
       
  3334     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3335     OpenPhoneL();
       
  3336 
       
  3337     RMobileSmsMessaging messaging;
       
  3338     TInt err = messaging.Open(iPhone);
       
  3339     ASSERT_EQUALS(KErrNone, err);
       
  3340     CleanupClosePushL(messaging);
       
  3341 
       
  3342     TRequestStatus reqStatus;
       
  3343     CMobilePhoneSmspList* smspListPtr = CMobilePhoneSmspList::NewL();
       
  3344     CleanupStack::PushL(smspListPtr);
       
  3345 
       
  3346     RBuf8 data;
       
  3347     CleanupClosePushL(data);
       
  3348 
       
  3349     RMobileSmsMessaging::TMobileSmspEntryV1 smspEntry;
       
  3350     
       
  3351     smspListPtr->AddEntryL(smspEntry);
       
  3352 
       
  3353     TMockLtsyData1<CMobilePhoneSmspList*> expTsyData(smspListPtr);
       
  3354     expTsyData.SerialiseL(data);
       
  3355 
       
  3356     iMockLTSY.ExpectL(EMobileSmsMessagingStoreSmspList, data, KErrNone);
       
  3357 
       
  3358     messaging.StoreSmspListL(reqStatus, smspListPtr); 
       
  3359 
       
  3360     User::WaitForRequest(reqStatus);
       
  3361     ASSERT_EQUALS(KErrTimedOut, reqStatus.Int());
       
  3362 
       
  3363     AssertMockLtsyStatusL();
       
  3364     
       
  3365     CleanupStack::PopAndDestroy(4);
       
  3366     }
       
  3367 
       
  3368 
       
  3369 /**
       
  3370 @SYMTestCaseID BA-CTSY-SMSM-SRSR-0001
       
  3371 @SYMComponent  telephony_ctsy
       
  3372 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::ResumeSmsReception
       
  3373 @SYMTestPriority High
       
  3374 @SYMTestActions Invokes RMobileSmsMessaging::ResumeSmsReception
       
  3375 @SYMTestExpectedResults Pass
       
  3376 @SYMTestType CT
       
  3377 */
       
  3378 void CCTsySmsMessagingFU::TestResumeSmsReception0001L()
       
  3379     {
       
  3380 
       
  3381     OpenEtelServerL(EUseExtendedError);
       
  3382     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3383     OpenPhoneL();
       
  3384 
       
  3385     RBuf8 data;
       
  3386     CleanupClosePushL(data);
       
  3387 
       
  3388     RMobileSmsMessaging messaging;
       
  3389     TInt err = messaging.Open(iPhone);
       
  3390     ASSERT_EQUALS(KErrNone, err);
       
  3391     CleanupClosePushL(messaging);
       
  3392 
       
  3393     TRequestStatus reqStatus;
       
  3394 
       
  3395     
       
  3396     //-------------------------------------------------------------------------
       
  3397     // TEST A: failure to dispatch request to LTSY
       
  3398     //-------------------------------------------------------------------------
       
  3399 
       
  3400     iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception, KErrNotSupported);
       
  3401 
       
  3402     messaging.ResumeSmsReception(reqStatus);
       
  3403 
       
  3404     User::WaitForRequest(reqStatus);
       
  3405     ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
  3406 
       
  3407     AssertMockLtsyStatusL();
       
  3408 
       
  3409     //-------------------------------------------------------------------------
       
  3410     // TEST B: failure on completion of pending request from LTSY->CTSY
       
  3411     //-------------------------------------------------------------------------
       
  3412 
       
  3413     iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
       
  3414 
       
  3415     messaging.ResumeSmsReception(reqStatus);
       
  3416 
       
  3417     iMockLTSY.CompleteL(EMobileSmsMessagingResumeSmsReception, KErrGeneral);
       
  3418 
       
  3419     User::WaitForRequest(reqStatus);
       
  3420     ASSERT_EQUALS(KErrGeneral, reqStatus.Int());
       
  3421 
       
  3422     AssertMockLtsyStatusL();
       
  3423 
       
  3424     //-------------------------------------------------------------------------
       
  3425     // TEST C: Successful completion request of
       
  3426     // RMobileSmsMessaging::ResumeSmsReception when result is not cached.
       
  3427     //-------------------------------------------------------------------------
       
  3428 
       
  3429     iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
       
  3430 
       
  3431     messaging.ResumeSmsReception(reqStatus);
       
  3432 
       
  3433     iMockLTSY.CompleteL(EMobileSmsMessagingResumeSmsReception, KErrNone);
       
  3434 
       
  3435     User::WaitForRequest(reqStatus);
       
  3436     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  3437 
       
  3438     AssertMockLtsyStatusL();
       
  3439 
       
  3440     //-------------------------------------------------------------------------
       
  3441     // TEST E: Unsolicited completion of RMobileSmsMessaging::ResumeSmsReception
       
  3442     // from LTSY.
       
  3443     //-------------------------------------------------------------------------
       
  3444 
       
  3445     TRequestStatus mockLtsyStatus;
       
  3446     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  3447 
       
  3448     iMockLTSY.CompleteL(EMobileSmsMessagingResumeSmsReception, KErrNone);
       
  3449 
       
  3450     User::WaitForRequest(mockLtsyStatus);
       
  3451     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  3452 
       
  3453     // additional test
       
  3454     
       
  3455     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  3456     TRfStateInfo rfInfo = ERfsStateInfoInactive;
       
  3457     TMockLtsyData1<TRfStateInfo> mockData1(rfInfo);
       
  3458     
       
  3459     mockData1.SerialiseL(data);
       
  3460     
       
  3461     iMockLTSY.CompleteL(EMmTsyBootGetRFStatusIPC, KErrNone, data);
       
  3462     User::WaitForRequest(mockLtsyStatus);
       
  3463     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  3464 
       
  3465     AssertMockLtsyStatusL();
       
  3466     
       
  3467     messaging.ResumeSmsReception(reqStatus);
       
  3468 
       
  3469     User::WaitForRequest(reqStatus);
       
  3470     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  3471 
       
  3472     AssertMockLtsyStatusL();
       
  3473 
       
  3474     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  3475     rfInfo = ERfsStateInfoNormal;
       
  3476     
       
  3477     data.Close();
       
  3478     mockData1.SerialiseL(data);
       
  3479     
       
  3480     iMockLTSY.CompleteL(EMmTsyBootGetRFStatusIPC, KErrNone, data);
       
  3481     
       
  3482     iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
       
  3483     
       
  3484     User::WaitForRequest(mockLtsyStatus);
       
  3485     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  3486     AssertMockLtsyStatusL();
       
  3487 
       
  3488     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  3489     rfInfo = ERfsStateInfoInactive;    
       
  3490     data.Close();
       
  3491     mockData1.SerialiseL(data);
       
  3492     iMockLTSY.CompleteL(EMmTsyBootGetRFStatusIPC, KErrNone, data);
       
  3493     User::WaitForRequest(mockLtsyStatus);
       
  3494     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  3495     AssertMockLtsyStatusL();
       
  3496 
       
  3497     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  3498     rfInfo = ERfsStateInfoNormal;    
       
  3499     data.Close();
       
  3500     mockData1.SerialiseL(data);
       
  3501     iMockLTSY.CompleteL(EMmTsyBootGetRFStatusIPC, KErrNone, data);
       
  3502     User::WaitForRequest(mockLtsyStatus);
       
  3503     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  3504     AssertMockLtsyStatusL();
       
  3505 
       
  3506     CleanupStack::PopAndDestroy(3, this); 
       
  3507     
       
  3508     }
       
  3509 
       
  3510 
       
  3511 /**
       
  3512 @SYMTestCaseID BA-CTSY-SMSM-SRSR-0002
       
  3513 @SYMComponent  telephony_ctsy
       
  3514 @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsMessaging::ResumeSmsReception
       
  3515 @SYMTestPriority High
       
  3516 @SYMTestActions Invokes cancelling of RMobileSmsMessaging::ResumeSmsReception
       
  3517 @SYMTestExpectedResults Pass
       
  3518 @SYMTestType CT
       
  3519 */
       
  3520 void CCTsySmsMessagingFU::TestResumeSmsReception0002L()
       
  3521     {
       
  3522 
       
  3523     OpenEtelServerL(EUseExtendedError);
       
  3524     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3525     OpenPhoneL();
       
  3526 
       
  3527     RMobileSmsMessaging messaging;
       
  3528     TInt err = messaging.Open(iPhone);
       
  3529     ASSERT_EQUALS(KErrNone, err);
       
  3530     CleanupClosePushL(messaging);
       
  3531 
       
  3532     TRequestStatus reqStatus;
       
  3533 
       
  3534     TRequestStatus mockLtsyStatus;
       
  3535     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  3536 
       
  3537     //-------------------------------------------------------------------------
       
  3538     // Test cancelling of RMobileSmsMessaging::ResumeSmsReception
       
  3539     //-------------------------------------------------------------------------
       
  3540     iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
       
  3541     iMockLTSY.CompleteL(EMobileSmsMessagingResumeSmsReception, KErrNone, 10);
       
  3542 
       
  3543     messaging.ResumeSmsReception(reqStatus);
       
  3544     
       
  3545     messaging.CancelAsyncRequest(EMobileSmsMessagingResumeSmsReception);
       
  3546 
       
  3547     User::WaitForRequest(reqStatus);
       
  3548     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  3549     
       
  3550     // Wait for completion of iMockLTSY.NotifyTerminated
       
  3551     User::WaitForRequest(mockLtsyStatus);
       
  3552     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  3553 
       
  3554     AssertMockLtsyStatusL();
       
  3555 
       
  3556     CleanupStack::PopAndDestroy(2); 
       
  3557     
       
  3558     }
       
  3559 
       
  3560 
       
  3561 
       
  3562 /**
       
  3563 @SYMTestCaseID BA-CTSY-SMSM-SRSR-0004
       
  3564 @SYMComponent  telephony_ctsy
       
  3565 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsMessaging::ResumeSmsReception
       
  3566 @SYMTestPriority High
       
  3567 @SYMTestActions Invokes multiple client requests to RMobileSmsMessaging::ResumeSmsReception
       
  3568 @SYMTestExpectedResults Pass
       
  3569 @SYMTestType CT
       
  3570 */
       
  3571 void CCTsySmsMessagingFU::TestResumeSmsReception0004L()
       
  3572     {
       
  3573                     
       
  3574     OpenEtelServerL(EUseExtendedError);
       
  3575     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3576     OpenPhoneL();
       
  3577 
       
  3578     RBuf8 data;
       
  3579     CleanupClosePushL(data);
       
  3580 
       
  3581     // Open second client
       
  3582     RTelServer telServer2;
       
  3583     TInt ret = telServer2.Connect();
       
  3584     ASSERT_EQUALS(KErrNone, ret);
       
  3585     CleanupClosePushL(telServer2);
       
  3586 
       
  3587     RMobilePhone phone2;
       
  3588     ret = phone2.Open(telServer2,KMmTsyPhoneName);
       
  3589     ASSERT_EQUALS(KErrNone, ret);
       
  3590     CleanupClosePushL(phone2);
       
  3591 
       
  3592     RMobileSmsMessaging messaging;
       
  3593     TInt err = messaging.Open(iPhone);
       
  3594     ASSERT_EQUALS(KErrNone, err);
       
  3595     CleanupClosePushL(messaging);
       
  3596 
       
  3597     RMobileSmsMessaging messaging2;
       
  3598     err = messaging2.Open(phone2);
       
  3599     ASSERT_EQUALS(KErrNone, err);
       
  3600     CleanupClosePushL(messaging2);
       
  3601 
       
  3602     TRequestStatus reqStatus;
       
  3603     TRequestStatus reqStatus2;
       
  3604 
       
  3605     //-------------------------------------------------------------------------
       
  3606     // Test A: Test multiple clients requesting RMobileSmsMessaging::ResumeSmsReception
       
  3607     //-------------------------------------------------------------------------
       
  3608 
       
  3609     iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
       
  3610 
       
  3611     messaging.ResumeSmsReception(reqStatus);
       
  3612 
       
  3613     messaging2.ResumeSmsReception(reqStatus2);
       
  3614     
       
  3615     iMockLTSY.CompleteL(EMobileSmsMessagingResumeSmsReception, KErrNone);
       
  3616 
       
  3617     User::WaitForRequest(reqStatus);
       
  3618     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  3619 
       
  3620     User::WaitForRequest(reqStatus2);
       
  3621     ASSERT_EQUALS(KErrServerBusy, reqStatus2.Int());
       
  3622 
       
  3623     AssertMockLtsyStatusL();
       
  3624 
       
  3625     CleanupStack::PopAndDestroy(6, this); 
       
  3626 
       
  3627     }
       
  3628 
       
  3629 
       
  3630 /**
       
  3631 @SYMTestCaseID BA-CTSY-SMSM-SRSR-0005
       
  3632 @SYMComponent  telephony_ctsy
       
  3633 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::ResumeSmsReception with timeout
       
  3634 @SYMTestPriority High
       
  3635 @SYMTestActions Invokes RMobileSmsMessaging::ResumeSmsReception and tests for timeout
       
  3636 @SYMTestExpectedResults Pass
       
  3637 @SYMTestType CT
       
  3638 */
       
  3639 void CCTsySmsMessagingFU::TestResumeSmsReception0005L()
       
  3640     {
       
  3641 
       
  3642     OpenEtelServerL(EUseExtendedError);
       
  3643     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3644     OpenPhoneL();
       
  3645 
       
  3646     RMobileSmsMessaging messaging;
       
  3647     TInt err = messaging.Open(iPhone);
       
  3648     ASSERT_EQUALS(KErrNone, err);
       
  3649     CleanupClosePushL(messaging);
       
  3650 
       
  3651     TRequestStatus reqStatus;
       
  3652 
       
  3653     iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
       
  3654 
       
  3655     messaging.ResumeSmsReception(reqStatus);
       
  3656     
       
  3657     User::WaitForRequest(reqStatus);
       
  3658     ASSERT_EQUALS(KErrTimedOut, reqStatus.Int());
       
  3659 
       
  3660     AssertMockLtsyStatusL();
       
  3661     
       
  3662     CleanupStack::PopAndDestroy(2);
       
  3663 
       
  3664     }
       
  3665 
       
  3666 
       
  3667 /**
       
  3668 @SYMTestCaseID BA-CTSY-SMSM-SGMSI-0001
       
  3669 @SYMComponent  telephony_ctsy
       
  3670 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::GetMessageStoreInfo
       
  3671 @SYMTestPriority High
       
  3672 @SYMTestActions Invokes RMobileSmsMessaging::GetMessageStoreInfo
       
  3673 @SYMTestExpectedResults Pass
       
  3674 @SYMTestType CT
       
  3675 */
       
  3676 void CCTsySmsMessagingFU::TestGetMessageStoreInfo0001L()
       
  3677     {
       
  3678 
       
  3679     OpenEtelServerL(EUseExtendedError);
       
  3680     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3681     OpenPhoneL();
       
  3682 
       
  3683     RBuf8 data;
       
  3684     CleanupClosePushL(data);
       
  3685 
       
  3686     RMobileSmsMessaging messaging;
       
  3687     TInt err = messaging.Open(iPhone);
       
  3688     ASSERT_EQUALS(KErrNone, err);
       
  3689     CleanupClosePushL(messaging);
       
  3690 
       
  3691     TRequestStatus reqStatus;
       
  3692     RMobilePhoneStore::TMobilePhoneStoreInfoV1 info;
       
  3693     RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg pckgInfo(info);
       
  3694     TInt index(0);
       
  3695     
       
  3696     //-------------------------------------------------------------------------
       
  3697     // TEST A: failure to dispatch request to LTSY
       
  3698     //-------------------------------------------------------------------------
       
  3699 
       
  3700     iMockLTSY.ExpectL(EMobileSmsMessagingGetMessageStoreInfo, KErrNotSupported);
       
  3701 
       
  3702     messaging.GetMessageStoreInfo(reqStatus, index, pckgInfo);
       
  3703     
       
  3704     User::WaitForRequest(reqStatus);
       
  3705     ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
  3706 
       
  3707     AssertMockLtsyStatusL();
       
  3708 
       
  3709     //-------------------------------------------------------------------------
       
  3710     // TEST B: failure on completion of pending request from LTSY->CTSY
       
  3711     //-------------------------------------------------------------------------
       
  3712 
       
  3713     iMockLTSY.ExpectL(EMobileSmsMessagingGetMessageStoreInfo);
       
  3714 
       
  3715     messaging.GetMessageStoreInfo(reqStatus, index, pckgInfo);
       
  3716 
       
  3717     TInt total(0);
       
  3718     TInt used(0);
       
  3719 
       
  3720     TMockLtsyData2<TInt, TInt> compData(total, used);
       
  3721     
       
  3722     compData.SerialiseL(data);
       
  3723 
       
  3724     iMockLTSY.CompleteL(EMobileSmsMessagingGetMessageStoreInfo, KErrGeneral, data);
       
  3725     
       
  3726     User::WaitForRequest(reqStatus);
       
  3727     ASSERT_EQUALS(KErrGeneral, reqStatus.Int());
       
  3728 
       
  3729     AssertMockLtsyStatusL();
       
  3730 
       
  3731     //-------------------------------------------------------------------------
       
  3732     // TEST C: Successful completion request of
       
  3733     // RMobileSmsMessaging::GetMessageStoreInfo when result is not cached.
       
  3734     //-------------------------------------------------------------------------
       
  3735 
       
  3736     iMockLTSY.ExpectL(EMobileSmsMessagingGetMessageStoreInfo);
       
  3737 
       
  3738     messaging.GetMessageStoreInfo(reqStatus, index, pckgInfo);
       
  3739 
       
  3740     total = 2;
       
  3741     used = 1;
       
  3742 
       
  3743     data.Close();
       
  3744     compData.SerialiseL(data);
       
  3745 
       
  3746     iMockLTSY.CompleteL(EMobileSmsMessagingGetMessageStoreInfo, KErrNone, data);
       
  3747     
       
  3748     User::WaitForRequest(reqStatus);
       
  3749     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  3750 
       
  3751     ASSERT_EQUALS(0, info.iName.Compare(KETelIccSmsStore));
       
  3752     ASSERT_EQUALS(RMobilePhoneStore::EShortMessageStore, info.iType);
       
  3753     ASSERT_TRUE(total == info.iTotalEntries);
       
  3754     ASSERT_TRUE(used == info.iUsedEntries);
       
  3755     ASSERT_EQUALS(KSmsMessageStoreInfoCaps, info.iCaps);
       
  3756 
       
  3757     AssertMockLtsyStatusL();
       
  3758 
       
  3759     //-------------------------------------------------------------------------
       
  3760     // TEST C2: Successful completion request of
       
  3761     // RMobileSmsMessaging::GetMessageStoreInfo when result is not cached.
       
  3762     //-------------------------------------------------------------------------
       
  3763 
       
  3764     iMockLTSY.ExpectL(EMobileSmsMessagingGetMessageStoreInfo);
       
  3765 
       
  3766     messaging.GetMessageStoreInfo(reqStatus, index, pckgInfo);
       
  3767 
       
  3768     iMockLTSY.CompleteL(EMobileSmsMessagingGetMessageStoreInfo, KErrNotFound, data);
       
  3769     
       
  3770     User::WaitForRequest(reqStatus);
       
  3771     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  3772 
       
  3773     ASSERT_EQUALS(0, info.iName.Compare(KETelIccSmsStore));
       
  3774     ASSERT_EQUALS(RMobilePhoneStore::EShortMessageStore, info.iType);
       
  3775     ASSERT_TRUE(total == info.iTotalEntries);
       
  3776     ASSERT_TRUE(used == info.iUsedEntries);
       
  3777     ASSERT_EQUALS(KSmsMessageStoreInfoCaps, info.iCaps);
       
  3778 
       
  3779     AssertMockLtsyStatusL();
       
  3780 
       
  3781     //-------------------------------------------------------------------------
       
  3782     // TEST E: Unsolicited completion of RMobileSmsMessaging::GetMessageStoreInfo
       
  3783     // from LTSY.
       
  3784     //-------------------------------------------------------------------------
       
  3785 
       
  3786     TRequestStatus mockLtsyStatus;
       
  3787     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  3788 
       
  3789     iMockLTSY.CompleteL(EMobileSmsMessagingGetMessageStoreInfo, KErrNone, data);
       
  3790 
       
  3791     User::WaitForRequest(mockLtsyStatus);
       
  3792     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  3793 
       
  3794     AssertMockLtsyStatusL();
       
  3795     CleanupStack::PopAndDestroy(3, this); 
       
  3796     
       
  3797     }
       
  3798 
       
  3799 
       
  3800 /**
       
  3801 @SYMTestCaseID BA-CTSY-SMSM-SGMSI-0002
       
  3802 @SYMComponent  telephony_ctsy
       
  3803 @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsMessaging::GetMessageStoreInfo
       
  3804 @SYMTestPriority High
       
  3805 @SYMTestActions Invokes cancelling of RMobileSmsMessaging::GetMessageStoreInfo
       
  3806 @SYMTestExpectedResults Pass
       
  3807 @SYMTestType CT
       
  3808 */
       
  3809 void CCTsySmsMessagingFU::TestGetMessageStoreInfo0002L()
       
  3810     {
       
  3811 
       
  3812     OpenEtelServerL(EUseExtendedError);
       
  3813     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3814     OpenPhoneL();
       
  3815 
       
  3816     RBuf8 data;
       
  3817     CleanupClosePushL(data);
       
  3818 
       
  3819     RMobileSmsMessaging messaging;
       
  3820     TInt err = messaging.Open(iPhone);
       
  3821     ASSERT_EQUALS(KErrNone, err);
       
  3822     CleanupClosePushL(messaging);
       
  3823 
       
  3824     TRequestStatus reqStatus;
       
  3825     RMobilePhoneStore::TMobilePhoneStoreInfoV1 info;
       
  3826     RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg pckgInfo(info);
       
  3827     TInt index(0);
       
  3828 
       
  3829     //-------------------------------------------------------------------------
       
  3830     // Test cancelling of RMobileSmsMessaging::GetMessageStoreInfo
       
  3831     //-------------------------------------------------------------------------
       
  3832     iMockLTSY.ExpectL(EMobileSmsMessagingGetMessageStoreInfo);
       
  3833 
       
  3834     TInt total(5);
       
  3835     TInt used(2);
       
  3836 
       
  3837     TMockLtsyData2<TInt, TInt> compData(total, used);
       
  3838     
       
  3839     compData.SerialiseL(data);
       
  3840 
       
  3841     TRequestStatus mockLtsyStatus;
       
  3842     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  3843 
       
  3844     iMockLTSY.CompleteL(EMobileSmsMessagingGetMessageStoreInfo, KErrNone, data, 10);
       
  3845 
       
  3846     messaging.GetMessageStoreInfo(reqStatus, index, pckgInfo);
       
  3847 
       
  3848     messaging.CancelAsyncRequest(EMobileSmsMessagingGetMessageStoreInfo);
       
  3849 
       
  3850     User::WaitForRequest(mockLtsyStatus);
       
  3851     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  3852     
       
  3853     User::WaitForRequest(reqStatus);
       
  3854     ASSERT_EQUALS(KErrCancel, reqStatus.Int());
       
  3855 
       
  3856     AssertMockLtsyStatusL();
       
  3857 
       
  3858     CleanupStack::PopAndDestroy(3); 
       
  3859     
       
  3860     }
       
  3861 
       
  3862 
       
  3863 /**
       
  3864 @SYMTestCaseID BA-CTSY-SMSM-SGMSI-0003
       
  3865 @SYMComponent  telephony_ctsy
       
  3866 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::GetMessageStoreInfo with bad parameter data
       
  3867 @SYMTestPriority High
       
  3868 @SYMTestActions Invokes RMobileSmsMessaging::GetMessageStoreInfo with bad parameter data
       
  3869 @SYMTestExpectedResults Pass
       
  3870 @SYMTestType CT
       
  3871 */
       
  3872 void CCTsySmsMessagingFU::TestGetMessageStoreInfo0003L()
       
  3873     {
       
  3874     OpenEtelServerL(EUseExtendedError);
       
  3875     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3876     OpenPhoneL();
       
  3877 
       
  3878     RBuf8 data;
       
  3879     CleanupClosePushL(data);
       
  3880 
       
  3881     RMobileSmsMessaging messaging;
       
  3882     TInt err = messaging.Open(iPhone);
       
  3883     ASSERT_EQUALS(KErrNone, err);
       
  3884     CleanupClosePushL(messaging);
       
  3885 
       
  3886     TRequestStatus reqStatus;
       
  3887     RMobilePhoneStore::TMobilePhoneStoreInfoV1 info;
       
  3888     RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg pckgInfo(info);
       
  3889     TInt index(KSmsStoreNumber + 1);
       
  3890 
       
  3891     messaging.GetMessageStoreInfo(reqStatus, index, pckgInfo);
       
  3892 
       
  3893     User::WaitForRequest(reqStatus);
       
  3894     ASSERT_EQUALS(KErrArgument, reqStatus.Int());
       
  3895 
       
  3896     AssertMockLtsyStatusL();
       
  3897 
       
  3898     //    
       
  3899     index = -1;
       
  3900 
       
  3901     messaging.GetMessageStoreInfo(reqStatus, index, pckgInfo);
       
  3902 
       
  3903     User::WaitForRequest(reqStatus);
       
  3904     ASSERT_EQUALS(KErrArgument, reqStatus.Int());
       
  3905 
       
  3906     AssertMockLtsyStatusL();
       
  3907     CleanupStack::PopAndDestroy(3); // messaging, data, this
       
  3908     }
       
  3909 
       
  3910 /**
       
  3911 @SYMTestCaseID BA-CTSY-SMSM-SGMSI-0004
       
  3912 @SYMComponent  telephony_ctsy
       
  3913 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsMessaging::GetMessageStoreInfo
       
  3914 @SYMTestPriority High
       
  3915 @SYMTestActions Invokes multiple client requests to RMobileSmsMessaging::GetMessageStoreInfo
       
  3916 @SYMTestExpectedResults Pass
       
  3917 @SYMTestType CT
       
  3918 */
       
  3919 void CCTsySmsMessagingFU::TestGetMessageStoreInfo0004L()
       
  3920     {
       
  3921 
       
  3922                     
       
  3923     OpenEtelServerL(EUseExtendedError);
       
  3924     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  3925     OpenPhoneL();
       
  3926 
       
  3927     RBuf8 data;
       
  3928     CleanupClosePushL(data);
       
  3929 
       
  3930     // Open second client
       
  3931     RTelServer telServer2;
       
  3932     TInt ret = telServer2.Connect();
       
  3933     ASSERT_EQUALS(KErrNone, ret);
       
  3934     CleanupClosePushL(telServer2);
       
  3935 
       
  3936     RMobilePhone phone2;
       
  3937     ret = phone2.Open(telServer2,KMmTsyPhoneName);
       
  3938     ASSERT_EQUALS(KErrNone, ret);
       
  3939     CleanupClosePushL(phone2);
       
  3940 
       
  3941     RMobileSmsMessaging messaging;
       
  3942     TInt err = messaging.Open(iPhone);
       
  3943     ASSERT_EQUALS(KErrNone, err);
       
  3944     CleanupClosePushL(messaging);
       
  3945 
       
  3946     RMobileSmsMessaging messaging2;
       
  3947     err = messaging2.Open(phone2);
       
  3948     ASSERT_EQUALS(KErrNone, err);
       
  3949     CleanupClosePushL(messaging2);
       
  3950 
       
  3951     TRequestStatus reqStatus;
       
  3952     TRequestStatus reqStatus2;
       
  3953     RMobilePhoneStore::TMobilePhoneStoreInfoV1 info;
       
  3954     RMobilePhoneStore::TMobilePhoneStoreInfoV1 info2;
       
  3955     RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg pckgInfo(info);
       
  3956     RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg pckgInfo2(info2);
       
  3957     TInt index(0);
       
  3958     TInt index2(0);
       
  3959 
       
  3960     iMockLTSY.ExpectL(EMobileSmsMessagingGetMessageStoreInfo);
       
  3961 
       
  3962     messaging.GetMessageStoreInfo(reqStatus, index, pckgInfo);
       
  3963 
       
  3964     messaging2.GetMessageStoreInfo(reqStatus2, index2, pckgInfo2);
       
  3965 
       
  3966     TInt total(5);
       
  3967     TInt used(2);
       
  3968 
       
  3969     TMockLtsyData2<TInt, TInt> compData(total, used);
       
  3970     
       
  3971     compData.SerialiseL(data);
       
  3972 
       
  3973     iMockLTSY.CompleteL(EMobileSmsMessagingGetMessageStoreInfo, KErrNone, data);
       
  3974     
       
  3975     User::WaitForRequest(reqStatus);
       
  3976     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  3977 
       
  3978     User::WaitForRequest(reqStatus2);
       
  3979     ASSERT_EQUALS(KErrServerBusy, reqStatus2.Int());
       
  3980 
       
  3981     AssertMockLtsyStatusL();
       
  3982 
       
  3983     CleanupStack::PopAndDestroy(6, this); 
       
  3984 
       
  3985     }
       
  3986 
       
  3987 
       
  3988 /**
       
  3989 @SYMTestCaseID BA-CTSY-SMSM-SGMSI-0005
       
  3990 @SYMComponent  telephony_ctsy
       
  3991 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::GetMessageStoreInfo with timeout
       
  3992 @SYMTestPriority High
       
  3993 @SYMTestActions Invokes RMobileSmsMessaging::GetMessageStoreInfo and tests for timeout
       
  3994 @SYMTestExpectedResults Pass
       
  3995 @SYMTestType CT
       
  3996 */
       
  3997 void CCTsySmsMessagingFU::TestGetMessageStoreInfo0005L()
       
  3998     {
       
  3999 
       
  4000     OpenEtelServerL(EUseExtendedError);
       
  4001     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  4002     OpenPhoneL();
       
  4003 
       
  4004     RBuf8 data;
       
  4005     CleanupClosePushL(data);
       
  4006 
       
  4007     RMobileSmsMessaging messaging;
       
  4008     TInt err = messaging.Open(iPhone);
       
  4009     ASSERT_EQUALS(KErrNone, err);
       
  4010     CleanupClosePushL(messaging);
       
  4011 
       
  4012     TRequestStatus reqStatus;
       
  4013     RMobilePhoneStore::TMobilePhoneStoreInfoV1 info;
       
  4014     RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg pckgInfo(info);
       
  4015     TInt index(0);
       
  4016 
       
  4017     iMockLTSY.ExpectL(EMobileSmsMessagingGetMessageStoreInfo);
       
  4018 
       
  4019     messaging.GetMessageStoreInfo(reqStatus, index, pckgInfo);
       
  4020 
       
  4021     User::WaitForRequest(reqStatus);
       
  4022     ASSERT_EQUALS(KErrTimedOut, reqStatus.Int());
       
  4023 
       
  4024     AssertMockLtsyStatusL();
       
  4025 
       
  4026     CleanupStack::PopAndDestroy(3); 
       
  4027     }
       
  4028 
       
  4029 
       
  4030 /**
       
  4031 @SYMTestCaseID BA-CTSY-SMSM-SNSLC-0001
       
  4032 @SYMComponent  telephony_ctsy
       
  4033 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::NotifySmspListChange
       
  4034 @SYMTestPriority High
       
  4035 @SYMTestActions Invokes RMobileSmsMessaging::NotifySmspListChange
       
  4036 @SYMTestExpectedResults Pass
       
  4037 @SYMTestType CT
       
  4038 */
       
  4039 void CCTsySmsMessagingFU::TestNotifySmspListChange0001L()
       
  4040     {
       
  4041 
       
  4042     OpenEtelServerL(EUseExtendedError);
       
  4043     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  4044     OpenPhoneL();
       
  4045 
       
  4046     RMobileSmsMessaging messaging;
       
  4047     TInt err = messaging.Open(iPhone);
       
  4048     ASSERT_EQUALS(KErrNone, err);
       
  4049     CleanupClosePushL(messaging);
       
  4050 
       
  4051 
       
  4052     RBuf8 data;
       
  4053     CleanupClosePushL(data);
       
  4054 
       
  4055 
       
  4056     
       
  4057     //-------------------------------------------------------------------------
       
  4058     // TEST C: Successful completion request of
       
  4059     // RMobileSmsMessaging::NotifySmspListChange when result is not cached.
       
  4060     //-------------------------------------------------------------------------
       
  4061 
       
  4062     TRequestStatus reqNotifyStatus;
       
  4063     
       
  4064     messaging.NotifySmspListChange(reqNotifyStatus);
       
  4065 
       
  4066 
       
  4067     TRequestStatus reqStatus;
       
  4068     CMobilePhoneSmspList* smspListPtr = CMobilePhoneSmspList::NewL();
       
  4069     CleanupStack::PushL(smspListPtr);
       
  4070 
       
  4071     RMobileSmsMessaging::TMobileSmspEntryV1 smspEntry;
       
  4072     
       
  4073     smspListPtr->AddEntryL(smspEntry);
       
  4074 
       
  4075     TMockLtsyData1<CMobilePhoneSmspList*> expTsyData(smspListPtr);
       
  4076     expTsyData.SerialiseL(data);
       
  4077 
       
  4078     iMockLTSY.ExpectL(EMobileSmsMessagingStoreSmspList, data, KErrNone);
       
  4079 
       
  4080     messaging.StoreSmspListL(reqStatus, smspListPtr); 
       
  4081     
       
  4082     iMockLTSY.CompleteL(EMobileSmsMessagingStoreSmspList, KErrNone);
       
  4083 
       
  4084     User::WaitForRequest(reqStatus);
       
  4085     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  4086 
       
  4087     User::WaitForRequest(reqNotifyStatus);
       
  4088     ASSERT_EQUALS(KErrNone, reqNotifyStatus.Int());
       
  4089 
       
  4090     AssertMockLtsyStatusL();
       
  4091     CleanupStack::PopAndDestroy(4, this); 
       
  4092     
       
  4093     }
       
  4094 
       
  4095 
       
  4096 /**
       
  4097 @SYMTestCaseID BA-CTSY-SMSM-SNSLC-0002
       
  4098 @SYMComponent  telephony_ctsy
       
  4099 @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsMessaging::NotifySmspListChange
       
  4100 @SYMTestPriority High
       
  4101 @SYMTestActions Invokes cancelling of RMobileSmsMessaging::NotifySmspListChange
       
  4102 @SYMTestExpectedResults Pass
       
  4103 @SYMTestType CT
       
  4104 */
       
  4105 void CCTsySmsMessagingFU::TestNotifySmspListChange0002L()
       
  4106     {
       
  4107     OpenEtelServerL(EUseExtendedError);
       
  4108     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  4109     OpenPhoneL();
       
  4110 
       
  4111     RMobileSmsMessaging messaging;
       
  4112     TInt err = messaging.Open(iPhone);
       
  4113     ASSERT_EQUALS(KErrNone, err);
       
  4114     CleanupClosePushL(messaging);
       
  4115 
       
  4116     //-------------------------------------------------------------------------
       
  4117     // Test cancelling of RMobileSmsMessaging::NotifySmspListChange
       
  4118     //-------------------------------------------------------------------------
       
  4119     TRequestStatus reqNotifyStatus;
       
  4120     
       
  4121     messaging.NotifySmspListChange(reqNotifyStatus);
       
  4122 
       
  4123     messaging.CancelAsyncRequest(EMobileSmsMessagingNotifySmspListChange);
       
  4124 
       
  4125     User::WaitForRequest(reqNotifyStatus);
       
  4126     ASSERT_EQUALS(KErrCancel, reqNotifyStatus.Int());
       
  4127     
       
  4128     CleanupStack::PopAndDestroy(2); // data, this
       
  4129     
       
  4130     }
       
  4131 
       
  4132 
       
  4133 /**
       
  4134 @SYMTestCaseID BA-CTSY-SMSM-SNSLC-0004
       
  4135 @SYMComponent  telephony_ctsy
       
  4136 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsMessaging::NotifySmspListChange
       
  4137 @SYMTestPriority High
       
  4138 @SYMTestActions Invokes multiple client requests to RMobileSmsMessaging::NotifySmspListChange
       
  4139 @SYMTestExpectedResults Pass
       
  4140 @SYMTestType CT
       
  4141 */
       
  4142 void CCTsySmsMessagingFU::TestNotifySmspListChange0004L()
       
  4143     {
       
  4144 
       
  4145                     
       
  4146     OpenEtelServerL(EUseExtendedError);
       
  4147     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  4148     OpenPhoneL();
       
  4149 
       
  4150     RBuf8 data;
       
  4151     CleanupClosePushL(data);
       
  4152 
       
  4153     // Open second client
       
  4154     RTelServer telServer2;
       
  4155     TInt ret = telServer2.Connect();
       
  4156     ASSERT_EQUALS(KErrNone, ret);
       
  4157     CleanupClosePushL(telServer2);
       
  4158 
       
  4159     RMobilePhone phone2;
       
  4160     ret = phone2.Open(telServer2,KMmTsyPhoneName);
       
  4161     ASSERT_EQUALS(KErrNone, ret);
       
  4162     CleanupClosePushL(phone2);
       
  4163 
       
  4164     RMobileSmsMessaging messaging;
       
  4165     TInt err = messaging.Open(iPhone);
       
  4166     ASSERT_EQUALS(KErrNone, err);
       
  4167     CleanupClosePushL(messaging);
       
  4168 
       
  4169     RMobileSmsMessaging messaging2;
       
  4170     err = messaging2.Open(phone2);
       
  4171     ASSERT_EQUALS(KErrNone, err);
       
  4172     CleanupClosePushL(messaging2);
       
  4173 
       
  4174     //-------------------------------------------------------------------------
       
  4175     // Test A: Test multiple clients requesting RMobileSmsMessaging::NotifySmspListChange
       
  4176     //-------------------------------------------------------------------------
       
  4177     TRequestStatus reqNotifyStatus;
       
  4178     TRequestStatus reqNotifyStatus2;
       
  4179     
       
  4180     messaging.NotifySmspListChange(reqNotifyStatus);
       
  4181     messaging2.NotifySmspListChange(reqNotifyStatus2);
       
  4182 
       
  4183 
       
  4184     TRequestStatus reqStatus;
       
  4185     CMobilePhoneSmspList* smspListPtr = CMobilePhoneSmspList::NewL();
       
  4186     CleanupStack::PushL(smspListPtr);
       
  4187 
       
  4188     RMobileSmsMessaging::TMobileSmspEntryV1 smspEntry;
       
  4189     
       
  4190     smspListPtr->AddEntryL(smspEntry);
       
  4191 
       
  4192     TMockLtsyData1<CMobilePhoneSmspList*> expTsyData(smspListPtr);
       
  4193     expTsyData.SerialiseL(data);
       
  4194 
       
  4195     iMockLTSY.ExpectL(EMobileSmsMessagingStoreSmspList, data, KErrNone);
       
  4196 
       
  4197     messaging.StoreSmspListL(reqStatus, smspListPtr); 
       
  4198     
       
  4199     iMockLTSY.CompleteL(EMobileSmsMessagingStoreSmspList, KErrNone);
       
  4200 
       
  4201     User::WaitForRequest(reqStatus);
       
  4202     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  4203 
       
  4204     User::WaitForRequest(reqNotifyStatus);
       
  4205     ASSERT_EQUALS(KErrNone, reqNotifyStatus.Int());
       
  4206 
       
  4207     User::WaitForRequest(reqNotifyStatus2);
       
  4208     ASSERT_EQUALS(KErrNone, reqNotifyStatus2.Int());
       
  4209 
       
  4210     AssertMockLtsyStatusL();
       
  4211 
       
  4212     CleanupStack::PopAndDestroy(7, this);
       
  4213 
       
  4214     }
       
  4215 
       
  4216 
       
  4217 
       
  4218 /**
       
  4219 @SYMTestCaseID BA-CTSY-SMSM-SSMNFC-0001
       
  4220 @SYMComponent  telephony_ctsy
       
  4221 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::SendMessageNoFdnCheck
       
  4222 @SYMTestPriority High
       
  4223 @SYMTestActions Invokes RMobileSmsMessaging::SendMessageNoFdnCheck
       
  4224 @SYMTestExpectedResults Pass
       
  4225 @SYMTestType CT
       
  4226 */
       
  4227 void CCTsySmsMessagingFU::TestSendMessageNoFdnCheck0001L()
       
  4228     {
       
  4229     OpenEtelServerL(EUseExtendedError);
       
  4230     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  4231     OpenPhoneL();
       
  4232 
       
  4233     RBuf8 data;
       
  4234     CleanupClosePushL(data);
       
  4235 
       
  4236     RMobileSmsMessaging messaging;
       
  4237     TInt err = messaging.Open(iPhone);
       
  4238     ASSERT_EQUALS(KErrNone, err);
       
  4239     CleanupClosePushL(messaging);
       
  4240 
       
  4241 
       
  4242     _LIT8(KMessage, "Merry christmas");
       
  4243     TBuf8<32> tmpName(KMessage);
       
  4244     
       
  4245     TRequestStatus reqStatus;
       
  4246     RMobileSmsMessaging::TMobileSmsSendAttributesV1 smsAttr;
       
  4247     RMobileSmsMessaging::TMobileSmsSendAttributesV1Pckg smsAttrPckg(smsAttr);
       
  4248 
       
  4249     TSendSmsDataAndAttributes dataAndAttr;
       
  4250     dataAndAttr.iIpc = EMobileSmsMessagingSendMessageNoFdnCheck; 
       
  4251     dataAndAttr.iAttributes = &smsAttr; 
       
  4252     dataAndAttr.iMsgData = &tmpName; 
       
  4253 
       
  4254     TMockLtsyData1<TSendSmsDataAndAttributes> expTsyData(dataAndAttr);           
       
  4255     
       
  4256     expTsyData.SerialiseL(data);
       
  4257     
       
  4258     //-------------------------------------------------------------------------
       
  4259     // TEST B1: failure on completion of pending request from LTSY->CTSY
       
  4260     //-------------------------------------------------------------------------
       
  4261 
       
  4262     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessageNoFdnCheck, data);
       
  4263 
       
  4264     const TInt16 KMsgRef(25);
       
  4265     TInt16 msgRef(KMsgRef);
       
  4266     TBuf8<RMobileSmsMessaging::KGsmTpduSize> smsMsg(KMessage);
       
  4267     
       
  4268     TMockLtsyData2<TInt16, TBuf8<RMobileSmsMessaging::KGsmTpduSize> > compTsyData(msgRef, smsMsg);
       
  4269     data.Close();
       
  4270     compTsyData.SerialiseL(data);
       
  4271     
       
  4272     iMockLTSY.CompleteL(EMobileSmsMessagingSendMessageNoFdnCheck, KErrGeneral, data, 10);
       
  4273     messaging.SendMessageNoFdnCheck(reqStatus, tmpName, smsAttrPckg);
       
  4274 
       
  4275     data.Close();
       
  4276     expTsyData.SerialiseL(data);
       
  4277     
       
  4278     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessageNoFdnCheck, data, KErrNotSupported);
       
  4279 
       
  4280     User::WaitForRequest(reqStatus);
       
  4281     ASSERT_EQUALS(KErrGeneral, reqStatus.Int());
       
  4282 
       
  4283     AssertMockLtsyStatusL();
       
  4284 
       
  4285     //-------------------------------------------------------------------------
       
  4286     // TEST B2: failure on completion of pending request from LTSY->CTSY
       
  4287     //-------------------------------------------------------------------------
       
  4288 
       
  4289     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessageNoFdnCheck, data);
       
  4290 
       
  4291     data.Close();
       
  4292     compTsyData.SerialiseL(data);
       
  4293     
       
  4294     iMockLTSY.CompleteL(EMobileSmsMessagingSendMessageNoFdnCheck, KErrGeneral, data, 10);
       
  4295     messaging.SendMessageNoFdnCheck(reqStatus, tmpName, smsAttrPckg);
       
  4296 
       
  4297     data.Close();
       
  4298     expTsyData.SerialiseL(data);
       
  4299 
       
  4300     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessageNoFdnCheck, data);
       
  4301 
       
  4302     data.Close();
       
  4303     compTsyData.SerialiseL(data);
       
  4304 
       
  4305     iMockLTSY.CompleteL(EMobileSmsMessagingSendMessageNoFdnCheck, KErrGeneral, data, 10);
       
  4306 
       
  4307     data.Close();
       
  4308     expTsyData.SerialiseL(data);
       
  4309 
       
  4310     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessageNoFdnCheck, data);
       
  4311 
       
  4312     data.Close();
       
  4313     compTsyData.SerialiseL(data);
       
  4314     
       
  4315     iMockLTSY.CompleteL(EMobileSmsMessagingSendMessageNoFdnCheck, KErrGeneral, data, 10);
       
  4316 
       
  4317     User::WaitForRequest(reqStatus);
       
  4318     ASSERT_EQUALS(KErrGeneral, reqStatus.Int());
       
  4319 
       
  4320     AssertMockLtsyStatusL();
       
  4321 
       
  4322     //-------------------------------------------------------------------------
       
  4323     // TEST C: Successful completion request of
       
  4324     // RMobileSmsMessaging::SendMessage when result is not cached.
       
  4325     //-------------------------------------------------------------------------
       
  4326 
       
  4327     _LIT8(KSubmit, "Submit");
       
  4328     _LIT(KNum, "+441632960000");
       
  4329     
       
  4330     smsAttr.iGsmServiceCentre.iTypeOfNumber = RMobilePhone::EInternationalNumber;
       
  4331     smsAttr.iGsmServiceCentre.iNumberPlan = RMobilePhone::EIsdnNumberPlan;
       
  4332     smsAttr.iGsmServiceCentre.iTelNumber.Copy(KNum);
       
  4333     smsAttr.iCdmaServiceCategory = 0;
       
  4334     smsAttr.iCdmaTeleservice = 0;
       
  4335     smsAttr.iDataFormat = RMobileSmsMessaging::EFormatGsmTpdu;
       
  4336     smsAttr.iFlags = 0;
       
  4337     smsAttr.iMsgRef = 0;
       
  4338     smsAttr.iSubmitReport = KSubmit;
       
  4339     smsAttr.iMore = EFalse;
       
  4340     smsAttr.iDestination.iTypeOfNumber = RMobilePhone::EInternationalNumber;
       
  4341     smsAttr.iDestination.iNumberPlan = RMobilePhone::EIsdnNumberPlan;
       
  4342     smsAttr.iDestination.iTelNumber.Copy(KNum);
       
  4343     
       
  4344     data.Close();
       
  4345     expTsyData.SerialiseL(data);
       
  4346 
       
  4347     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessageNoFdnCheck, data);
       
  4348 
       
  4349     data.Close();
       
  4350     compTsyData.SerialiseL(data);
       
  4351 
       
  4352     iMockLTSY.CompleteL(EMobileSmsMessagingSendMessageNoFdnCheck, KErrNone, data, 10);
       
  4353     
       
  4354     messaging.SendMessageNoFdnCheck(reqStatus, tmpName, smsAttrPckg);
       
  4355 
       
  4356     User::WaitForRequest(reqStatus);
       
  4357     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  4358 
       
  4359     ASSERT_EQUALS(RMobilePhone::EInternationalNumber, smsAttr.iGsmServiceCentre.iTypeOfNumber);
       
  4360     ASSERT_EQUALS(RMobilePhone::EIsdnNumberPlan, smsAttr.iGsmServiceCentre.iNumberPlan);
       
  4361     ASSERT_EQUALS(0, smsAttr.iGsmServiceCentre.iTelNumber.Compare(KNum));
       
  4362     ASSERT_EQUALS(0, smsAttr.iCdmaServiceCategory);
       
  4363     ASSERT_EQUALS(0, smsAttr.iCdmaTeleservice);
       
  4364     ASSERT_EQUALS(RMobileSmsMessaging::EFormatGsmTpdu, smsAttr.iDataFormat);
       
  4365     ASSERT_TRUE((RMobileSmsMessaging::KMessageReference | RMobileSmsMessaging::KGsmSubmitReport)
       
  4366          == smsAttr.iFlags);
       
  4367     ASSERT_TRUE(KMsgRef == smsAttr.iMsgRef);
       
  4368     ASSERT_EQUALS(0, smsAttr.iSubmitReport.Compare(KMessage));
       
  4369     ASSERT_TRUE(EFalse == smsAttr.iMore);
       
  4370     ASSERT_EQUALS(RMobilePhone::EInternationalNumber, smsAttr.iDestination.iTypeOfNumber);
       
  4371     ASSERT_EQUALS(RMobilePhone::EIsdnNumberPlan, smsAttr.iDestination.iNumberPlan);
       
  4372     ASSERT_EQUALS(0, smsAttr.iDestination.iTelNumber.Compare(KNum));
       
  4373 
       
  4374     AssertMockLtsyStatusL();
       
  4375 
       
  4376     //-------------------------------------------------------------------------
       
  4377     // TEST C2: Successful completion request of
       
  4378     // RMobileSmsMessaging::SendMessage when result is not cached.
       
  4379     //-------------------------------------------------------------------------
       
  4380     
       
  4381     tmpName.SetLength(0);
       
  4382     smsMsg.SetLength(0);
       
  4383 
       
  4384     smsAttr.iGsmServiceCentre.iTypeOfNumber = RMobilePhone::EInternationalNumber;
       
  4385     smsAttr.iGsmServiceCentre.iNumberPlan = RMobilePhone::EIsdnNumberPlan;
       
  4386     smsAttr.iGsmServiceCentre.iTelNumber.Copy(KNum);
       
  4387     smsAttr.iCdmaServiceCategory = 0;
       
  4388     smsAttr.iCdmaTeleservice = 0;
       
  4389     smsAttr.iDataFormat = RMobileSmsMessaging::EFormatGsmTpdu;
       
  4390     smsAttr.iFlags = 0;
       
  4391     smsAttr.iMsgRef = 0;
       
  4392     smsAttr.iSubmitReport = KSubmit;
       
  4393     smsAttr.iMore = EFalse;
       
  4394     smsAttr.iDestination.iTypeOfNumber = RMobilePhone::EInternationalNumber;
       
  4395     smsAttr.iDestination.iNumberPlan = RMobilePhone::EIsdnNumberPlan;
       
  4396     smsAttr.iDestination.iTelNumber.Copy(KNum);
       
  4397     
       
  4398     data.Close();
       
  4399     expTsyData.SerialiseL(data);
       
  4400 
       
  4401     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessageNoFdnCheck, data);
       
  4402 
       
  4403     data.Close();
       
  4404     compTsyData.SerialiseL(data);
       
  4405 
       
  4406     iMockLTSY.CompleteL(EMobileSmsMessagingSendMessageNoFdnCheck, KErrNone, data, 10);
       
  4407     
       
  4408     messaging.SendMessageNoFdnCheck(reqStatus, tmpName, smsAttrPckg);
       
  4409 
       
  4410     User::WaitForRequest(reqStatus);
       
  4411     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  4412 
       
  4413     ASSERT_EQUALS(RMobilePhone::EInternationalNumber, smsAttr.iGsmServiceCentre.iTypeOfNumber);
       
  4414     ASSERT_EQUALS(RMobilePhone::EIsdnNumberPlan, smsAttr.iGsmServiceCentre.iNumberPlan);
       
  4415     ASSERT_EQUALS(0, smsAttr.iGsmServiceCentre.iTelNumber.Compare(KNum));
       
  4416     ASSERT_EQUALS(0, smsAttr.iCdmaServiceCategory);
       
  4417     ASSERT_EQUALS(0, smsAttr.iCdmaTeleservice);
       
  4418     ASSERT_EQUALS(RMobileSmsMessaging::EFormatGsmTpdu, smsAttr.iDataFormat);
       
  4419     ASSERT_TRUE(RMobileSmsMessaging::KMessageReference == smsAttr.iFlags);
       
  4420     ASSERT_TRUE(KMsgRef == smsAttr.iMsgRef);
       
  4421     ASSERT_EQUALS(0, smsAttr.iSubmitReport.Compare(KSubmit));
       
  4422     ASSERT_TRUE(EFalse == smsAttr.iMore);
       
  4423     ASSERT_EQUALS(RMobilePhone::EInternationalNumber, smsAttr.iDestination.iTypeOfNumber);
       
  4424     ASSERT_EQUALS(RMobilePhone::EIsdnNumberPlan, smsAttr.iDestination.iNumberPlan);
       
  4425     ASSERT_EQUALS(0, smsAttr.iDestination.iTelNumber.Compare(KNum));
       
  4426 
       
  4427     AssertMockLtsyStatusL();
       
  4428 
       
  4429     //-------------------------------------------------------------------------
       
  4430     // TEST E: Unsolicited completion of RMobileSmsMessaging::SendMessage
       
  4431     // from LTSY.
       
  4432     //-------------------------------------------------------------------------
       
  4433 
       
  4434     data.Close();
       
  4435     compTsyData.SerialiseL(data);
       
  4436 
       
  4437     TRequestStatus mockLtsyStatus;
       
  4438     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  4439     
       
  4440     iMockLTSY.CompleteL(EMobileSmsMessagingSendMessageNoFdnCheck, KErrNone, data, 10);
       
  4441     
       
  4442     User::WaitForRequest(mockLtsyStatus);
       
  4443     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  4444 
       
  4445 
       
  4446     //-------------------------------------------------------------------------
       
  4447     // TEST A: failure to dispatch request to LTSY
       
  4448     //-------------------------------------------------------------------------
       
  4449 
       
  4450     data.Close();
       
  4451     expTsyData.SerialiseL(data);
       
  4452 
       
  4453     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessageNoFdnCheck, data, KErrNotSupported);
       
  4454     messaging.SendMessageNoFdnCheck(reqStatus, tmpName, smsAttrPckg);
       
  4455 
       
  4456     User::WaitForRequest(reqStatus);
       
  4457     ASSERT_EQUALS(KErrNotSupported, reqStatus.Int());
       
  4458 
       
  4459     AssertMockLtsyStatusL();
       
  4460     CleanupStack::PopAndDestroy(3, this); 
       
  4461     }
       
  4462 
       
  4463 
       
  4464 
       
  4465 
       
  4466 /**
       
  4467 @SYMTestCaseID BA-CTSY-SMSM-SSMNFC-0002
       
  4468 @SYMComponent  telephony_ctsy
       
  4469 @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsMessaging::SendMessageNoFdnCheck
       
  4470 @SYMTestPriority High
       
  4471 @SYMTestActions Invokes cancelling of RMobileSmsMessaging::SendMessageNoFdnCheck
       
  4472 @SYMTestExpectedResults Pass
       
  4473 @SYMTestType CT
       
  4474 */
       
  4475 void CCTsySmsMessagingFU::TestSendMessageNoFdnCheck0002L()
       
  4476     {
       
  4477 
       
  4478     OpenEtelServerL(EUseExtendedError);
       
  4479     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  4480     OpenPhoneL();
       
  4481 
       
  4482     RMobileSmsMessaging messaging;
       
  4483     TInt err = messaging.Open(iPhone);
       
  4484     ASSERT_EQUALS(KErrNone, err);
       
  4485     CleanupClosePushL(messaging);
       
  4486 
       
  4487     RBuf8 data;
       
  4488     CleanupClosePushL(data);
       
  4489 
       
  4490     _LIT8(KMessage, "Merry christmas");
       
  4491     TBuf8<32> tmpName(KMessage);
       
  4492     
       
  4493     TRequestStatus reqStatus;
       
  4494     RMobileSmsMessaging::TMobileSmsSendAttributesV1 smsAttr;
       
  4495     RMobileSmsMessaging::TMobileSmsSendAttributesV1Pckg smsAttrPckg(smsAttr);
       
  4496 
       
  4497     TSendSmsDataAndAttributes dataAndAttr;
       
  4498     dataAndAttr.iIpc = EMobileSmsMessagingSendMessageNoFdnCheck; 
       
  4499     dataAndAttr.iAttributes = &smsAttr; 
       
  4500     dataAndAttr.iMsgData = &tmpName; 
       
  4501 
       
  4502     TMockLtsyData1<TSendSmsDataAndAttributes> expTsyData(dataAndAttr);           
       
  4503     expTsyData.SerialiseL(data);
       
  4504 
       
  4505     TRequestStatus mockLtsyStatus;
       
  4506     iMockLTSY.NotifyTerminated(mockLtsyStatus);
       
  4507 
       
  4508     //-------------------------------------------------------------------------
       
  4509     // Test cancelling of RMobileSmsMessaging::SendMessageNoFdnCheck
       
  4510     //-------------------------------------------------------------------------
       
  4511     
       
  4512     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessageNoFdnCheck, data);
       
  4513 
       
  4514     const TInt16 KMsgRef(25);
       
  4515     TInt16 msgRef(KMsgRef);
       
  4516     TBuf8<RMobileSmsMessaging::KGsmTpduSize> smsMsg(KMessage);
       
  4517     TMockLtsyData2<TInt16, TBuf8<RMobileSmsMessaging::KGsmTpduSize> > compTsyData(msgRef, smsMsg);
       
  4518     data.Close();
       
  4519     compTsyData.SerialiseL(data);
       
  4520     
       
  4521     iMockLTSY.CompleteL(EMobileSmsMessagingSendMessageNoFdnCheck, KErrNone, data, 10);
       
  4522 
       
  4523     messaging.SendMessageNoFdnCheck(reqStatus, tmpName, smsAttrPckg);
       
  4524 
       
  4525     messaging.CancelAsyncRequest(EMobileSmsMessagingSendMessageNoFdnCheck);
       
  4526 
       
  4527     // Wait for completion of iMockLTSY.NotifyTerminated
       
  4528     User::WaitForRequest(mockLtsyStatus);
       
  4529     ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
       
  4530     
       
  4531     User::WaitForRequest(reqStatus);
       
  4532     ASSERT_EQUALS(KErrCancel, reqStatus.Int());
       
  4533 
       
  4534 
       
  4535     AssertMockLtsyStatusL();
       
  4536 
       
  4537     CleanupStack::PopAndDestroy(3);
       
  4538     
       
  4539     }
       
  4540 
       
  4541 
       
  4542 /**
       
  4543 @SYMTestCaseID BA-CTSY-SMSM-SSMNFC-0003
       
  4544 @SYMComponent  telephony_ctsy
       
  4545 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::SendMessageNoFdnCheck with bad parameter data
       
  4546 @SYMTestPriority High
       
  4547 @SYMTestActions Invokes RMobileSmsMessaging::SendMessageNoFdnCheck with bad parameter data
       
  4548 @SYMTestExpectedResults Pass
       
  4549 @SYMTestType CT
       
  4550 */
       
  4551 void CCTsySmsMessagingFU::TestSendMessageNoFdnCheck0003L()
       
  4552     {
       
  4553     OpenEtelServerL(EUseExtendedError);
       
  4554     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  4555     OpenPhoneL();
       
  4556 
       
  4557     RMobileSmsMessaging messaging;
       
  4558     TInt err = messaging.Open(iPhone);
       
  4559     ASSERT_EQUALS(KErrNone, err);
       
  4560     CleanupClosePushL(messaging);
       
  4561 
       
  4562     TRequestStatus reqStatus;
       
  4563     TBuf8<1> tmpName;
       
  4564     TInt smsAttr(1);
       
  4565     TPckg<TInt8> badSmsAttrPckg(smsAttr);
       
  4566 
       
  4567     messaging.SendMessageNoFdnCheck(reqStatus, tmpName, badSmsAttrPckg);
       
  4568         
       
  4569     User::WaitForRequest(reqStatus);
       
  4570     ASSERT_EQUALS(KErrArgument, reqStatus.Int());
       
  4571 
       
  4572     AssertMockLtsyStatusL();
       
  4573     CleanupStack::PopAndDestroy(2); // messaging, this
       
  4574     }
       
  4575 
       
  4576 
       
  4577 /**
       
  4578 @SYMTestCaseID BA-CTSY-SMSM-SSMNFC-0004
       
  4579 @SYMComponent  telephony_ctsy
       
  4580 @SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsMessaging::SendMessageNoFdnCheck
       
  4581 @SYMTestPriority High
       
  4582 @SYMTestActions Invokes multiple client requests to RMobileSmsMessaging::SendMessageNoFdnCheck
       
  4583 @SYMTestExpectedResults Pass
       
  4584 @SYMTestType CT
       
  4585 */
       
  4586 void CCTsySmsMessagingFU::TestSendMessageNoFdnCheck0004L()
       
  4587     {
       
  4588 
       
  4589     OpenEtelServerL(EUseExtendedError);
       
  4590     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  4591     OpenPhoneL();
       
  4592 
       
  4593     RMobileSmsMessaging messaging;
       
  4594     TInt err = messaging.Open(iPhone);
       
  4595     ASSERT_EQUALS(KErrNone, err);
       
  4596     CleanupClosePushL(messaging);
       
  4597 
       
  4598     RTelServer telServer2;
       
  4599     TInt ret = telServer2.Connect();
       
  4600     ASSERT_EQUALS(KErrNone, ret);
       
  4601     CleanupClosePushL(telServer2);
       
  4602 
       
  4603     RMobilePhone phone2;
       
  4604     ret = phone2.Open(telServer2,KMmTsyPhoneName);
       
  4605     ASSERT_EQUALS(KErrNone, ret);
       
  4606     CleanupClosePushL(phone2);
       
  4607 
       
  4608     RMobileSmsMessaging messaging2;
       
  4609     err = messaging2.Open(phone2);
       
  4610     ASSERT_EQUALS(KErrNone, err);
       
  4611     CleanupClosePushL(messaging2);
       
  4612 
       
  4613     RBuf8 data;
       
  4614     CleanupClosePushL(data);
       
  4615 
       
  4616     RBuf8 data2;
       
  4617     CleanupClosePushL(data2);
       
  4618 
       
  4619     _LIT8(KMessage, "Merry christmas");
       
  4620     _LIT8(KMessage2, "Merry christmas2");
       
  4621     TBuf8<32> tmpName(KMessage);
       
  4622     TBuf8<32> tmpName2(KMessage2);
       
  4623     
       
  4624     TRequestStatus reqStatus;
       
  4625     RMobileSmsMessaging::TMobileSmsSendAttributesV1 smsAttr;
       
  4626     RMobileSmsMessaging::TMobileSmsSendAttributesV1Pckg smsAttrPckg(smsAttr);
       
  4627 
       
  4628     TRequestStatus reqStatus2;
       
  4629     RMobileSmsMessaging::TMobileSmsSendAttributesV1 smsAttr2;
       
  4630     RMobileSmsMessaging::TMobileSmsSendAttributesV1Pckg smsAttrPckg2(smsAttr2);
       
  4631 
       
  4632     TSendSmsDataAndAttributes dataAndAttr;
       
  4633     dataAndAttr.iIpc = EMobileSmsMessagingSendMessageNoFdnCheck; 
       
  4634     dataAndAttr.iAttributes = &smsAttr; 
       
  4635     dataAndAttr.iMsgData = &tmpName; 
       
  4636 
       
  4637     TMockLtsyData1<TSendSmsDataAndAttributes> expTsyData(dataAndAttr);           
       
  4638     expTsyData.SerialiseL(data);
       
  4639 
       
  4640     
       
  4641     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessageNoFdnCheck, data);
       
  4642 
       
  4643     messaging.SendMessageNoFdnCheck(reqStatus, tmpName, smsAttrPckg);
       
  4644 
       
  4645     messaging2.SendMessageNoFdnCheck(reqStatus2, tmpName2, smsAttrPckg2);
       
  4646 
       
  4647 
       
  4648     const TInt16 KMsgRef(25);
       
  4649     TInt16 msgRef(KMsgRef);
       
  4650     TBuf8<RMobileSmsMessaging::KGsmTpduSize> smsMsg(KMessage);
       
  4651     TMockLtsyData2<TInt16, TBuf8<RMobileSmsMessaging::KGsmTpduSize> > compTsyData(msgRef, smsMsg);
       
  4652     data.Close();
       
  4653     compTsyData.SerialiseL(data);
       
  4654     
       
  4655     iMockLTSY.CompleteL(EMobileSmsMessagingSendMessageNoFdnCheck, KErrNone, data);
       
  4656 
       
  4657    
       
  4658     User::WaitForRequest(reqStatus);
       
  4659     ASSERT_EQUALS(KErrNone, reqStatus.Int());
       
  4660 
       
  4661     User::WaitForRequest(reqStatus2);
       
  4662     ASSERT_EQUALS(KErrServerBusy, reqStatus2.Int());
       
  4663 
       
  4664     AssertMockLtsyStatusL();
       
  4665 
       
  4666     CleanupStack::PopAndDestroy(7);
       
  4667 
       
  4668     }
       
  4669 
       
  4670 
       
  4671 /**
       
  4672 @SYMTestCaseID BA-CTSY-SMSM-SSMNFC-0005
       
  4673 @SYMComponent  telephony_ctsy
       
  4674 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::SendMessageNoFdnCheck with timeout
       
  4675 @SYMTestPriority High
       
  4676 @SYMTestActions Invokes RMobileSmsMessaging::SendMessageNoFdnCheck and tests for timeout
       
  4677 @SYMTestExpectedResults Pass
       
  4678 @SYMTestType CT
       
  4679 */
       
  4680 void CCTsySmsMessagingFU::TestSendMessageNoFdnCheck0005L()
       
  4681     {
       
  4682 
       
  4683     OpenEtelServerL(EUseExtendedError);
       
  4684     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  4685     OpenPhoneL();
       
  4686 
       
  4687     RMobileSmsMessaging messaging;
       
  4688     TInt err = messaging.Open(iPhone);
       
  4689     ASSERT_EQUALS(KErrNone, err);
       
  4690     CleanupClosePushL(messaging);
       
  4691 
       
  4692     RBuf8 data;
       
  4693     CleanupClosePushL(data);
       
  4694 
       
  4695     _LIT8(KMessage, "Merry christmas");
       
  4696     TBuf8<32> tmpName(KMessage);
       
  4697     
       
  4698     TRequestStatus reqStatus;
       
  4699     RMobileSmsMessaging::TMobileSmsSendAttributesV1 smsAttr;
       
  4700     RMobileSmsMessaging::TMobileSmsSendAttributesV1Pckg smsAttrPckg(smsAttr);
       
  4701 
       
  4702     TSendSmsDataAndAttributes dataAndAttr;
       
  4703     dataAndAttr.iIpc = EMobileSmsMessagingSendMessageNoFdnCheck; 
       
  4704     dataAndAttr.iAttributes = &smsAttr; 
       
  4705     dataAndAttr.iMsgData = &tmpName; 
       
  4706 
       
  4707     TMockLtsyData1<TSendSmsDataAndAttributes> expTsyData(dataAndAttr);           
       
  4708     expTsyData.SerialiseL(data);
       
  4709 
       
  4710     iMockLTSY.ExpectL(EMobileSmsMessagingSendMessageNoFdnCheck, data);
       
  4711 
       
  4712     messaging.SendMessageNoFdnCheck(reqStatus, tmpName, smsAttrPckg);
       
  4713 
       
  4714     User::WaitForRequest(reqStatus);
       
  4715     ASSERT_EQUALS(KErrTimedOut, reqStatus.Int());
       
  4716 
       
  4717     AssertMockLtsyStatusL();
       
  4718 
       
  4719     CleanupStack::PopAndDestroy(3);
       
  4720 
       
  4721     }
       
  4722 
       
  4723 
       
  4724 
       
  4725 
       
  4726 
       
  4727 
       
  4728 /**
       
  4729 @SYMTestCaseID BA-CTSY-SMSM-SEMS-0001
       
  4730 @SYMComponent  telephony_ctsy
       
  4731 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::EnumerateMessageStores
       
  4732 @SYMTestPriority High
       
  4733 @SYMTestActions Invokes RMobileSmsMessaging::EnumerateMessageStores
       
  4734 @SYMTestExpectedResults Pass
       
  4735 @SYMTestType CT
       
  4736 */
       
  4737 void CCTsySmsMessagingFU::TestEnumerateMessageStores0001L()
       
  4738     {
       
  4739 
       
  4740     OpenEtelServerL(EUseExtendedError);
       
  4741     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  4742     OpenPhoneL();
       
  4743 
       
  4744     RMobileSmsMessaging messaging;
       
  4745     TInt err = messaging.Open(iPhone);
       
  4746     ASSERT_EQUALS(KErrNone, err);
       
  4747     CleanupClosePushL(messaging);
       
  4748 
       
  4749     TInt count;
       
  4750     
       
  4751     //-------------------------------------------------------------------------
       
  4752     // TEST C: Successful completion request of
       
  4753     // RMobileSmsMessaging::EnumerateMessageStores when result is not cached.
       
  4754     //-------------------------------------------------------------------------
       
  4755 
       
  4756     err = messaging.EnumerateMessageStores(count);
       
  4757     ASSERT_EQUALS(KErrNone, err);
       
  4758     ASSERT_TRUE(KSmsStoreNumber == count);
       
  4759 
       
  4760     AssertMockLtsyStatusL();
       
  4761     CleanupStack::PopAndDestroy(2, this); 
       
  4762     
       
  4763     }
       
  4764 
       
  4765 
       
  4766 
       
  4767 
       
  4768 /**
       
  4769 @SYMTestCaseID BA-CTSY-SMSM-SGC-0001
       
  4770 @SYMComponent  telephony_ctsy
       
  4771 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::GetCaps
       
  4772 @SYMTestPriority High
       
  4773 @SYMTestActions Invokes RMobileSmsMessaging::GetCaps
       
  4774 @SYMTestExpectedResults Pass
       
  4775 @SYMTestType CT
       
  4776 */
       
  4777 void CCTsySmsMessagingFU::TestGetCaps0001L()
       
  4778     {
       
  4779 
       
  4780     OpenEtelServerL(EUseExtendedError);
       
  4781     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  4782     OpenPhoneL();
       
  4783 
       
  4784     RMobileSmsMessaging messaging;
       
  4785     TInt err = messaging.Open(iPhone);
       
  4786     ASSERT_EQUALS(KErrNone, err);
       
  4787     CleanupClosePushL(messaging);
       
  4788 
       
  4789     RMobileSmsMessaging::TMobileSmsCapsV1 caps;
       
  4790     RMobileSmsMessaging::TMobileSmsCapsV1Pckg pckgCaps(caps);
       
  4791     
       
  4792 
       
  4793     //-------------------------------------------------------------------------
       
  4794     // TEST C: Successful completion request of
       
  4795     // RMobileSmsMessaging::GetCaps when result is not cached.
       
  4796     //-------------------------------------------------------------------------
       
  4797 
       
  4798     err = messaging.GetCaps(pckgCaps);
       
  4799 
       
  4800     ASSERT_EQUALS(KErrNone, err);
       
  4801 
       
  4802     ASSERT_TRUE( caps.iSmsMode == KSmsGsmModeCaps);
       
  4803     ASSERT_TRUE( caps.iSmsControl == KSmsControlCaps);
       
  4804 
       
  4805     AssertMockLtsyStatusL();
       
  4806     CleanupStack::PopAndDestroy(2, this);
       
  4807     
       
  4808     }
       
  4809 
       
  4810 
       
  4811 
       
  4812 /**
       
  4813 @SYMTestCaseID BA-CTSY-SMSM-SGC-0003
       
  4814 @SYMComponent  telephony_ctsy
       
  4815 @SYMTestCaseDesc Test support in CTSY for RMobileSmsMessaging::GetCaps with bad parameter data
       
  4816 @SYMTestPriority High
       
  4817 @SYMTestActions Invokes RMobileSmsMessaging::GetCaps with bad parameter data
       
  4818 @SYMTestExpectedResults Pass
       
  4819 @SYMTestType CT
       
  4820 */
       
  4821 void CCTsySmsMessagingFU::TestGetCaps0003L()
       
  4822     {
       
  4823     OpenEtelServerL(EUseExtendedError);
       
  4824     CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  4825     OpenPhoneL();
       
  4826 
       
  4827     RMobileSmsMessaging messaging;
       
  4828     TInt err = messaging.Open(iPhone);
       
  4829     ASSERT_EQUALS(KErrNone, err);
       
  4830     CleanupClosePushL(messaging);
       
  4831 
       
  4832     TInt8 badCaps;
       
  4833     TPckg<TInt8> badCapsPckg(badCaps);
       
  4834     
       
  4835     err = messaging.GetCaps(badCapsPckg);
       
  4836 
       
  4837     ASSERT_EQUALS(KErrArgument, err);
       
  4838 
       
  4839     AssertMockLtsyStatusL();
       
  4840     CleanupStack::PopAndDestroy(2, this);
       
  4841 
       
  4842     }
       
  4843 
       
  4844 
       
  4845 
       
  4846