telephonyserver/etelsimtoolkit/tetel/Te_EtelSat/TE_EtelSatpcmds1b.cpp
changeset 0 3553901f7fa8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserver/etelsimtoolkit/tetel/Te_EtelSat/TE_EtelSatpcmds1b.cpp	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,891 @@
+// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "Te_EtelSatTestStepBase.h"
+#include "TE_EtelSatpcmds1b.h"
+#include <utf.h>
+
+CTestSatPCmds1b::CTestSatPCmds1b()
+/** Each test step initialises it's own name
+*/
+	{
+	// store the name of this test case
+	// this is the name that is used by the script file
+	SetTestStepName(_L("TestSatPCmds1b"));
+	}
+
+enum TVerdict CTestSatPCmds1b::doTestStepL()
+	{
+	INFO_PRINTF1(_L("***********************************************"));
+	INFO_PRINTF1(_L("RSat Proactive Commands Functionality suite - 1"));
+	INFO_PRINTF1(_L("***********************************************"));
+
+	TInt ret=phone.Open(iTelServer,DSATTSY_PHONE_NAME);
+	TEST(ret==KErrNone);
+
+	ret=sat.Open(phone);
+    TEST(ret==KErrNone);
+
+	// local variables used throughout the sat tests
+	// Boundary error testing
+
+	// Select Item
+	RSat::TSelectItemV2* selectItem = new (ELeave) RSat::TSelectItemV2;
+	CleanupStack::PushL(selectItem);
+
+	RSat::TSelectItemV2Pckg* selectItemPckg = new (ELeave) RSat::TSelectItemV2Pckg(*selectItem);
+	CleanupStack::PushL(selectItemPckg);
+
+	TEST(selectItem->ExtensionId()== RSat::KSatV2);
+	TEST(selectItem->NumberOfItems()==0);
+	TEST(selectItem->IsRemoveMenu());
+
+	sat.NotifySelectItemPCmd(reqStatus, *selectItemPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(selectItem->MenuContent()==DSATTSY_ITEMS_ACTIONS_AND_ICONS);
+	TEST(selectItem->NumberOfItems()==0x03);
+	TEST(selectItem->iPreference==DSATTSY_SELECTION_PREFERENCE);
+
+	index=1;
+	TEST(selectItem->GetItem(index++,item,action,icon)==KErrNone);
+
+	TEST(item.iItemId==0x01);
+	TEST(item.iItemString==DSATTSY_ITEM1);
+	TEST(action==0x01);
+	TEST(icon==0x01);
+
+	TEST(selectItem->GetItem(index++,item,action,icon)==KErrNone);
+	TEST(item.iItemId==0x02);
+	TEST(item.iItemString==DSATTSY_ITEM2);
+	TEST(action==0x02);
+	TEST(icon==0x02);
+
+	TEST(selectItem->GetItem(index++,item,action,icon)==KErrNone);
+	TEST(item.iItemId==0x03);
+	TEST(item.iItemString==DSATTSY_ITEM3);
+	TEST(action==0x03);
+	TEST(icon==0x03);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySelectItemPCmd with RSat::TSelectItemV2 passed"),iTestCount++);
+
+	// Select Item Cancel
+	sat.NotifySelectItemPCmd(reqStatus,*selectItemPckg);
+	sat.CancelAsyncRequest(ESatNotifySelectItemPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySelectItemPCmdCancel with RSat::TSelectItemV2 passed"),iTestCount++);
+
+	// Select Item with RSat::TSelectItemV5
+
+	// Text attribute parameters used for tests
+	RSat::TTextAttribute textAttribute1, textAttribute2, textAttribute3, textAttribute4;
+
+	textAttribute1.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+	const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+	textAttribute1.iTextAttributeData.Append(textAttributeData, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+
+	textAttribute2.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS2;
+	const TUint8 textAttributeData2[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA2;
+	textAttribute2.iTextAttributeData.Append(textAttributeData2, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+
+	textAttribute3.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS3;
+	const TUint8 textAttributeData3[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA3;
+	textAttribute3.iTextAttributeData.Append(textAttributeData3, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+
+	textAttribute4.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS4;
+	const TUint8 textAttributeData4[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA4;
+	textAttribute4.iTextAttributeData.Append(textAttributeData4, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+
+	RSat::TSelectItemV5* selectItemV5 = new (ELeave) RSat::TSelectItemV5;
+	CleanupStack::PushL(selectItemV5);
+
+	TEST(selectItemV5->ExtensionId()== RSat::KSatV5);
+	TEST(selectItemV5->NumberOfItems()==0);
+	TEST(selectItemV5->IsRemoveMenu());
+
+	TEST(selectItemV5->iAlphaId.iStatus==RSat::EAlphaIdNotSet);
+	TEST(selectItemV5->iHelp==RSat::EHelpNotSet);
+	TEST(selectItemV5->iDefaultItemId==0);
+	TEST(selectItemV5->iIconId.iQualifier==RSat::EIconQualifierNotSet);
+	TEST(selectItemV5->iIconId.iIdentifier==0);
+	TEST(selectItemV5->iIconListQualifier==RSat::EIconQualifierNotSet);
+	TEST(selectItemV5->iPreference==RSat::ESelectionPreferenceNotSet);
+	TEST(selectItemV5->iTextAttribute.iStatus == RSat::ETextAttributeNotSet);
+
+	RSat::TSelectItemV5Pckg* selectItemV5Pckg = new (ELeave) RSat::TSelectItemV5Pckg(*selectItemV5);
+	CleanupStack::PushL(selectItemV5Pckg);
+
+	sat.NotifySelectItemPCmd(reqStatus, *selectItemV5Pckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(selectItemV5->MenuContent()==DSATTSY_ITEMS_WITH_TEXT_ATTRIBUTES_ACTIONS_AND_ICONS);
+	TEST(selectItemV5->NumberOfItems()==0x03);
+	TEST(selectItemV5->iAlphaId.iStatus==DSATTSY_ALPHA_ID1_STATUS);
+	TEST(selectItemV5->iAlphaId.iAlphaId==DSATTSY_ALPHA_ID1);
+	TEST(selectItemV5->iHelp==DSATTSY_HELP);
+	TEST(selectItemV5->iDefaultItemId==DSATTSY_DEFAULT_ITEM);
+	TEST(selectItemV5->iIconId.iQualifier==DSATTSY_ICON_QUALIFIER1);
+	TEST(selectItemV5->iIconId.iIdentifier==DSATTSY_ICON_ID1);
+	TEST(selectItemV5->iIconListQualifier==DSATTSY_ICON_QUALIFIER2);
+	TEST(selectItemV5->iPreference==DSATTSY_SELECTION_PREFERENCE);
+
+	TEST(selectItemV5->iTextAttribute.iStatus == textAttribute1.iStatus);
+	TEST(selectItemV5->iTextAttribute.iTextAttributeData == textAttribute1.iTextAttributeData);
+
+	index = 1;
+	TEST(selectItemV5->GetItem(index++, item, iTextAttribute, action, icon)==KErrNone);
+	TEST(item.iItemId==0x01);
+	TEST(item.iItemString==DSATTSY_ITEM1);
+	TEST(iTextAttribute.iStatus == textAttribute1.iStatus);
+	TEST(iTextAttribute.iTextAttributeData == textAttribute1.iTextAttributeData);
+	TEST(icon==0x01);
+	TEST(action==0x01);
+
+	TEST(selectItemV5->GetItem(index++, item, iTextAttribute, action, icon)==KErrNone);
+	TEST(item.iItemId==0x02);
+	TEST(item.iItemString==DSATTSY_ITEM2);
+	TEST(iTextAttribute.iStatus == textAttribute2.iStatus);
+	TEST(iTextAttribute.iTextAttributeData == textAttribute2.iTextAttributeData);
+	TEST(icon==0x02);
+	TEST(action==0x02);
+
+	TEST(selectItemV5->GetItem(index++, item, iTextAttribute, action, icon)==KErrNone);
+	TEST(item.iItemId==0x03);
+	TEST(item.iItemString==DSATTSY_ITEM3);
+	TEST(iTextAttribute.iStatus == textAttribute3.iStatus);
+	TEST(iTextAttribute.iTextAttributeData == textAttribute3.iTextAttributeData);
+	TEST(icon==0x03);
+	TEST(action==0x03);
+
+	TEST(selectItemV5->GetItem(index,item, iTextAttribute, action)==KErrNotFound);
+
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySelectItemPCmd with RSat::TSelectItemV5 passed"),iTestCount++);
+
+	// Select Item Cancel with RSat::TSelectItemV5
+	sat.NotifySelectItemPCmd(reqStatus,*selectItemV5Pckg);
+	sat.CancelAsyncRequest(ESatNotifySelectItemPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySelectItemPCmdCancel with RSat::TSelectItemV5 passed"),iTestCount++);
+
+	// Select Item Terminal Response
+	sat.NotifySelectItemPCmd(reqStatus,*selectItemPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	RSat::TSelectItemRspV1* selectItemRsp = new (ELeave) RSat::TSelectItemRspV1;
+	CleanupStack::PushL(selectItemRsp);
+	RSat::TSelectItemRspV1Pckg* selectItemRspPckg = new (ELeave) RSat::TSelectItemRspV1Pckg(*selectItemRsp);
+	CleanupStack::PushL(selectItemRspPckg);
+
+	// Testing that PCmdNumber = 0 is not supported as out of range
+	TEST(selectItemRsp->SetPCmdNumber(0)==KErrNotSupported);
+
+	selectItemRsp->SetPCmdNumber(selectItem->PCmdNumber());
+	selectItemRsp->iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
+	selectItemRsp->iInfoType=DSATTSY_PCMD_RSP_ITEM_ID;
+	selectItemRsp->iAdditionalInfo=DSATTSY_RSP_ITEM_ID;
+
+	sat.TerminalRsp(reqStatus,RSat::ESelectItem,*selectItemRspPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Select Item - passed"),iTestCount++);
+
+	CleanupStack::PopAndDestroy(6, selectItem);
+
+	// Send Sm with V1
+	RSat::TSendSmV1* sendSm = new (ELeave) RSat::TSendSmV1;
+	CleanupStack::PushL(sendSm);
+	RSat::TSendSmV1Pckg* sendSmPckg = new (ELeave) RSat::TSendSmV1Pckg(*sendSm);
+	CleanupStack::PushL(sendSmPckg);
+
+	sat.NotifySendSmPCmd(reqStatus,*sendSmPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(sendSm->PCmdNumber()==DSATTSY_SEND_SM_NUMBER);
+
+	TEST(sendSm->iAlphaId.iStatus==DSATTSY_ALPHA_ID1_STATUS);
+	TEST(sendSm->iAlphaId.iAlphaId==DSATTSY_ALPHA_ID1);
+	TEST(sendSm->iAddress.iTypeOfNumber==DSATTSY_TON);
+	TEST(sendSm->iAddress.iNumberPlan==DSATTSY_NPI);
+	TEST(sendSm->iAddress.iTelNumber==DSATTSY_TEL_NUMBER);
+	TEST(sendSm->iSmsTpdu==DSATTSY_SMS_TPDU);
+	TEST(sendSm->iIconId.iIdentifier==DSATTSY_ICON_ID1);
+	TEST(sendSm->iIconId.iQualifier==DSATTSY_ICON_QUALIFIER1);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySendSmPCmd with RSat::TSendSmV1 passed"),iTestCount++);
+
+	// Send Sm Cancel with V1
+	sat.NotifySendSmPCmd(reqStatus,*sendSmPckg);
+	sat.CancelAsyncRequest(ESatNotifySendSmPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySendSmPCmdCancel with RSat::TSendSmV1 passed"),iTestCount++);
+
+	// Send Sm with V5
+	RSat::TSendSmV5* sendSmV5 = new (ELeave) RSat::TSendSmV5;
+	CleanupStack::PushL(sendSmV5);
+	RSat::TSendSmV5Pckg* sendSmV5Pckg = new (ELeave) RSat::TSendSmV5Pckg(*sendSmV5);
+	CleanupStack::PushL(sendSmV5Pckg);
+
+	TEST(sendSmV5->ExtensionId() == RSat::KSatV5);
+	TEST(sendSmV5->iTextAttribute.iStatus == RSat::ETextAttributeNotSet);
+
+	sat.NotifySendSmPCmd(reqStatus, *sendSmV5Pckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(sendSmV5->PCmdNumber()==DSATTSY_SEND_SM_NUMBER);
+
+	TEST(sendSmV5->iAlphaId.iStatus==DSATTSY_ALPHA_ID1_STATUS);
+	TEST(sendSmV5->iAlphaId.iAlphaId==DSATTSY_ALPHA_ID1);
+	TEST(sendSmV5->iAddress.iTypeOfNumber==DSATTSY_TON);
+	TEST(sendSmV5->iAddress.iNumberPlan==DSATTSY_NPI);
+	TEST(sendSmV5->iAddress.iTelNumber==DSATTSY_TEL_NUMBER);
+	TEST(sendSmV5->iSmsTpdu==DSATTSY_SMS_TPDU);
+	TEST(sendSmV5->iIconId.iIdentifier==DSATTSY_ICON_ID1);
+	TEST(sendSmV5->iIconId.iQualifier==DSATTSY_ICON_QUALIFIER1);
+
+	// V5 parameters
+
+	TEST(sendSmV5->iTextAttribute.iStatus == textAttribute1.iStatus);
+	TEST(sendSmV5->iTextAttribute.iTextAttributeData == textAttribute1.iTextAttributeData);
+
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySendSmPCmd with RSat::TSendSmV5 passed"),iTestCount++);
+
+	// Send Sm Cancel with V5
+	sat.NotifySendSmPCmd(reqStatus,*sendSmV5Pckg);
+	sat.CancelAsyncRequest(ESatNotifySendSmPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySendSmPCmdCancel with RSat::TSendSmV5 passed"),iTestCount++);
+
+	// Send Sm Terminal Rsp
+	sat.NotifySendSmPCmd(reqStatus,*sendSmPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	RSat::TSendSmRspV1* sendSmRsp = new (ELeave) RSat::TSendSmRspV1;
+	CleanupStack::PushL(sendSmRsp);
+	RSat::TSendSmRspV1Pckg* sendSmRspPckg = new (ELeave) RSat::TSendSmRspV1Pckg(*sendSmRsp);
+	CleanupStack::PushL(sendSmRspPckg);
+
+	sendSmRsp->SetPCmdNumber(sendSm->PCmdNumber());
+	sendSmRsp->iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
+	sendSmRsp->iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
+	sendSmRsp->iAdditionalInfo=DSATTSY_NULL_BUF;
+
+	sat.TerminalRsp(reqStatus,RSat::ESendSm,*sendSmRspPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySendSmPCmd - Send Sm - passed"),iTestCount++);
+
+	CleanupStack::PopAndDestroy(6, sendSm);
+
+	// Send Message No Logging
+	RSat::TSatSmsV1* satSms = new (ELeave) RSat::TSatSmsV1;
+	CleanupStack::PushL(satSms);
+	RSat::TSatSmsV1Pckg* satSmsPckg = new (ELeave) RSat::TSatSmsV1Pckg(*satSms);
+	CleanupStack::PushL(satSmsPckg);
+
+	satSms->iBuf=DSATTSY_SMS_TPDU;
+	satSms->iServiceCenter.iNumberPlan=DSATTSY_NPI;
+	satSms->iServiceCenter.iTypeOfNumber=DSATTSY_TON;
+	satSms->iServiceCenter.iTelNumber=DSATTSY_TEL_NUMBER;
+	TUint16 smsRef;
+
+	sat.SendMessageNoLogging(reqStatus,*satSmsPckg,smsRef);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	TEST(smsRef==DSATTSY_SMS_REF);
+	INFO_PRINTF2(_L("Test %d - RSat::SendMessageNoLogging passed"),iTestCount++);
+
+	// Send Message No Logging Cancel
+	sat.SendMessageNoLogging(reqStatus,*satSmsPckg,smsRef);
+	sat.CancelAsyncRequest(ESatSendMessageNoLogging);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::SendMessageNoLoggingCancel passed"),iTestCount++);
+
+	CleanupStack::PopAndDestroy(2, satSms);
+
+	// Send Ss
+	RSat::TSendSsV1* sendSs = new (ELeave) RSat::TSendSsV1;
+	CleanupStack::PushL(sendSs);
+	RSat::TSendSsV1Pckg* sendSsPckg = new (ELeave) RSat::TSendSsV1Pckg(*sendSs);
+	CleanupStack::PushL(sendSsPckg);
+
+	sat.NotifySendSsPCmd(reqStatus,*sendSsPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(sendSs->PCmdNumber()==DSATTSY_SEND_SS_NUMBER);
+
+	TEST(sendSs->iAlphaId.iStatus==DSATTSY_ALPHA_ID1_STATUS);
+	TEST(sendSs->iAlphaId.iAlphaId==DSATTSY_ALPHA_ID1);
+	TEST(sendSs->iSsString.iTypeOfNumber==DSATTSY_TON);
+	TEST(sendSs->iSsString.iNumberPlan==DSATTSY_NPI);
+	TEST(sendSs->iSsString.iSsString==DSATTSY_SS_STRING);
+	TEST(sendSs->iIconId.iIdentifier==DSATTSY_ICON_ID1);
+	TEST(sendSs->iIconId.iQualifier==DSATTSY_ICON_QUALIFIER1);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySendSsPCmd passed"),iTestCount++);
+
+	// Send Ss Cancel
+	sat.NotifySendSsPCmd(reqStatus,*sendSsPckg);
+	sat.CancelAsyncRequest(ESatNotifySendSsPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySendSsPCmdCancel passed"),iTestCount++);
+
+	// Send Ss Terminal Rsp
+	sat.NotifySendSsPCmd(reqStatus,*sendSsPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	RSat::TSendSsRspV2* sendSsRsp = new (ELeave) RSat::TSendSsRspV2;
+	CleanupStack::PushL(sendSsRsp);
+	RSat::TSendSsRspV2Pckg* sendSsRspPckg = new (ELeave) RSat::TSendSsRspV2Pckg(*sendSsRsp);
+	CleanupStack::PushL(sendSsRspPckg);
+
+	sendSsRsp->SetPCmdNumber(sendSs->PCmdNumber());
+
+	RSat::TCallControlV1* ccRequestedAction = new (ELeave) RSat::TCallControlV1;
+	CleanupStack::PushL(ccRequestedAction);
+
+	sendSsRsp->iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
+	sendSsRsp->iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
+	sendSsRsp->iAdditionalInfo=DSATTSY_NULL_BUF;
+
+	sendSsRsp->iUssdString.iUssdString=DSATTSY_DEFAULT_TEXT;
+	sendSsRsp->iUssdString.iDcs=DSATTSY_DCS;
+
+	RSat::TCallSetUpParams* params = new (ELeave) RSat::TCallSetUpParams;
+	CleanupStack::PushL(params);
+
+	params->iCcp1					=DSATTSY_CCP1;
+	params->iSubAddress				=DSATTSY_SUBADDRESS;
+	params->iCcp2					=DSATTSY_CCP2;
+	params->iAddress.iTypeOfNumber	=DSATTSY_TON;
+	params->iAddress.iNumberPlan		=DSATTSY_NPI;
+	params->iAddress.iTelNumber		=DSATTSY_TEL_NUMBER;
+
+	RSat::TAlphaId* nullBuf = new (ELeave) RSat::TAlphaId;
+	CleanupStack::PushL(nullBuf);
+
+	nullBuf->iAlphaId=DSATTSY_NULL_BUF;
+	nullBuf->iStatus=DSATTSY_ALPHAID_STATUS;
+	ccRequestedAction->SetCcGeneralResult(DSATTSY_CC_RESULT);
+	ccRequestedAction->SetAlphaId(DSATTSY_NO_ALPHAID, *nullBuf);
+	ccRequestedAction->SetCallSetUpDetails(*params);
+	ccRequestedAction->SetBCRepeatIndicator(RSat::EBCSequentialMode);
+
+	sendSsRsp->iCcRequestedAction=*ccRequestedAction;
+
+	sendSsRsp->iGeneralResult2=DSATTSY_PCMD_RESULT_SUCCESS;
+	sendSsRsp->iInfoType2=DSATTSY_PCMD_RSP_NO_INFO;
+	sendSsRsp->iAdditionalInfo2=DSATTSY_NULL_BUF;
+
+	sat.TerminalRsp(reqStatus,RSat::ESendSs,*sendSsRspPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp -Send Ss - passed"),iTestCount++);
+
+	// Send Ussd
+	RSat::TSendUssdV1* sendUssd = new (ELeave) RSat::TSendUssdV1;
+	CleanupStack::PushL(sendUssd);
+	RSat::TSendUssdV1Pckg* sendUssdPckg = new (ELeave) RSat::TSendUssdV1Pckg(*sendUssd);
+	CleanupStack::PushL(sendUssdPckg);
+
+	sat.NotifySendUssdPCmd(reqStatus,*sendUssdPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(sendUssd->PCmdNumber()==DSATTSY_SEND_USSD_NUMBER);
+
+	TEST(sendUssd->iAlphaId.iStatus==DSATTSY_ALPHA_ID1_STATUS);
+	TEST(sendUssd->iAlphaId.iAlphaId==DSATTSY_ALPHA_ID1);
+	TEST(sendUssd->iUssdString.iDcs==DSATTSY_DCS);
+	TEST(sendUssd->iUssdString.iUssdString==DSATTSY_USSD_STRING);
+	TEST(sendUssd->iIconId.iIdentifier==DSATTSY_ICON_ID1);
+	TEST(sendUssd->iIconId.iQualifier==DSATTSY_ICON_QUALIFIER1);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySendUssdPCmd passed"),iTestCount++);
+
+	// Send Ussd Cancel
+	sat.NotifySendUssdPCmd(reqStatus,*sendUssdPckg);
+	sat.CancelAsyncRequest(ESatNotifySendUssdPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySendUssdPCmdCancel passed"), iTestCount++);
+
+	// Send Ussd Terminal Rsp
+	sat.NotifySendUssdPCmd(reqStatus,*sendUssdPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	RSat::TSendUssdRspV1* sendUssdRsp = new (ELeave) RSat::TSendUssdRspV1;
+	CleanupStack::PushL(sendUssdRsp);
+	RSat::TSendUssdRspV1Pckg* sendUssdRspPckg = new (ELeave) RSat::TSendUssdRspV1Pckg(*sendUssdRsp);
+	CleanupStack::PushL(sendUssdRspPckg);
+
+	sendUssdRsp->SetPCmdNumber(sendUssd->PCmdNumber());
+
+	sendUssdRsp->iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
+	sendUssdRsp->iInfoType=DSATTSY_PCMD_RSP_TEXT_STRING;
+	sendUssdRsp->iAdditionalInfo=DSATTSY_NETWORK_TEXT_STRING;
+
+	sendUssdRsp->iCcRequestedAction=*ccRequestedAction;
+
+	sendUssdRsp->iGeneralResult2=DSATTSY_PCMD_RESULT_SUCCESS;
+	sendUssdRsp->iInfoType2=DSATTSY_PCMD_RSP_NO_INFO;
+	sendUssdRsp->iAdditionalInfo2=DSATTSY_NULL_BUF;
+
+	sat.TerminalRsp(reqStatus,RSat::ESendUssd,*sendUssdRspPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Send USSD - passed"),iTestCount++);
+
+	// Set Up Call
+	RSat::TSetUpCallV1* setUpCall = new (ELeave) RSat::TSetUpCallV1;
+	CleanupStack::PushL(setUpCall);
+	RSat::TSetUpCallV1Pckg* setUpCallPckg = new (ELeave) RSat::TSetUpCallV1Pckg(*setUpCall);
+	CleanupStack::PushL(setUpCallPckg);
+
+	sat.NotifySetUpCallPCmd(reqStatus,*setUpCallPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(setUpCall->PCmdNumber()==DSATTSY_SET_UP_CALL_NUMBER);
+
+	TEST(setUpCall->iType==DSATTSY_SET_UP_CALL_TYPE);
+	TEST(setUpCall->iAlphaIdConfirmationPhase.iStatus==DSATTSY_ALPHA_ID1_STATUS);
+	TEST(setUpCall->iAlphaIdConfirmationPhase.iAlphaId==DSATTSY_ALPHA_ID1);
+	TEST(setUpCall->iIconIdConfirmationPhase.iIdentifier==DSATTSY_ICON_ID1);
+	TEST(setUpCall->iIconIdConfirmationPhase.iQualifier==DSATTSY_ICON_QUALIFIER1);
+	TEST(setUpCall->iAddress.iTypeOfNumber==DSATTSY_TON);
+	TEST(setUpCall->iAddress.iNumberPlan==DSATTSY_NPI);
+	TEST(setUpCall->iAddress.iTelNumber==DSATTSY_TEL_NUMBER);
+	TEST(setUpCall->iCapabilityConfigParams==DSATTSY_CCP1);
+	TEST(setUpCall->iSubAddress==DSATTSY_SUBADDRESS);
+	TEST(setUpCall->iDuration.iTimeUnit==DSATTSY_TIME_UNIT);
+	TEST(setUpCall->iDuration.iNumOfUnits==DSATTSY_NUM_OF_UNITS);
+	TEST(setUpCall->iAlphaIdCallSetUpPhase.iStatus==DSATTSY_ALPHA_ID2_STATUS);
+	TEST(setUpCall->iAlphaIdCallSetUpPhase.iAlphaId==DSATTSY_ALPHA_ID2);
+	TEST(setUpCall->iIconIdCallSetUpPhase.iIdentifier==DSATTSY_ICON_ID2);
+	TEST(setUpCall->iIconIdCallSetUpPhase.iQualifier==DSATTSY_ICON_QUALIFIER2);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySetUpCallPCmd RSat::TSetUpCallV1 passed"),iTestCount++);
+
+	// Set Up Call Cancel
+	sat.NotifySetUpCallPCmd(reqStatus,*setUpCallPckg);
+	sat.CancelAsyncRequest(ESatNotifySetUpCallPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySetUpCallPCmdCancel RSat::TSetUpCallV1 passed"), iTestCount++);
+
+	// Set Up Call
+	RSat::TSetUpCallV5* setUpCallV5 = new (ELeave) RSat::TSetUpCallV5;
+	CleanupStack::PushL(setUpCallV5);
+	RSat::TSetUpCallV5Pckg* setUpCallV5Pckg = new (ELeave) RSat::TSetUpCallV5Pckg(*setUpCallV5);
+	CleanupStack::PushL(setUpCallV5Pckg);
+
+	TEST(setUpCallV5->ExtensionId() == RSat::KSatV5);
+	TEST(setUpCallV5->iTextAttributeConfirmationPhase.iStatus == RSat::ETextAttributeNotSet);
+	TEST(setUpCallV5->iTextAttributeCallSetUpPhase.iStatus == RSat::ETextAttributeNotSet);
+
+	sat.NotifySetUpCallPCmd(reqStatus,*setUpCallV5Pckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(setUpCallV5->PCmdNumber()==DSATTSY_SET_UP_CALL_NUMBER);
+
+	TEST(setUpCallV5->iType==DSATTSY_SET_UP_CALL_TYPE);
+	TEST(setUpCallV5->iAlphaIdConfirmationPhase.iStatus==DSATTSY_ALPHA_ID1_STATUS);
+	TEST(setUpCallV5->iAlphaIdConfirmationPhase.iAlphaId==DSATTSY_ALPHA_ID1);
+	TEST(setUpCallV5->iIconIdConfirmationPhase.iIdentifier==DSATTSY_ICON_ID1);
+	TEST(setUpCallV5->iIconIdConfirmationPhase.iQualifier==DSATTSY_ICON_QUALIFIER1);
+	TEST(setUpCallV5->iAddress.iTypeOfNumber==DSATTSY_TON);
+	TEST(setUpCallV5->iAddress.iNumberPlan==DSATTSY_NPI);
+	TEST(setUpCallV5->iAddress.iTelNumber==DSATTSY_TEL_NUMBER);
+	TEST(setUpCallV5->iCapabilityConfigParams==DSATTSY_CCP1);
+	TEST(setUpCallV5->iSubAddress==DSATTSY_SUBADDRESS);
+	TEST(setUpCallV5->iDuration.iTimeUnit==DSATTSY_TIME_UNIT);
+	TEST(setUpCallV5->iDuration.iNumOfUnits==DSATTSY_NUM_OF_UNITS);
+	TEST(setUpCallV5->iAlphaIdCallSetUpPhase.iStatus==DSATTSY_ALPHA_ID2_STATUS);
+	TEST(setUpCallV5->iAlphaIdCallSetUpPhase.iAlphaId==DSATTSY_ALPHA_ID2);
+	TEST(setUpCallV5->iIconIdCallSetUpPhase.iIdentifier==DSATTSY_ICON_ID2);
+	TEST(setUpCallV5->iIconIdCallSetUpPhase.iQualifier==DSATTSY_ICON_QUALIFIER2);
+	// Version 5 parameters
+	TEST(setUpCallV5->iTextAttributeConfirmationPhase.iStatus == textAttribute1.iStatus);
+	TEST(setUpCallV5->iTextAttributeConfirmationPhase.iTextAttributeData == textAttribute1.iTextAttributeData);
+	TEST(setUpCallV5->iTextAttributeCallSetUpPhase.iStatus == textAttribute1.iStatus);
+	TEST(setUpCallV5->iTextAttributeCallSetUpPhase.iTextAttributeData == textAttribute1.iTextAttributeData);
+
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySetUpCallPCmd with RSat::TSetUpCallV5 passed"),iTestCount++);
+
+	// Set Up Call Cancel
+	sat.NotifySetUpCallPCmd(reqStatus,*setUpCallV5Pckg);
+	sat.CancelAsyncRequest(ESatNotifySetUpCallPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySetUpCallPCmdCancel with RSat::TSetUpCallV5 passed"), iTestCount++);
+
+	// Set Up Call Terminal Rsp
+	sat.NotifySetUpCallPCmd(reqStatus,*setUpCallPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	RSat::TSetUpCallRspV2* setUpCallRspV2 = new (ELeave) RSat::TSetUpCallRspV2;
+	CleanupStack::PushL(setUpCallRspV2);
+	RSat::TSetUpCallRspV2Pckg* setUpCallRspV2Pckg = new (ELeave) RSat::TSetUpCallRspV2Pckg(*setUpCallRspV2);
+	CleanupStack::PushL(setUpCallRspV2Pckg);
+
+	setUpCallRspV2->SetPCmdNumber(DSATTSY_SET_UP_CALL_NUMBER);
+	setUpCallRspV2->iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
+	setUpCallRspV2->iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
+	setUpCallRspV2->iAdditionalInfo=DSATTSY_NULL_BUF;
+	setUpCallRspV2->iCcRequestedAction=*ccRequestedAction;
+
+	setUpCallRspV2->iGeneralResult2=DSATTSY_PCMD_RESULT_SUCCESS;
+	setUpCallRspV2->iInfoType2=DSATTSY_PCMD_RSP_NO_INFO;
+	setUpCallRspV2->iAdditionalInfo2=DSATTSY_NULL_BUF;
+
+	setUpCallRspV2->iUssdString.iUssdString=DSATTSY_DEFAULT_TEXT;
+	setUpCallRspV2->iUssdString.iDcs=DSATTSY_DCS;
+
+	sat.TerminalRsp(reqStatus,RSat::ESetUpCall,*setUpCallRspV2Pckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Set Up Call passed"),iTestCount++);
+
+	CleanupStack::PopAndDestroy(17, sendSs);
+
+	// Refresh
+	RSat::TRefreshV2* refresh = new (ELeave) RSat::TRefreshV2;
+	CleanupStack::PushL(refresh);
+	RSat::TRefreshV2Pckg* refreshPckg = new (ELeave) RSat::TRefreshV2Pckg(*refresh);
+	CleanupStack::PushL(refreshPckg);
+
+	sat.NotifyRefreshPCmd(reqStatus,*refreshPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(refresh->PCmdNumber()==DSATTSY_REFRESH_NUMBER);
+
+	TEST(refresh->iType==DSATTSY_REFRESH_TYPE);
+	TEST(refresh->iFileList.Length()==2);
+ 	TEST(refresh->iFileList[0]==DSATTSY_REFRESH_ADN_EF);
+ 	TEST(refresh->iFileList[1]==DSATTSY_REFRESH_FDN_EF);
+	TEST(refresh->iAid==DSATTSY_AID);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifyRefreshPCmd passed"),iTestCount++);
+
+	// Refresh Cancel
+	sat.NotifyRefreshPCmd(reqStatus,*refreshPckg);
+	sat.CancelAsyncRequest(ESatNotifyRefreshPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifyRefreshPCmdCancel passed"),iTestCount++);
+
+	// Refresh Required
+	sat.NotifyRefreshRequired(reqStatus);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifyRefreshRequired passed"),iTestCount++);
+
+	// Refresh Required Cancel
+	sat.NotifyRefreshRequired(reqStatus);
+	sat.CancelAsyncRequest(ESatNotifyRefreshRequired);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifyRefreshRequiredCancel passed"),iTestCount++);
+
+	// Refresh Required
+	sat.NotifyRefreshRequired(reqStatus,*refreshPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(refresh->iType==DSATTSY_REFRESH_TYPE);
+	TEST(refresh->iFileList.Length()==2);
+ 	TEST(refresh->iFileList[0]==DSATTSY_REFRESH_FDN_EF);
+ 	TEST(refresh->iFileList[1]==DSATTSY_REFRESH_ADN_EF);
+	TEST(refresh->iAid==DSATTSY_AID);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifyRefreshRequiredParam passed"),iTestCount++);
+
+	sat.NotifyRefreshRequired(reqStatus,*refreshPckg);
+	sat.CancelAsyncRequest(ESatNotifyRefreshRequiredParam);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifyRefreshRequiredParamCancel passed"),iTestCount++);
+
+	// Refresh Terminal Response
+	sat.NotifyRefreshPCmd(reqStatus,*refreshPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	RSat::TRefreshRspV1* refreshRsp = new (ELeave) RSat::TRefreshRspV1;
+	CleanupStack::PushL(refreshRsp);
+	RSat::TRefreshRspV1Pckg* refreshRspPckg = new (ELeave) RSat::TRefreshRspV1Pckg(*refreshRsp);
+	CleanupStack::PushL(refreshRspPckg);
+
+	refreshRsp->SetPCmdNumber(refresh->PCmdNumber());
+	refreshRsp->iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
+	refreshRsp->iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
+	refreshRsp->iAdditionalInfo=DSATTSY_NULL_BUF;
+
+	sat.TerminalRsp(reqStatus,RSat::ERefresh,*refreshRspPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Refresh - passed"),iTestCount++);
+
+	// Refresh Required Response
+	RSat::TRefreshRspV1* refreshAllowedRsp = new (ELeave) RSat::TRefreshRspV1;
+	CleanupStack::PushL(refreshAllowedRsp);
+	RSat::TRefreshRspV1Pckg* refreshAllowedRspPckg = new (ELeave) RSat::TRefreshRspV1Pckg(*refreshAllowedRsp);
+	CleanupStack::PushL(refreshAllowedRspPckg);
+
+	refreshAllowedRsp->iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
+	refreshAllowedRsp->iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
+	refreshAllowedRsp->iAdditionalInfo=DSATTSY_NULL_BUF;
+
+	sat.RefreshAllowed(reqStatus, *refreshAllowedRspPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	INFO_PRINTF2(_L("Test %d - RSat::RefreshAllowed - passed"),iTestCount++);
+
+	// Refresh Required Response Cancel
+	sat.RefreshAllowed(reqStatus, *refreshAllowedRspPckg);
+	sat.CancelAsyncRequest(ESatRefreshAllowed);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::RefreshAllowedCancel passed"),iTestCount++);
+
+	CleanupStack::PopAndDestroy(6, refresh);
+
+	// Set Up Event List
+	RSat::TSetUpEventListV1* setUpEventList = new (ELeave) RSat::TSetUpEventListV1;
+	CleanupStack::PushL(setUpEventList);
+	RSat::TSetUpEventListV1Pckg* setUpEventListPckg = new (ELeave) RSat::TSetUpEventListV1Pckg(*setUpEventList);
+	CleanupStack::PushL(setUpEventListPckg);
+
+	sat.NotifySetUpEventListPCmd(reqStatus,*setUpEventListPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(setUpEventList->PCmdNumber()==DSATTSY_SET_UP_EVENT_LIST_NUMBER);
+
+	TEST(setUpEventList->iType==DSATTSY_SET_UP_EVENT_LIST_TYPE);
+	TEST(setUpEventList->iEvents==DSATTSY_EVENTS);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySetUpEventList passed"),iTestCount++);
+
+	// Set Up Event List Cancel
+	sat.NotifySetUpEventListPCmd(reqStatus,*setUpEventListPckg);
+	sat.CancelAsyncRequest(ESatNotifySetUpEventListPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySetUpEventListPCmdCancel passed"),iTestCount++);
+
+	// Set Up Event List Terminal Response
+	sat.NotifySetUpEventListPCmd(reqStatus,*setUpEventListPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	RSat::TSetUpEventListRspV1* setUpEventListRsp = new (ELeave) RSat::TSetUpEventListRspV1;
+	CleanupStack::PushL(setUpEventListRsp);
+	RSat::TSetUpEventListRspV1Pckg* setUpEventListRspPckg = new (ELeave) RSat::TSetUpEventListRspV1Pckg(*setUpEventListRsp);
+	CleanupStack::PushL(setUpEventListRspPckg);
+
+	setUpEventListRsp->SetPCmdNumber(setUpEventList->PCmdNumber());
+	setUpEventListRsp->iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
+	setUpEventListRsp->iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
+	setUpEventListRsp->iAdditionalInfo=DSATTSY_NULL_BUF;
+
+	sat.TerminalRsp(reqStatus,RSat::ESetUpEventList,*setUpEventListRspPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Set Up Event List - passed"),iTestCount++);
+
+	CleanupStack::PopAndDestroy(4, setUpEventList);
+
+	// Set Up Idle Mode Text with V1
+	RSat::TSetUpIdleModeTextV1* setUpIdleModeText = new (ELeave) RSat::TSetUpIdleModeTextV1;
+	CleanupStack::PushL(setUpIdleModeText);
+	RSat::TSetUpIdleModeTextV1Pckg* setUpIdleModeTextPckg = new (ELeave) RSat::TSetUpIdleModeTextV1Pckg(*setUpIdleModeText);
+	CleanupStack::PushL(setUpIdleModeTextPckg);
+
+	sat.NotifySetUpIdleModeTextPCmd(reqStatus,*setUpIdleModeTextPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(setUpIdleModeText->PCmdNumber()==DSATTSY_SET_UP_IDLE_MODE_TEXT_NUMBER);
+
+   	TEST(setUpIdleModeText->iType==DSATTSY_IDLE_MODE_TXT_TYPE);
+ 	TEST(setUpIdleModeText->iText==DSATTSY_IDLE_MODE_TEXT);
+   	TEST(setUpIdleModeText->iIconId.iIdentifier==DSATTSY_ICON_ID1);
+   	TEST(setUpIdleModeText->iIconId.iQualifier==DSATTSY_ICON_QUALIFIER1);
+   	TEST(setUpIdleModeText->iCodingScheme==DSATTSY_TEXT_ENCODING_SCHEME);
+ 	TPtrC idleModeText(DSATTSY_IDLE_MODE_TEXT);
+ 	TEST(setUpIdleModeText->iText.Length() == idleModeText.Length()); // 276
+ 	TEST(setUpIdleModeText->iText.Size() == idleModeText.Size()); // 552
+ 	INFO_PRINTF2(_L("Test %d - RSat::NotifySetUpIdleModeText (Unicode) with RSat::TSetUpIdleModeTextV1 passed"),iTestCount++);
+
+ 	// Set Up Idle Mode Text Cancel with V1
+ 	sat.NotifySetUpIdleModeTextPCmd(reqStatus,*setUpIdleModeTextPckg);
+ 	sat.CancelAsyncRequest(ESatNotifySetUpIdleModeTextPCmd);
+
+ 	User::WaitForRequest(reqStatus);
+ 	TEST(reqStatus.Int()==KErrCancel);
+ 	INFO_PRINTF2(_L("Test %d - RSat::NotifySetUpIdleModeTextPCmdCancel with RSat::TSetUpIdleModeTextV1passed"),iTestCount++);
+
+ 	// Issue another request. The DTSY will set the idle text mode to an 8-bit string
+ 	sat.NotifySetUpIdleModeTextPCmd(reqStatus,*setUpIdleModeTextPckg);
+ 	User::WaitForRequest(reqStatus);
+ 	TEST(reqStatus.Int()==KErrNone);
+
+ 	TEST(setUpIdleModeText->PCmdNumber()==DSATTSY_SET_UP_IDLE_MODE_TEXT_NUMBER);
+
+ 	TPtrC8 textIdleMode8(DSATTSY_IDLE_MODE_TEXT_8BIT);
+   	TEST(setUpIdleModeText->iType==DSATTSY_IDLE_MODE_TXT_TYPE);
+   	TBuf8<276> text8;
+   	CnvUtfConverter::ConvertFromUnicodeToUtf8(text8,setUpIdleModeText->iText);
+ 	TEST(text8==DSATTSY_IDLE_MODE_TEXT_8BIT);
+   	TEST(setUpIdleModeText->iIconId.iIdentifier==DSATTSY_ICON_ID1);
+   	TEST(setUpIdleModeText->iIconId.iQualifier==DSATTSY_ICON_QUALIFIER1);
+   	TEST(setUpIdleModeText->iCodingScheme==DSATTSY_TEXT_ENCODING_SCHEME_8);
+
+ 	TEST(setUpIdleModeText->iText.Length() == textIdleMode8.Length()); // 276
+ 	TEST(setUpIdleModeText->iText.Size() == 2*textIdleMode8.Size()); // 2*276
+
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySetUpIdleModeText (8-bit) with RSat::TSetUpIdleModeTextV1 passed"),iTestCount++);
+
+	// Set Up Idle Mode Text Cancel with V1
+	sat.NotifySetUpIdleModeTextPCmd(reqStatus,*setUpIdleModeTextPckg);
+	sat.CancelAsyncRequest(ESatNotifySetUpIdleModeTextPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySetUpIdleModeTextPCmdCancel passed"),iTestCount++);
+
+	// Set Up Idle Mode Text with V5
+	RSat::TSetUpIdleModeTextV5* setUpIdleModeTextV5 = new (ELeave) RSat::TSetUpIdleModeTextV5;
+	CleanupStack::PushL(setUpIdleModeTextV5);
+	RSat::TSetUpIdleModeTextV5Pckg* setUpIdleModeTextV5Pckg = new (ELeave) RSat::TSetUpIdleModeTextV5Pckg(*setUpIdleModeTextV5);
+	CleanupStack::PushL(setUpIdleModeTextV5Pckg);
+
+	TEST(setUpIdleModeTextV5->ExtensionId() == RSat::KSatV5);
+	TEST(setUpIdleModeTextV5->iTextAttribute.iStatus == RSat::ETextAttributeNotSet);
+
+	sat.NotifySetUpIdleModeTextPCmd(reqStatus,*setUpIdleModeTextV5Pckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(setUpIdleModeTextV5->PCmdNumber()==DSATTSY_SET_UP_IDLE_MODE_TEXT_NUMBER);
+
+   	TEST(setUpIdleModeTextV5->iType==DSATTSY_IDLE_MODE_TXT_TYPE);
+ 	TEST(setUpIdleModeTextV5->iText==DSATTSY_IDLE_MODE_TEXT);
+   	TEST(setUpIdleModeTextV5->iIconId.iIdentifier==DSATTSY_ICON_ID1);
+   	TEST(setUpIdleModeTextV5->iIconId.iQualifier==DSATTSY_ICON_QUALIFIER1);
+   	TEST(setUpIdleModeTextV5->iCodingScheme==DSATTSY_TEXT_ENCODING_SCHEME);
+
+ 	TEST(setUpIdleModeTextV5->iText.Length() == idleModeText.Length()); // 276
+ 	TEST(setUpIdleModeTextV5->iText.Size() == idleModeText.Size()); // 552
+
+	// V5 parameters
+	TEST(setUpIdleModeTextV5->iTextAttribute.iStatus == textAttribute1.iStatus);
+	TEST(setUpIdleModeTextV5->iTextAttribute.iTextAttributeData == textAttribute1.iTextAttributeData);
+
+ 	INFO_PRINTF2(_L("Test %d - RSat::NotifySetUpIdleModeText (Unicode) with RSat::TSetUpIdleModeTextV5 passed"),iTestCount++);
+
+ 	// Set Up Idle Mode Text Cancel
+ 	sat.NotifySetUpIdleModeTextPCmd(reqStatus,*setUpIdleModeTextV5Pckg);
+ 	sat.CancelAsyncRequest(ESatNotifySetUpIdleModeTextPCmd);
+
+ 	User::WaitForRequest(reqStatus);
+ 	TEST(reqStatus.Int()==KErrCancel);
+ 	INFO_PRINTF2(_L("Test %d - RSat::NotifySetUpIdleModeTextPCmdCancel with RSat::TSetUpIdleModeTextV5 passed"),iTestCount++);
+
+ 	// Issue another request. The DTSY will set the idle text mode to an 8-bit string
+ 	sat.NotifySetUpIdleModeTextPCmd(reqStatus,*setUpIdleModeTextV5Pckg);
+ 	User::WaitForRequest(reqStatus);
+ 	TEST(reqStatus.Int()==KErrNone);
+
+ 	TEST(setUpIdleModeTextV5->PCmdNumber()==DSATTSY_SET_UP_IDLE_MODE_TEXT_NUMBER);
+
+ 	TPtrC8 textIdleMode8_V5(DSATTSY_IDLE_MODE_TEXT_8BIT);
+   	TEST(setUpIdleModeTextV5->iType==DSATTSY_IDLE_MODE_TXT_TYPE);
+   	TBuf8<276> text8_V5;
+   	CnvUtfConverter::ConvertFromUnicodeToUtf8(text8_V5,setUpIdleModeText->iText);
+ 	TEST(text8==DSATTSY_IDLE_MODE_TEXT_8BIT);
+   	TEST(setUpIdleModeTextV5->iIconId.iIdentifier==DSATTSY_ICON_ID1);
+   	TEST(setUpIdleModeTextV5->iIconId.iQualifier==DSATTSY_ICON_QUALIFIER1);
+   	TEST(setUpIdleModeTextV5->iCodingScheme==DSATTSY_TEXT_ENCODING_SCHEME_8);
+
+ 	TEST(setUpIdleModeTextV5->iText.Length() == textIdleMode8_V5.Length()); // 276
+ 	TEST(setUpIdleModeTextV5->iText.Size() == 2*textIdleMode8_V5.Size()); // 2*276
+
+	TEST(setUpIdleModeTextV5->iTextAttribute.iStatus == textAttribute1.iStatus);
+	TEST(setUpIdleModeTextV5->iTextAttribute.iTextAttributeData == textAttribute1.iTextAttributeData);
+
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySetUpIdleModeText (8-bit) with RSat::TSetUpIdleModeTextV5 passed"),iTestCount++);
+
+	// Set Up Idle Mode Text Cancel
+	sat.NotifySetUpIdleModeTextPCmd(reqStatus,*setUpIdleModeTextV5Pckg);
+	sat.CancelAsyncRequest(ESatNotifySetUpIdleModeTextPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySetUpIdleModeTextPCmdCancel with RSat::TSetUpIdleModeTextV5 passed"),iTestCount++);
+
+	// Set Up Idle Mode Text Terminal Rsp
+	sat.NotifySetUpIdleModeTextPCmd(reqStatus,*setUpIdleModeTextPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	RSat::TSetUpIdleModeTextRspV1* setUpIdleModeTextRsp = new (ELeave) RSat::TSetUpIdleModeTextRspV1;
+	CleanupStack::PushL(setUpIdleModeTextRsp);
+	RSat::TSetUpIdleModeTextRspV1Pckg* setUpIdleModeTextRspPckg = new (ELeave) RSat::TSetUpIdleModeTextRspV1Pckg(*setUpIdleModeTextRsp);
+	CleanupStack::PushL(setUpIdleModeTextRspPckg);
+
+	setUpIdleModeTextRsp->SetPCmdNumber(setUpIdleModeText->PCmdNumber());
+	setUpIdleModeTextRsp->iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
+	setUpIdleModeTextRsp->iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
+	setUpIdleModeTextRsp->iAdditionalInfo=DSATTSY_NULL_BUF;
+
+	sat.TerminalRsp(reqStatus,RSat::ESetUpIdleModeText,*setUpIdleModeTextRspPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Set Up Idle Mode Text - passed"),iTestCount++);
+
+	CleanupStack::PopAndDestroy(6, setUpIdleModeText);
+
+	sat.Close();
+	phone.Close();
+
+	return TestStepResult();
+	}