telephonyserver/etelsimtoolkit/tetel/Te_EtelSat/TE_EtelSatpcmds1c.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
--- a/telephonyserver/etelsimtoolkit/tetel/Te_EtelSat/TE_EtelSatpcmds1c.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserver/etelsimtoolkit/tetel/Te_EtelSat/TE_EtelSatpcmds1c.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,667 +1,667 @@
-// 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_EtelSatpcmds1c.h"
-
-CTestSatPCmds1c::CTestSatPCmds1c()
-/** 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("TestSatPCmds1c"));
-	}
-
-enum TVerdict CTestSatPCmds1c::doTestStepL()
-	{
-	INFO_PRINTF1(_L("***********************************************"));
-	INFO_PRINTF1(_L("RSat Proactive Commands Functionality suite - 2"));
-	INFO_PRINTF1(_L("***********************************************"));
-
-	TInt ret=phone.Open(iTelServer,DSATTSY_PHONE_NAME);
-	TEST(ret==KErrNone);
-
-	ret=sat.Open(phone);
-    TEST(ret==KErrNone);
-
-	// Send DTMF with V1
-	RSat::TSendDtmfV1* sendDtmf = new (ELeave) RSat::TSendDtmfV1;
-	CleanupStack::PushL(sendDtmf);
-	RSat::TSendDtmfV1Pckg* sendDtmfPckg = new (ELeave) RSat::TSendDtmfV1Pckg(*sendDtmf);
-	CleanupStack::PushL(sendDtmfPckg);
-
-	sat.NotifySendDtmfPCmd(reqStatus,*sendDtmfPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-
-	TEST(sendDtmf->PCmdNumber()==DSATTSY_SEND_DTMF_NUMBER);
-
-	TEST(sendDtmf->iAlphaId.iStatus==DSATTSY_ALPHA_ID1_STATUS);
-	TEST(sendDtmf->iAlphaId.iAlphaId==DSATTSY_ALPHA_ID1);
-	TEST(sendDtmf->iDtmfString==DSATTSY_DTMF_STRING);
-	TEST(sendDtmf->iIconId.iIdentifier==DSATTSY_ICON_ID1);
-	TEST(sendDtmf->iIconId.iQualifier==DSATTSY_ICON_QUALIFIER1);
-	INFO_PRINTF2(_L("Test %d - RSat::NotifySendDtmfPCmd with RSat::TSendDtmfV1 passed"),iTestCount++);
-
-	// Send DTMF Cancel with V1
-	sat.NotifySendDtmfPCmd(reqStatus,*sendDtmfPckg);
-	sat.CancelAsyncRequest(ESatNotifySendDtmfPCmd);
-
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrCancel);
-	INFO_PRINTF2(_L("Test %d - RSat::NotifySendDtmfPCmdCancel with RSat::TSendDtmfV1 passed"),iTestCount++);
-
-	// Send DTMF with V5
-	RSat::TSendDtmfV5* sendDtmfV5 = new (ELeave) RSat::TSendDtmfV5;
-	CleanupStack::PushL(sendDtmfV5);
-	RSat::TSendDtmfV5Pckg* sendDtmfV5Pckg = new (ELeave) RSat::TSendDtmfV5Pckg(*sendDtmfV5);
-	CleanupStack::PushL(sendDtmfV5Pckg);
-
-	TEST(sendDtmfV5->ExtensionId() == RSat::KSatV5);
-	TEST(sendDtmfV5->iTextAttribute.iStatus == RSat::ETextAttributeNotSet);
-
-	sat.NotifySendDtmfPCmd(reqStatus,*sendDtmfV5Pckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-
-	TEST(sendDtmfV5->PCmdNumber()==DSATTSY_SEND_DTMF_NUMBER);
-
-	TEST(sendDtmfV5->iAlphaId.iStatus==DSATTSY_ALPHA_ID1_STATUS);
-	TEST(sendDtmfV5->iAlphaId.iAlphaId==DSATTSY_ALPHA_ID1);
-	TEST(sendDtmfV5->iDtmfString==DSATTSY_DTMF_STRING);
-	TEST(sendDtmfV5->iIconId.iIdentifier==DSATTSY_ICON_ID1);
-	TEST(sendDtmfV5->iIconId.iQualifier==DSATTSY_ICON_QUALIFIER1);
-	// V5 parameters
-	RSat::TTextAttribute textAttribute;
-	textAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-	const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-	textAttribute.iTextAttributeData.Append(textAttributeData, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-
-	TEST(sendDtmfV5->iTextAttribute.iStatus == textAttribute.iStatus);
-	TEST(sendDtmfV5->iTextAttribute.iTextAttributeData == textAttribute.iTextAttributeData);
-
-	INFO_PRINTF2(_L("Test %d - RSat::NotifySendDtmfPCmd with RSat::TSendDtmfV5 passed"),iTestCount++);
-
-	// Send DTMF Cancel with V5
-	sat.NotifySendDtmfPCmd(reqStatus,*sendDtmfV5Pckg);
-	sat.CancelAsyncRequest(ESatNotifySendDtmfPCmd);
-
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrCancel);
-	INFO_PRINTF2(_L("Test %d - RSat::NotifySendDtmfPCmdCancel with RSat::TSendDtmfV5 passed"),iTestCount++);
-
-	// Send Dtmf Terminal Rsp
-	sat.NotifySendDtmfPCmd(reqStatus,*sendDtmfPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-
-	RSat::TSendDtmfRspV1* sendDtmfRsp = new (ELeave) RSat::TSendDtmfRspV1;
-	CleanupStack::PushL(sendDtmfRsp);
-	RSat::TSendDtmfRspV1Pckg* sendDtmfRspPckg = new (ELeave) RSat::TSendDtmfRspV1Pckg(*sendDtmfRsp);
-	CleanupStack::PushL(sendDtmfRspPckg);
-
-	sendDtmfRsp->SetPCmdNumber(sendDtmf->PCmdNumber());
-	sendDtmfRsp->iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
-	sendDtmfRsp->iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
-	sendDtmfRsp->iAdditionalInfo=DSATTSY_NULL_BUF;
-
-	sat.TerminalRsp(reqStatus,RSat::ESendDtmf,*sendDtmfRspPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Send DTMF - passed"),iTestCount++);
-
-	CleanupStack::PopAndDestroy(6, sendDtmf);
-
-	// Perform Card APDU
-	RSat::TPerformCardApduV2* performCardApdu = new (ELeave) RSat::TPerformCardApduV2;
-	CleanupStack::PushL(performCardApdu);
-	RSat::TPerformCardApduV2Pckg* performCardApduPckg = new (ELeave) RSat::TPerformCardApduV2Pckg(*performCardApdu);
-	CleanupStack::PushL(performCardApduPckg);
-
-	sat.NotifyPerformCardApduPCmd(reqStatus,*performCardApduPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-
-	TEST(performCardApdu->PCmdNumber()==DSATTSY_PERFORM_CARD_APDU_NUMBER);
-
-	TEST(performCardApdu->iDestination==DSATTSY_CARD_READER_1);
-	TEST(performCardApdu->iCApdu.iCla==DSATTSY_CLA);
-	TEST(performCardApdu->iCApdu.iIns==DSATTSY_INS);
-	TEST(performCardApdu->iCApdu.iLc==DSATTSY_LC);
-	TEST(performCardApdu->iCApdu.iLe==DSATTSY_LE);
-	TEST(performCardApdu->iCApdu.iP1==DSATTSY_P1);
-	TEST(performCardApdu->iCApdu.iP2==DSATTSY_P2);
-	TEST(performCardApdu->iCApdu.iData==DSATTSY_CAPDU);
-	INFO_PRINTF2(_L("Test %d - RSat::NotifyPerformCardApduPCmd passed"),iTestCount++);
-
-	// Perform Card APDU Cancel
-	sat.NotifyPerformCardApduPCmd(reqStatus,*performCardApduPckg);
-	sat.CancelAsyncRequest(ESatNotifyPerformCardApduPCmd);
-
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrCancel);
-	INFO_PRINTF2(_L("Test %d - RSat::NotifyPerformCardApduCancel passed"),iTestCount++);
-
-	// Perform Card APDU Terminal Rsp
-	sat.NotifyPerformCardApduPCmd(reqStatus,*performCardApduPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-
-	RSat::TPerformCardApduRspV2* performCardApduRsp = new (ELeave) RSat::TPerformCardApduRspV2;
-	CleanupStack::PushL(performCardApduRsp);
-	RSat::TPerformCardApduRspV2Pckg* performCardApduRspPckg = new (ELeave) RSat::TPerformCardApduRspV2Pckg(*performCardApduRsp);
-	CleanupStack::PushL(performCardApduRspPckg);
-
-	performCardApduRsp->SetPCmdNumber(performCardApdu->PCmdNumber());
-	performCardApduRsp->iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
-	performCardApduRsp->iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
-	performCardApduRsp->iAdditionalInfo=DSATTSY_NULL_BUF;
-
-	sat.TerminalRsp(reqStatus,RSat::EPerformCardApdu,*performCardApduRspPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Perform Card APDU - passed"),iTestCount++);
-
-	CleanupStack::PopAndDestroy(4, performCardApdu);
-
-	ExtendedTest1(reqStatus);
-
-	sat.Close();
-	phone.Close();
-
-	return TestStepResult();
-	}
-
-// Further tests, seperated to prevent stack overflow
-void CTestSatPCmds1c::ExtendedTest1(TRequestStatus& reqStatus)
-	{
-	// Notify Power Off Card
-	RSat::TPowerOffCardV2 powerOffCard;
-	RSat::TPowerOffCardV2Pckg powerOffCardPckg(powerOffCard);
-
-	sat.NotifyPowerOffCardPCmd(reqStatus,powerOffCardPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-
-	TEST(powerOffCard.PCmdNumber()==DSATTSY_POWER_OFF_CARD_NUMBER);
-	TEST(powerOffCard.iDestination==DSATTSY_CARD_READER_1);
-	INFO_PRINTF2(_L("Test %d - RSat::NotifyPowerOffCardPCmd passed"),iTestCount++);
-
-	// Power Off Card Cancel
-	sat.NotifyPowerOffCardPCmd(reqStatus,powerOffCardPckg);
-	sat.CancelAsyncRequest(ESatNotifyPowerOffCardPCmd);
-
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrCancel);
-	INFO_PRINTF2(_L("Test %d - RSat::NotifyPowerOffCardPCmdCancel passed"),iTestCount++);
-
-	// Power Off Card Terminal Rsp
-	sat.NotifyPowerOffCardPCmd(reqStatus,powerOffCardPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-
-	RSat::TPowerOffCardRspV2 powerOffCardRsp;
-	RSat::TPowerOffCardRspV2Pckg powerOffCardRspPckg(powerOffCardRsp);
-
-	powerOffCardRsp.SetPCmdNumber(powerOffCard.PCmdNumber());
-	powerOffCardRsp.iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
-	powerOffCardRsp.iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
-	powerOffCardRsp.iAdditionalInfo=DSATTSY_NULL_BUF;
-
-	sat.TerminalRsp(reqStatus,RSat::EPowerOffCard,powerOffCardRspPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Power Off Card - passed"),iTestCount++);
-
-	// Power On Card
-	RSat::TPowerOnCardV2 powerOnCard;
-	RSat::TPowerOnCardV2Pckg powerOnCardPckg(powerOnCard);
-
-	sat.NotifyPowerOnCardPCmd(reqStatus,powerOnCardPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-
-	TEST(powerOnCard.PCmdNumber()==DSATTSY_POWER_ON_CARD_NUMBER);
-	TEST(powerOnCard.iDestination==DSATTSY_CARD_READER_1);
-	INFO_PRINTF2(_L("Test %d - RSat::NotifyPowerOnCardPCmd passed"),iTestCount++);
-
-	// Power On Card Cancel
-	sat.NotifyPowerOnCardPCmd(reqStatus,powerOnCardPckg);
-	sat.CancelAsyncRequest(ESatNotifyPowerOnCardPCmd);
-
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrCancel);
-	INFO_PRINTF2(_L("Test %d - RSat::NotifyPowerOnCardPCmdCancel passed"),iTestCount++);
-
-	// Power On Card Terminal Rsp
-	sat.NotifyPowerOnCardPCmd(reqStatus,powerOnCardPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-
-	RSat::TPowerOnCardRspV2 powerOnCardRsp;
-	RSat::TPowerOnCardRspV2Pckg powerOnCardRspPckg(powerOnCardRsp);
-
-	powerOnCardRsp.SetPCmdNumber(powerOnCard.PCmdNumber());
-	powerOnCardRsp.iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
-	powerOnCardRsp.iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
-	powerOnCardRsp.iAdditionalInfo=DSATTSY_NULL_BUF;
-
-	sat.TerminalRsp(reqStatus,RSat::EPowerOnCard,powerOnCardRspPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Power On Card - passed"),iTestCount++);
-
-	// Get Reader Status
-	RSat::TGetReaderStatusV2 getReaderStatus;
-	RSat::TGetReaderStatusV2Pckg getReaderStatusPckg(getReaderStatus);
-
-	sat.NotifyGetReaderStatusPCmd(reqStatus,getReaderStatusPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-
-	TEST(getReaderStatus.PCmdNumber()==DSATTSY_GET_READER_STATUS_NUMBER);
-	TEST(getReaderStatus.iDestination==DSATTSY_CARD_READER_1);
-	TEST(getReaderStatus.iMode==DSATTSY_GET_READER_STATUS_MODE);
-	INFO_PRINTF2(_L("Test %d - RSat::NotifyGetReaderStatusPCmd passed"),iTestCount++);
-
-	// Get Reader Status Cancel
-	sat.NotifyGetReaderStatusPCmd(reqStatus,getReaderStatusPckg);
-	sat.CancelAsyncRequest(ESatNotifyGetReaderStatusPCmd);
-
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrCancel);
-	INFO_PRINTF2(_L("Test %d - RSat::NotifyGetReaderStatusPCmdCancel passed"),iTestCount++);
-
-	// Get Reader Status Terminal Rsp
-	sat.NotifyGetReaderStatusPCmd(reqStatus,getReaderStatusPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-
-	RSat::TGetReaderStatusRspV2 getReaderStatusRsp;
-	RSat::TGetReaderStatusRspV2Pckg getReaderStatusRspPckg(getReaderStatusRsp);
-
-	getReaderStatusRsp.SetPCmdNumber(getReaderStatus.PCmdNumber());
-	getReaderStatusRsp.iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
-	getReaderStatusRsp.iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
-	getReaderStatusRsp.iAdditionalInfo=DSATTSY_NULL_BUF;
-	getReaderStatusRsp.iMode=DSATTSY_GET_READER_STATUS_MODE;
-
-	sat.TerminalRsp(reqStatus,RSat::EGetReaderStatus,getReaderStatusRspPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Get Reader Status - passed"),iTestCount++);
-
-	ExtendedTest2L(reqStatus);
-}
-
-void CTestSatPCmds1c::ExtendedTest2L(TRequestStatus& reqStatus)
-	{
-	// Run At Command with V2
-	RSat::TRunAtCommandV2* runAtCommand = new (ELeave) RSat::TRunAtCommandV2;
-	CleanupStack::PushL(runAtCommand);
-	RSat::TRunAtCommandV2Pckg* runAtCommandPckg = new (ELeave) RSat::TRunAtCommandV2Pckg(*runAtCommand);
-	CleanupStack::PushL(runAtCommandPckg);
-
-	sat.NotifyRunAtCommandPCmd(reqStatus,*runAtCommandPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-
-	TEST(runAtCommand->PCmdNumber()==DSATTSY_RUN_AT_COMMAND_NUMBER);
-	TEST(runAtCommand->iAlphaId.iStatus==DSATTSY_ALPHA_ID1_STATUS);
-	TEST(runAtCommand->iAlphaId.iAlphaId==DSATTSY_ALPHA_ID1);
-	TEST(runAtCommand->iAtCommand==DSATTSY_AT_COMMAND);
-	TEST(runAtCommand->iIconId.iIdentifier==DSATTSY_ICON_ID1);
-	TEST(runAtCommand->iIconId.iQualifier==DSATTSY_ICON_QUALIFIER1);
-
-	INFO_PRINTF2(_L("Test %d - RSat::NotifyRunAtCommandPCmd with RSat::TRunAtCommandV2 passed"),iTestCount++);
-
-	// Run At Command Cancel with V2
-	sat.NotifyRunAtCommandPCmd(reqStatus,*runAtCommandPckg);
-	sat.CancelAsyncRequest(ESatNotifyRunAtCommandPCmd);
-
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrCancel);
-	INFO_PRINTF2(_L("Test %d - RSat::NotifyRunAtCommandPCmdCancel with RSat::TRunAtCommandV2 passed"),iTestCount++);
-
-	// Run At Command with V5
-	RSat::TRunAtCommandV5* runAtCommandV5 = new (ELeave) RSat::TRunAtCommandV5;
-	CleanupStack::PushL(runAtCommandV5);
-	RSat::TRunAtCommandV5Pckg* runAtCommandV5Pckg = new (ELeave) RSat::TRunAtCommandV5Pckg(*runAtCommandV5);
-	CleanupStack::PushL(runAtCommandV5Pckg);
-
-	TEST(runAtCommandV5->ExtensionId() == RSat::KSatV5);
-	TEST(runAtCommandV5->iTextAttribute.iStatus == RSat::ETextAttributeNotSet);
-
-	sat.NotifyRunAtCommandPCmd(reqStatus,*runAtCommandV5Pckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-
-	TEST(runAtCommandV5->PCmdNumber()==DSATTSY_RUN_AT_COMMAND_NUMBER);
-	TEST(runAtCommandV5->iAlphaId.iStatus==DSATTSY_ALPHA_ID1_STATUS);
-	TEST(runAtCommandV5->iAlphaId.iAlphaId==DSATTSY_ALPHA_ID1);
-	TEST(runAtCommandV5->iAtCommand==DSATTSY_AT_COMMAND);
-	TEST(runAtCommandV5->iIconId.iIdentifier==DSATTSY_ICON_ID1);
-	TEST(runAtCommandV5->iIconId.iQualifier==DSATTSY_ICON_QUALIFIER1);
-	// Version 5 parameters
-	RSat::TTextAttribute textAttribute;
-	textAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-	const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-	textAttribute.iTextAttributeData.Append(textAttributeData, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-
-	TEST(runAtCommandV5->iTextAttribute.iStatus == textAttribute.iStatus);
-	TEST(runAtCommandV5->iTextAttribute.iTextAttributeData == textAttribute.iTextAttributeData);
-
-	INFO_PRINTF2(_L("Test %d - RSat::NotifyRunAtCommandPCmd with RSat::TRunAtCommandV5 passed"),iTestCount++);
-
-	// Run At Command Cancel with V2
-	sat.NotifyRunAtCommandPCmd(reqStatus,*runAtCommandV5Pckg);
-	sat.CancelAsyncRequest(ESatNotifyRunAtCommandPCmd);
-
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrCancel);
-	INFO_PRINTF2(_L("Test %d - RSat::NotifyRunAtCommandPCmdCancel with RSat::TRunAtCommandV5 passed"),iTestCount++);
-
-	// Run At Command Terminal Rsp
-	sat.NotifyRunAtCommandPCmd(reqStatus,*runAtCommandPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-
-	RSat::TRunAtCommandRspV2* runAtCommandRsp = new (ELeave) RSat::TRunAtCommandRspV2;
-	CleanupStack::PushL(runAtCommandRsp);
-	RSat::TRunAtCommandRspV2Pckg* runAtCommandRspPckg = new (ELeave) RSat::TRunAtCommandRspV2Pckg(*runAtCommandRsp);
-	CleanupStack::PushL(runAtCommandRspPckg);
-
-	runAtCommandRsp->SetPCmdNumber(runAtCommand->PCmdNumber());
-	runAtCommandRsp->iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
-	runAtCommandRsp->iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
-	runAtCommandRsp->iAdditionalInfo=DSATTSY_NULL_BUF;
-
-	sat.TerminalRsp(reqStatus,RSat::ERunAtCommand,*runAtCommandRspPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Run AT Command - passed"),iTestCount++);
-
-	CleanupStack::PopAndDestroy(6, runAtCommand);
-
-	// Language Notification
-	RSat::TLanguageNotificationV2 languageNotification;
-	RSat::TLanguageNotificationV2Pckg languageNotificationPckg(languageNotification);
-
-	sat.NotifyLanguageNotificationPCmd(reqStatus,languageNotificationPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-
-	TEST(languageNotification.PCmdNumber()==DSATTSY_LANGUAGE_NOTIFICATION_NUMBER);
-	TEST(languageNotification.iNotificationType==DSATTSY_SPECIFIC_LANGUAGE);
-	TEST(languageNotification.iLanguage==DSATTSY_FRENCH);
-	INFO_PRINTF2(_L("Test %d - RSat::NotifyLanguageNotificationPCmd passed"),iTestCount++);
-
-	// Language Notification Cancel
-	sat.NotifyLanguageNotificationPCmd(reqStatus,languageNotificationPckg);
-	sat.CancelAsyncRequest(ESatNotifyLanguageNotificationPCmd);
-
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrCancel);
-	INFO_PRINTF2(_L("Test %d - RSat::NotifyLanguageNotificationPCmdCancel passed"),iTestCount++);
-
-	// Language Notification Terminal Rsp
-	sat.NotifyLanguageNotificationPCmd(reqStatus,languageNotificationPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-
-	RSat::TLanguageNotificationRspV2 languageNotificationRsp;
-	RSat::TLanguageNotificationRspV2Pckg languageNotificationRspPckg(languageNotificationRsp);
-
-	languageNotificationRsp.SetPCmdNumber(languageNotification.PCmdNumber());
-	languageNotificationRsp.iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
-	languageNotificationRsp.iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
-	languageNotificationRsp.iAdditionalInfo=DSATTSY_NULL_BUF;
-
-	sat.TerminalRsp(reqStatus,RSat::ELanguageNotification,languageNotificationRspPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Language Notification - passed"),iTestCount++);
-
-	ExtendedTest3L(reqStatus);
-	}
-
-// Further tests, seperated to prevent stack overflow
-void CTestSatPCmds1c::ExtendedTest3L(TRequestStatus& reqStatus)
-	{
-	//
-	// Launch Browser
-	//
-
-	// Test version 2 command
-	RSat::TLaunchBrowserV2*		launchBrowser = new (ELeave) RSat::TLaunchBrowserV2;
-	CleanupStack::PushL(launchBrowser);
-	RSat::TLaunchBrowserV2Pckg*	launchBrowserPckg = new (ELeave) RSat::TLaunchBrowserV2Pckg(*launchBrowser);
-	CleanupStack::PushL(launchBrowserPckg);
-
-	TestLaunchBrowser(launchBrowserPckg);
-
-	CleanupStack::PopAndDestroy(2, launchBrowser);
-
-	// Continue tests
-	ExtendedTest4L(reqStatus);
-	}
-
-// Further tests, seperated to prevent stack overflow
-void CTestSatPCmds1c::ExtendedTest4L(TRequestStatus& reqStatus)
-	{
-	// Test version 5 command
-	RSat::TLaunchBrowserV5*		launchBrowserV5 = new (ELeave) RSat::TLaunchBrowserV5;
-	CleanupStack::PushL(launchBrowserV5);
-	RSat::TLaunchBrowserV5Pckg*	launchBrowserV5Pckg = new (ELeave) RSat::TLaunchBrowserV5Pckg(*launchBrowserV5);
-	CleanupStack::PushL(launchBrowserV5Pckg);
-
-	TEST(launchBrowserV5->ExtensionId() == RSat::KSatV5);
-	TEST(launchBrowserV5->iTextAttribute.iStatus == RSat::ETextAttributeNotSet);
-	TestLaunchBrowser(launchBrowserV5Pckg);
-
-	// Launch Browser Terminal Rsp
-	RSat::TLaunchBrowserV2*		launchBrowser = new (ELeave) RSat::TLaunchBrowserV2;
-	CleanupStack::PushL(launchBrowser);
-	RSat::TLaunchBrowserV2Pckg*	launchBrowserPckg = new (ELeave) RSat::TLaunchBrowserV2Pckg(*launchBrowser);
-	CleanupStack::PushL(launchBrowserPckg);
-
-	sat.NotifyLaunchBrowserPCmd(reqStatus,*launchBrowserPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-
-	RSat::TLaunchBrowserRspV2* launchBrowserRsp = new (ELeave) RSat::TLaunchBrowserRspV2;
-	CleanupStack::PushL(launchBrowserRsp);
-	RSat::TLaunchBrowserRspV2Pckg* launchBrowserRspPckg = new (ELeave) RSat::TLaunchBrowserRspV2Pckg(*launchBrowserRsp);
-	CleanupStack::PushL(launchBrowserRspPckg);
-
-	launchBrowserRsp->SetPCmdNumber(launchBrowser->PCmdNumber());
-	launchBrowserRsp->iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
-	launchBrowserRsp->iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
-	launchBrowserRsp->iAdditionalInfo=DSATTSY_NULL_BUF;
-
-	sat.TerminalRsp(reqStatus,RSat::ELaunchBrowser,*launchBrowserRspPckg);
-	User::WaitForRequest(reqStatus);
-	TEST(reqStatus.Int()==KErrNone);
-	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Launch Browser - passed"),iTestCount++);
-
-	CleanupStack::PopAndDestroy(6, launchBrowserV5);
-
-	// Continue tests
-	ExtendedTest5(reqStatus);
-	}
-
-// Further tests, seperated to prevent stack overflow
-void CTestSatPCmds1c::ExtendedTest5(TRequestStatus& reqStatus)
-	{
-	//
-	// Get Provisioning File Ref
-	//
-
-	RSat::TProvisioningFileRef		fileRef;
-	TBuf8<256>						retFile;
-
-	// Get with valid file ref
-
-	fileRef = DSATTSY_FILE_REF_DATA_1;
-
-	sat.GetProvisioningRefFile(reqStatus, fileRef, retFile);
-	User::WaitForRequest(reqStatus);
-
-	TEST(reqStatus.Int()==KErrNone);
-	TEST(retFile == DSATTSY_FILE1);
-
-	INFO_PRINTF2(_L("Test %d - RSat::GetProvisioningRefFile(valid file) passed"),iTestCount++);
-
-	sat.GetProvisioningRefFile(reqStatus, fileRef, retFile);
-	sat.CancelAsyncRequest(ESatGetProvisioningRefFile);
-	User::WaitForRequest(reqStatus);
-
-	TEST(reqStatus.Int()==KErrCancel);
-
-	INFO_PRINTF2(_L("Test %d - RSat::GetProvisioningRefFileCancel Cancel passed"),iTestCount++);
-
-	// Get with invalid file ref
-
-	fileRef = DSATTSY_INVALID_REF_FILE;
-
-	sat.GetProvisioningRefFile(reqStatus, fileRef, retFile);
-	User::WaitForRequest(reqStatus);
-
-	TEST(reqStatus.Int()==KErrNotFound);
-
-	INFO_PRINTF2(_L("Test %d - RSat::GetProvisioningRefFile(invalid file) passed"),iTestCount++);
-
-	sat.GetProvisioningRefFile(reqStatus, fileRef, retFile);
-	sat.CancelAsyncRequest(ESatGetProvisioningRefFile);
-	User::WaitForRequest(reqStatus);
-
-	TEST(reqStatus.Int()==KErrCancel);
-
-	INFO_PRINTF2(_L("Test %d - RSat::GetProvisioningRefFileCancel Cancel passed"),iTestCount++);
-	}
-
-void CTestSatPCmds1c::TestLaunchBrowser(TDes8* aLaunchBrowserPCmdPckg)
-	{
-	RSat::TLaunchBrowserV2Pckg* launchBrowserPckg = (RSat::TLaunchBrowserV2Pckg*)aLaunchBrowserPCmdPckg;
-	RSat::TLaunchBrowserV2& launchBrowser = (*launchBrowserPckg)();
-
-	RSat::TProvisioningFileRef  file;
-
-	// Perform 5 tests, check comment for each test to see the expected result for that test
-	for (TInt browserTest = 0; browserTest < 5; ++browserTest)		// Note start:end indices
-		{
-		sat.NotifyLaunchBrowserPCmd(reqStatus,*launchBrowserPckg);
-		User::WaitForRequest(reqStatus);
-		TEST(reqStatus.Int()==KErrNone);
-
-		TEST(launchBrowser.PCmdNumber()			== DSATTSY_LAUNCH_BROWSER_NUMBER);
-		TEST(launchBrowser.iBrowserSel			== DSATTSY_BROWSER_SELECTION_MODE);
-		TEST(launchBrowser.iBrowserId			== DSATTSY_BROWSER_ID);
-		TEST(launchBrowser.iUrl					== DSATTSY_URL);
-		TEST(launchBrowser.iBearerList			== DSATTSY_BEARER_LIST);
-		TEST(launchBrowser.iText				== DSATTSY_PROXY_NAME);
-		TEST(launchBrowser.iAlphaId.iStatus		== DSATTSY_ALPHA_ID1_STATUS);
-		TEST(launchBrowser.iAlphaId.iAlphaId	== DSATTSY_ALPHA_ID1);
-		TEST(launchBrowser.iIconId.iIdentifier	== DSATTSY_ICON_ID1);
-		TEST(launchBrowser.iIconId.iQualifier	== DSATTSY_ICON_QUALIFIER1);
-
-		if (launchBrowser.ExtensionId() == RSat::KSatV5)
-			{
-			RSat::TLaunchBrowserV5Pckg* aV5PCmdPckg = (RSat::TLaunchBrowserV5Pckg*)aLaunchBrowserPCmdPckg;
-			RSat::TLaunchBrowserV5&   launchBrowserV5 = (*aV5PCmdPckg)();
-
-			RSat::TTextAttribute textAttribute;
-			textAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
-			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
-			textAttribute.iTextAttributeData.Append(textAttributeData, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
-
-			TEST(launchBrowserV5.iTextAttribute.iStatus == textAttribute.iStatus);
-			TEST(launchBrowserV5.iTextAttribute.iTextAttributeData == textAttribute.iTextAttributeData);
-			}
-
-		// Provisioning file ref checks
-
-		switch (browserTest)
-			{
-		case 0:
-			// expect 1 file ref of 1 byte length
-			TEST(launchBrowser.NumberOfFileRef()   == DSATTSY_REF_COUNT_1);
-			TEST(launchBrowser.GetFileRef(1, file) == KErrNone);
-			TEST(file == DSATTSY_FILE_REF_DATA_1);
-			break;
-
-		case 1:
-			// expect 1 file ref of 128 bytes length
-			TEST(launchBrowser.NumberOfFileRef()   == DSATTSY_REF_COUNT_2);
-			TEST(launchBrowser.GetFileRef(1, file) == KErrNone);
-			TEST(file == DSATTSY_FILE_REF_DATA_128);
-			break;
-
-		case 2:
-			// expect 2 file refs, each of 1 byte length
-			TEST(launchBrowser.NumberOfFileRef()   == DSATTSY_REF_COUNT_3);
-			TEST(launchBrowser.GetFileRef(1, file) == KErrNone);
-			TEST(file == DSATTSY_FILE_REF_DATA_1);
-			TEST(launchBrowser.GetFileRef(2, file) == KErrNone);
-			TEST(file == DSATTSY_FILE_REF_DATA_1);
-			break;
-
-		case 3:
-			// 1 ref of 128 bytes, test TSY attempts to add 2 refs but 2nd too large so should be rejected
-			TEST(launchBrowser.NumberOfFileRef()   == DSATTSY_REF_COUNT_4);
-			TEST(launchBrowser.GetFileRef(1, file) == KErrNone);
-			TEST(file == DSATTSY_FILE_REF_DATA_128);
-			break;
-
-		case 4:
-			// 2 refs of 128 bytes & 1 byte
-			TEST(launchBrowser.NumberOfFileRef()   == DSATTSY_REF_COUNT_5);
-			TEST(launchBrowser.GetFileRef(1, file) == KErrNone);
-			TEST(file == DSATTSY_FILE_REF_DATA_128);
-			TEST(launchBrowser.GetFileRef(2, file) == KErrNone);
-			TEST(file == DSATTSY_FILE_REF_DATA_1);
-			// Ask for out-of-range file ref - greater than last index
-			TEST(launchBrowser.GetFileRef(3, file) == KErrNotFound);
-			// Ask for out-of-range file ref - bigger than max ref
-			TEST(launchBrowser.GetFileRef(255, file) == KErrNotFound);
-			break;
-			}
-
-		launchBrowser.ResetFileRef();
-
-		if (launchBrowser.ExtensionId() == RSat::KSatV2)
-			{
-			INFO_PRINTF2(_L("Test %d - RSat::NotifyLaunchBrowserPCmd with RSat::TLaunchBrowserV2 passed"),iTestCount++);
-			}
-		else if (launchBrowser.ExtensionId() == RSat::KSatV5)
-			{
-			INFO_PRINTF2(_L("Test %d - RSat::NotifyLaunchBrowserPCmd with RSat::TLaunchBrowserV5 passed"),iTestCount++);
-			}
-
-		// Launch Browser Cancel
-		sat.NotifyLaunchBrowserPCmd(reqStatus,*launchBrowserPckg);
-		sat.CancelAsyncRequest(ESatNotifyLaunchBrowserPCmd);
-
-		User::WaitForRequest(reqStatus);
-		TEST(reqStatus.Int()==KErrCancel);
-
-		if (launchBrowser.ExtensionId() == RSat::KSatV2)
-			INFO_PRINTF2(_L("Test %d - RSat::NotifyLaunchBrowserPCmdCancel with RSat::TLaunchBrowserV2 passed"),iTestCount++);
-		else if (launchBrowser.ExtensionId() == RSat::KSatV5)
-			INFO_PRINTF2(_L("Test %d - RSat::NotifyLaunchBrowserPCmdCancel with RSat::TLaunchBrowserV5 passed"),iTestCount++);
-
-		}
-	}
+// 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_EtelSatpcmds1c.h"
+
+CTestSatPCmds1c::CTestSatPCmds1c()
+/** 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("TestSatPCmds1c"));
+	}
+
+enum TVerdict CTestSatPCmds1c::doTestStepL()
+	{
+	INFO_PRINTF1(_L("***********************************************"));
+	INFO_PRINTF1(_L("RSat Proactive Commands Functionality suite - 2"));
+	INFO_PRINTF1(_L("***********************************************"));
+
+	TInt ret=phone.Open(iTelServer,DSATTSY_PHONE_NAME);
+	TEST(ret==KErrNone);
+
+	ret=sat.Open(phone);
+    TEST(ret==KErrNone);
+
+	// Send DTMF with V1
+	RSat::TSendDtmfV1* sendDtmf = new (ELeave) RSat::TSendDtmfV1;
+	CleanupStack::PushL(sendDtmf);
+	RSat::TSendDtmfV1Pckg* sendDtmfPckg = new (ELeave) RSat::TSendDtmfV1Pckg(*sendDtmf);
+	CleanupStack::PushL(sendDtmfPckg);
+
+	sat.NotifySendDtmfPCmd(reqStatus,*sendDtmfPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(sendDtmf->PCmdNumber()==DSATTSY_SEND_DTMF_NUMBER);
+
+	TEST(sendDtmf->iAlphaId.iStatus==DSATTSY_ALPHA_ID1_STATUS);
+	TEST(sendDtmf->iAlphaId.iAlphaId==DSATTSY_ALPHA_ID1);
+	TEST(sendDtmf->iDtmfString==DSATTSY_DTMF_STRING);
+	TEST(sendDtmf->iIconId.iIdentifier==DSATTSY_ICON_ID1);
+	TEST(sendDtmf->iIconId.iQualifier==DSATTSY_ICON_QUALIFIER1);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySendDtmfPCmd with RSat::TSendDtmfV1 passed"),iTestCount++);
+
+	// Send DTMF Cancel with V1
+	sat.NotifySendDtmfPCmd(reqStatus,*sendDtmfPckg);
+	sat.CancelAsyncRequest(ESatNotifySendDtmfPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySendDtmfPCmdCancel with RSat::TSendDtmfV1 passed"),iTestCount++);
+
+	// Send DTMF with V5
+	RSat::TSendDtmfV5* sendDtmfV5 = new (ELeave) RSat::TSendDtmfV5;
+	CleanupStack::PushL(sendDtmfV5);
+	RSat::TSendDtmfV5Pckg* sendDtmfV5Pckg = new (ELeave) RSat::TSendDtmfV5Pckg(*sendDtmfV5);
+	CleanupStack::PushL(sendDtmfV5Pckg);
+
+	TEST(sendDtmfV5->ExtensionId() == RSat::KSatV5);
+	TEST(sendDtmfV5->iTextAttribute.iStatus == RSat::ETextAttributeNotSet);
+
+	sat.NotifySendDtmfPCmd(reqStatus,*sendDtmfV5Pckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(sendDtmfV5->PCmdNumber()==DSATTSY_SEND_DTMF_NUMBER);
+
+	TEST(sendDtmfV5->iAlphaId.iStatus==DSATTSY_ALPHA_ID1_STATUS);
+	TEST(sendDtmfV5->iAlphaId.iAlphaId==DSATTSY_ALPHA_ID1);
+	TEST(sendDtmfV5->iDtmfString==DSATTSY_DTMF_STRING);
+	TEST(sendDtmfV5->iIconId.iIdentifier==DSATTSY_ICON_ID1);
+	TEST(sendDtmfV5->iIconId.iQualifier==DSATTSY_ICON_QUALIFIER1);
+	// V5 parameters
+	RSat::TTextAttribute textAttribute;
+	textAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+	const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+	textAttribute.iTextAttributeData.Append(textAttributeData, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+
+	TEST(sendDtmfV5->iTextAttribute.iStatus == textAttribute.iStatus);
+	TEST(sendDtmfV5->iTextAttribute.iTextAttributeData == textAttribute.iTextAttributeData);
+
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySendDtmfPCmd with RSat::TSendDtmfV5 passed"),iTestCount++);
+
+	// Send DTMF Cancel with V5
+	sat.NotifySendDtmfPCmd(reqStatus,*sendDtmfV5Pckg);
+	sat.CancelAsyncRequest(ESatNotifySendDtmfPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifySendDtmfPCmdCancel with RSat::TSendDtmfV5 passed"),iTestCount++);
+
+	// Send Dtmf Terminal Rsp
+	sat.NotifySendDtmfPCmd(reqStatus,*sendDtmfPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	RSat::TSendDtmfRspV1* sendDtmfRsp = new (ELeave) RSat::TSendDtmfRspV1;
+	CleanupStack::PushL(sendDtmfRsp);
+	RSat::TSendDtmfRspV1Pckg* sendDtmfRspPckg = new (ELeave) RSat::TSendDtmfRspV1Pckg(*sendDtmfRsp);
+	CleanupStack::PushL(sendDtmfRspPckg);
+
+	sendDtmfRsp->SetPCmdNumber(sendDtmf->PCmdNumber());
+	sendDtmfRsp->iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
+	sendDtmfRsp->iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
+	sendDtmfRsp->iAdditionalInfo=DSATTSY_NULL_BUF;
+
+	sat.TerminalRsp(reqStatus,RSat::ESendDtmf,*sendDtmfRspPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Send DTMF - passed"),iTestCount++);
+
+	CleanupStack::PopAndDestroy(6, sendDtmf);
+
+	// Perform Card APDU
+	RSat::TPerformCardApduV2* performCardApdu = new (ELeave) RSat::TPerformCardApduV2;
+	CleanupStack::PushL(performCardApdu);
+	RSat::TPerformCardApduV2Pckg* performCardApduPckg = new (ELeave) RSat::TPerformCardApduV2Pckg(*performCardApdu);
+	CleanupStack::PushL(performCardApduPckg);
+
+	sat.NotifyPerformCardApduPCmd(reqStatus,*performCardApduPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(performCardApdu->PCmdNumber()==DSATTSY_PERFORM_CARD_APDU_NUMBER);
+
+	TEST(performCardApdu->iDestination==DSATTSY_CARD_READER_1);
+	TEST(performCardApdu->iCApdu.iCla==DSATTSY_CLA);
+	TEST(performCardApdu->iCApdu.iIns==DSATTSY_INS);
+	TEST(performCardApdu->iCApdu.iLc==DSATTSY_LC);
+	TEST(performCardApdu->iCApdu.iLe==DSATTSY_LE);
+	TEST(performCardApdu->iCApdu.iP1==DSATTSY_P1);
+	TEST(performCardApdu->iCApdu.iP2==DSATTSY_P2);
+	TEST(performCardApdu->iCApdu.iData==DSATTSY_CAPDU);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifyPerformCardApduPCmd passed"),iTestCount++);
+
+	// Perform Card APDU Cancel
+	sat.NotifyPerformCardApduPCmd(reqStatus,*performCardApduPckg);
+	sat.CancelAsyncRequest(ESatNotifyPerformCardApduPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifyPerformCardApduCancel passed"),iTestCount++);
+
+	// Perform Card APDU Terminal Rsp
+	sat.NotifyPerformCardApduPCmd(reqStatus,*performCardApduPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	RSat::TPerformCardApduRspV2* performCardApduRsp = new (ELeave) RSat::TPerformCardApduRspV2;
+	CleanupStack::PushL(performCardApduRsp);
+	RSat::TPerformCardApduRspV2Pckg* performCardApduRspPckg = new (ELeave) RSat::TPerformCardApduRspV2Pckg(*performCardApduRsp);
+	CleanupStack::PushL(performCardApduRspPckg);
+
+	performCardApduRsp->SetPCmdNumber(performCardApdu->PCmdNumber());
+	performCardApduRsp->iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
+	performCardApduRsp->iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
+	performCardApduRsp->iAdditionalInfo=DSATTSY_NULL_BUF;
+
+	sat.TerminalRsp(reqStatus,RSat::EPerformCardApdu,*performCardApduRspPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Perform Card APDU - passed"),iTestCount++);
+
+	CleanupStack::PopAndDestroy(4, performCardApdu);
+
+	ExtendedTest1(reqStatus);
+
+	sat.Close();
+	phone.Close();
+
+	return TestStepResult();
+	}
+
+// Further tests, seperated to prevent stack overflow
+void CTestSatPCmds1c::ExtendedTest1(TRequestStatus& reqStatus)
+	{
+	// Notify Power Off Card
+	RSat::TPowerOffCardV2 powerOffCard;
+	RSat::TPowerOffCardV2Pckg powerOffCardPckg(powerOffCard);
+
+	sat.NotifyPowerOffCardPCmd(reqStatus,powerOffCardPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(powerOffCard.PCmdNumber()==DSATTSY_POWER_OFF_CARD_NUMBER);
+	TEST(powerOffCard.iDestination==DSATTSY_CARD_READER_1);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifyPowerOffCardPCmd passed"),iTestCount++);
+
+	// Power Off Card Cancel
+	sat.NotifyPowerOffCardPCmd(reqStatus,powerOffCardPckg);
+	sat.CancelAsyncRequest(ESatNotifyPowerOffCardPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifyPowerOffCardPCmdCancel passed"),iTestCount++);
+
+	// Power Off Card Terminal Rsp
+	sat.NotifyPowerOffCardPCmd(reqStatus,powerOffCardPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	RSat::TPowerOffCardRspV2 powerOffCardRsp;
+	RSat::TPowerOffCardRspV2Pckg powerOffCardRspPckg(powerOffCardRsp);
+
+	powerOffCardRsp.SetPCmdNumber(powerOffCard.PCmdNumber());
+	powerOffCardRsp.iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
+	powerOffCardRsp.iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
+	powerOffCardRsp.iAdditionalInfo=DSATTSY_NULL_BUF;
+
+	sat.TerminalRsp(reqStatus,RSat::EPowerOffCard,powerOffCardRspPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Power Off Card - passed"),iTestCount++);
+
+	// Power On Card
+	RSat::TPowerOnCardV2 powerOnCard;
+	RSat::TPowerOnCardV2Pckg powerOnCardPckg(powerOnCard);
+
+	sat.NotifyPowerOnCardPCmd(reqStatus,powerOnCardPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(powerOnCard.PCmdNumber()==DSATTSY_POWER_ON_CARD_NUMBER);
+	TEST(powerOnCard.iDestination==DSATTSY_CARD_READER_1);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifyPowerOnCardPCmd passed"),iTestCount++);
+
+	// Power On Card Cancel
+	sat.NotifyPowerOnCardPCmd(reqStatus,powerOnCardPckg);
+	sat.CancelAsyncRequest(ESatNotifyPowerOnCardPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifyPowerOnCardPCmdCancel passed"),iTestCount++);
+
+	// Power On Card Terminal Rsp
+	sat.NotifyPowerOnCardPCmd(reqStatus,powerOnCardPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	RSat::TPowerOnCardRspV2 powerOnCardRsp;
+	RSat::TPowerOnCardRspV2Pckg powerOnCardRspPckg(powerOnCardRsp);
+
+	powerOnCardRsp.SetPCmdNumber(powerOnCard.PCmdNumber());
+	powerOnCardRsp.iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
+	powerOnCardRsp.iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
+	powerOnCardRsp.iAdditionalInfo=DSATTSY_NULL_BUF;
+
+	sat.TerminalRsp(reqStatus,RSat::EPowerOnCard,powerOnCardRspPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Power On Card - passed"),iTestCount++);
+
+	// Get Reader Status
+	RSat::TGetReaderStatusV2 getReaderStatus;
+	RSat::TGetReaderStatusV2Pckg getReaderStatusPckg(getReaderStatus);
+
+	sat.NotifyGetReaderStatusPCmd(reqStatus,getReaderStatusPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(getReaderStatus.PCmdNumber()==DSATTSY_GET_READER_STATUS_NUMBER);
+	TEST(getReaderStatus.iDestination==DSATTSY_CARD_READER_1);
+	TEST(getReaderStatus.iMode==DSATTSY_GET_READER_STATUS_MODE);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifyGetReaderStatusPCmd passed"),iTestCount++);
+
+	// Get Reader Status Cancel
+	sat.NotifyGetReaderStatusPCmd(reqStatus,getReaderStatusPckg);
+	sat.CancelAsyncRequest(ESatNotifyGetReaderStatusPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifyGetReaderStatusPCmdCancel passed"),iTestCount++);
+
+	// Get Reader Status Terminal Rsp
+	sat.NotifyGetReaderStatusPCmd(reqStatus,getReaderStatusPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	RSat::TGetReaderStatusRspV2 getReaderStatusRsp;
+	RSat::TGetReaderStatusRspV2Pckg getReaderStatusRspPckg(getReaderStatusRsp);
+
+	getReaderStatusRsp.SetPCmdNumber(getReaderStatus.PCmdNumber());
+	getReaderStatusRsp.iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
+	getReaderStatusRsp.iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
+	getReaderStatusRsp.iAdditionalInfo=DSATTSY_NULL_BUF;
+	getReaderStatusRsp.iMode=DSATTSY_GET_READER_STATUS_MODE;
+
+	sat.TerminalRsp(reqStatus,RSat::EGetReaderStatus,getReaderStatusRspPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Get Reader Status - passed"),iTestCount++);
+
+	ExtendedTest2L(reqStatus);
+}
+
+void CTestSatPCmds1c::ExtendedTest2L(TRequestStatus& reqStatus)
+	{
+	// Run At Command with V2
+	RSat::TRunAtCommandV2* runAtCommand = new (ELeave) RSat::TRunAtCommandV2;
+	CleanupStack::PushL(runAtCommand);
+	RSat::TRunAtCommandV2Pckg* runAtCommandPckg = new (ELeave) RSat::TRunAtCommandV2Pckg(*runAtCommand);
+	CleanupStack::PushL(runAtCommandPckg);
+
+	sat.NotifyRunAtCommandPCmd(reqStatus,*runAtCommandPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(runAtCommand->PCmdNumber()==DSATTSY_RUN_AT_COMMAND_NUMBER);
+	TEST(runAtCommand->iAlphaId.iStatus==DSATTSY_ALPHA_ID1_STATUS);
+	TEST(runAtCommand->iAlphaId.iAlphaId==DSATTSY_ALPHA_ID1);
+	TEST(runAtCommand->iAtCommand==DSATTSY_AT_COMMAND);
+	TEST(runAtCommand->iIconId.iIdentifier==DSATTSY_ICON_ID1);
+	TEST(runAtCommand->iIconId.iQualifier==DSATTSY_ICON_QUALIFIER1);
+
+	INFO_PRINTF2(_L("Test %d - RSat::NotifyRunAtCommandPCmd with RSat::TRunAtCommandV2 passed"),iTestCount++);
+
+	// Run At Command Cancel with V2
+	sat.NotifyRunAtCommandPCmd(reqStatus,*runAtCommandPckg);
+	sat.CancelAsyncRequest(ESatNotifyRunAtCommandPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifyRunAtCommandPCmdCancel with RSat::TRunAtCommandV2 passed"),iTestCount++);
+
+	// Run At Command with V5
+	RSat::TRunAtCommandV5* runAtCommandV5 = new (ELeave) RSat::TRunAtCommandV5;
+	CleanupStack::PushL(runAtCommandV5);
+	RSat::TRunAtCommandV5Pckg* runAtCommandV5Pckg = new (ELeave) RSat::TRunAtCommandV5Pckg(*runAtCommandV5);
+	CleanupStack::PushL(runAtCommandV5Pckg);
+
+	TEST(runAtCommandV5->ExtensionId() == RSat::KSatV5);
+	TEST(runAtCommandV5->iTextAttribute.iStatus == RSat::ETextAttributeNotSet);
+
+	sat.NotifyRunAtCommandPCmd(reqStatus,*runAtCommandV5Pckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(runAtCommandV5->PCmdNumber()==DSATTSY_RUN_AT_COMMAND_NUMBER);
+	TEST(runAtCommandV5->iAlphaId.iStatus==DSATTSY_ALPHA_ID1_STATUS);
+	TEST(runAtCommandV5->iAlphaId.iAlphaId==DSATTSY_ALPHA_ID1);
+	TEST(runAtCommandV5->iAtCommand==DSATTSY_AT_COMMAND);
+	TEST(runAtCommandV5->iIconId.iIdentifier==DSATTSY_ICON_ID1);
+	TEST(runAtCommandV5->iIconId.iQualifier==DSATTSY_ICON_QUALIFIER1);
+	// Version 5 parameters
+	RSat::TTextAttribute textAttribute;
+	textAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+	const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+	textAttribute.iTextAttributeData.Append(textAttributeData, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+
+	TEST(runAtCommandV5->iTextAttribute.iStatus == textAttribute.iStatus);
+	TEST(runAtCommandV5->iTextAttribute.iTextAttributeData == textAttribute.iTextAttributeData);
+
+	INFO_PRINTF2(_L("Test %d - RSat::NotifyRunAtCommandPCmd with RSat::TRunAtCommandV5 passed"),iTestCount++);
+
+	// Run At Command Cancel with V2
+	sat.NotifyRunAtCommandPCmd(reqStatus,*runAtCommandV5Pckg);
+	sat.CancelAsyncRequest(ESatNotifyRunAtCommandPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifyRunAtCommandPCmdCancel with RSat::TRunAtCommandV5 passed"),iTestCount++);
+
+	// Run At Command Terminal Rsp
+	sat.NotifyRunAtCommandPCmd(reqStatus,*runAtCommandPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	RSat::TRunAtCommandRspV2* runAtCommandRsp = new (ELeave) RSat::TRunAtCommandRspV2;
+	CleanupStack::PushL(runAtCommandRsp);
+	RSat::TRunAtCommandRspV2Pckg* runAtCommandRspPckg = new (ELeave) RSat::TRunAtCommandRspV2Pckg(*runAtCommandRsp);
+	CleanupStack::PushL(runAtCommandRspPckg);
+
+	runAtCommandRsp->SetPCmdNumber(runAtCommand->PCmdNumber());
+	runAtCommandRsp->iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
+	runAtCommandRsp->iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
+	runAtCommandRsp->iAdditionalInfo=DSATTSY_NULL_BUF;
+
+	sat.TerminalRsp(reqStatus,RSat::ERunAtCommand,*runAtCommandRspPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Run AT Command - passed"),iTestCount++);
+
+	CleanupStack::PopAndDestroy(6, runAtCommand);
+
+	// Language Notification
+	RSat::TLanguageNotificationV2 languageNotification;
+	RSat::TLanguageNotificationV2Pckg languageNotificationPckg(languageNotification);
+
+	sat.NotifyLanguageNotificationPCmd(reqStatus,languageNotificationPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(languageNotification.PCmdNumber()==DSATTSY_LANGUAGE_NOTIFICATION_NUMBER);
+	TEST(languageNotification.iNotificationType==DSATTSY_SPECIFIC_LANGUAGE);
+	TEST(languageNotification.iLanguage==DSATTSY_FRENCH);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifyLanguageNotificationPCmd passed"),iTestCount++);
+
+	// Language Notification Cancel
+	sat.NotifyLanguageNotificationPCmd(reqStatus,languageNotificationPckg);
+	sat.CancelAsyncRequest(ESatNotifyLanguageNotificationPCmd);
+
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::NotifyLanguageNotificationPCmdCancel passed"),iTestCount++);
+
+	// Language Notification Terminal Rsp
+	sat.NotifyLanguageNotificationPCmd(reqStatus,languageNotificationPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	RSat::TLanguageNotificationRspV2 languageNotificationRsp;
+	RSat::TLanguageNotificationRspV2Pckg languageNotificationRspPckg(languageNotificationRsp);
+
+	languageNotificationRsp.SetPCmdNumber(languageNotification.PCmdNumber());
+	languageNotificationRsp.iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
+	languageNotificationRsp.iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
+	languageNotificationRsp.iAdditionalInfo=DSATTSY_NULL_BUF;
+
+	sat.TerminalRsp(reqStatus,RSat::ELanguageNotification,languageNotificationRspPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Language Notification - passed"),iTestCount++);
+
+	ExtendedTest3L(reqStatus);
+	}
+
+// Further tests, seperated to prevent stack overflow
+void CTestSatPCmds1c::ExtendedTest3L(TRequestStatus& reqStatus)
+	{
+	//
+	// Launch Browser
+	//
+
+	// Test version 2 command
+	RSat::TLaunchBrowserV2*		launchBrowser = new (ELeave) RSat::TLaunchBrowserV2;
+	CleanupStack::PushL(launchBrowser);
+	RSat::TLaunchBrowserV2Pckg*	launchBrowserPckg = new (ELeave) RSat::TLaunchBrowserV2Pckg(*launchBrowser);
+	CleanupStack::PushL(launchBrowserPckg);
+
+	TestLaunchBrowser(launchBrowserPckg);
+
+	CleanupStack::PopAndDestroy(2, launchBrowser);
+
+	// Continue tests
+	ExtendedTest4L(reqStatus);
+	}
+
+// Further tests, seperated to prevent stack overflow
+void CTestSatPCmds1c::ExtendedTest4L(TRequestStatus& reqStatus)
+	{
+	// Test version 5 command
+	RSat::TLaunchBrowserV5*		launchBrowserV5 = new (ELeave) RSat::TLaunchBrowserV5;
+	CleanupStack::PushL(launchBrowserV5);
+	RSat::TLaunchBrowserV5Pckg*	launchBrowserV5Pckg = new (ELeave) RSat::TLaunchBrowserV5Pckg(*launchBrowserV5);
+	CleanupStack::PushL(launchBrowserV5Pckg);
+
+	TEST(launchBrowserV5->ExtensionId() == RSat::KSatV5);
+	TEST(launchBrowserV5->iTextAttribute.iStatus == RSat::ETextAttributeNotSet);
+	TestLaunchBrowser(launchBrowserV5Pckg);
+
+	// Launch Browser Terminal Rsp
+	RSat::TLaunchBrowserV2*		launchBrowser = new (ELeave) RSat::TLaunchBrowserV2;
+	CleanupStack::PushL(launchBrowser);
+	RSat::TLaunchBrowserV2Pckg*	launchBrowserPckg = new (ELeave) RSat::TLaunchBrowserV2Pckg(*launchBrowser);
+	CleanupStack::PushL(launchBrowserPckg);
+
+	sat.NotifyLaunchBrowserPCmd(reqStatus,*launchBrowserPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	RSat::TLaunchBrowserRspV2* launchBrowserRsp = new (ELeave) RSat::TLaunchBrowserRspV2;
+	CleanupStack::PushL(launchBrowserRsp);
+	RSat::TLaunchBrowserRspV2Pckg* launchBrowserRspPckg = new (ELeave) RSat::TLaunchBrowserRspV2Pckg(*launchBrowserRsp);
+	CleanupStack::PushL(launchBrowserRspPckg);
+
+	launchBrowserRsp->SetPCmdNumber(launchBrowser->PCmdNumber());
+	launchBrowserRsp->iGeneralResult=DSATTSY_PCMD_RESULT_SUCCESS;
+	launchBrowserRsp->iInfoType=DSATTSY_PCMD_RSP_NO_INFO;
+	launchBrowserRsp->iAdditionalInfo=DSATTSY_NULL_BUF;
+
+	sat.TerminalRsp(reqStatus,RSat::ELaunchBrowser,*launchBrowserRspPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	INFO_PRINTF2(_L("Test %d - RSat::TerminalRsp - Launch Browser - passed"),iTestCount++);
+
+	CleanupStack::PopAndDestroy(6, launchBrowserV5);
+
+	// Continue tests
+	ExtendedTest5(reqStatus);
+	}
+
+// Further tests, seperated to prevent stack overflow
+void CTestSatPCmds1c::ExtendedTest5(TRequestStatus& reqStatus)
+	{
+	//
+	// Get Provisioning File Ref
+	//
+
+	RSat::TProvisioningFileRef		fileRef;
+	TBuf8<256>						retFile;
+
+	// Get with valid file ref
+
+	fileRef = DSATTSY_FILE_REF_DATA_1;
+
+	sat.GetProvisioningRefFile(reqStatus, fileRef, retFile);
+	User::WaitForRequest(reqStatus);
+
+	TEST(reqStatus.Int()==KErrNone);
+	TEST(retFile == DSATTSY_FILE1);
+
+	INFO_PRINTF2(_L("Test %d - RSat::GetProvisioningRefFile(valid file) passed"),iTestCount++);
+
+	sat.GetProvisioningRefFile(reqStatus, fileRef, retFile);
+	sat.CancelAsyncRequest(ESatGetProvisioningRefFile);
+	User::WaitForRequest(reqStatus);
+
+	TEST(reqStatus.Int()==KErrCancel);
+
+	INFO_PRINTF2(_L("Test %d - RSat::GetProvisioningRefFileCancel Cancel passed"),iTestCount++);
+
+	// Get with invalid file ref
+
+	fileRef = DSATTSY_INVALID_REF_FILE;
+
+	sat.GetProvisioningRefFile(reqStatus, fileRef, retFile);
+	User::WaitForRequest(reqStatus);
+
+	TEST(reqStatus.Int()==KErrNotFound);
+
+	INFO_PRINTF2(_L("Test %d - RSat::GetProvisioningRefFile(invalid file) passed"),iTestCount++);
+
+	sat.GetProvisioningRefFile(reqStatus, fileRef, retFile);
+	sat.CancelAsyncRequest(ESatGetProvisioningRefFile);
+	User::WaitForRequest(reqStatus);
+
+	TEST(reqStatus.Int()==KErrCancel);
+
+	INFO_PRINTF2(_L("Test %d - RSat::GetProvisioningRefFileCancel Cancel passed"),iTestCount++);
+	}
+
+void CTestSatPCmds1c::TestLaunchBrowser(TDes8* aLaunchBrowserPCmdPckg)
+	{
+	RSat::TLaunchBrowserV2Pckg* launchBrowserPckg = (RSat::TLaunchBrowserV2Pckg*)aLaunchBrowserPCmdPckg;
+	RSat::TLaunchBrowserV2& launchBrowser = (*launchBrowserPckg)();
+
+	RSat::TProvisioningFileRef  file;
+
+	// Perform 5 tests, check comment for each test to see the expected result for that test
+	for (TInt browserTest = 0; browserTest < 5; ++browserTest)		// Note start:end indices
+		{
+		sat.NotifyLaunchBrowserPCmd(reqStatus,*launchBrowserPckg);
+		User::WaitForRequest(reqStatus);
+		TEST(reqStatus.Int()==KErrNone);
+
+		TEST(launchBrowser.PCmdNumber()			== DSATTSY_LAUNCH_BROWSER_NUMBER);
+		TEST(launchBrowser.iBrowserSel			== DSATTSY_BROWSER_SELECTION_MODE);
+		TEST(launchBrowser.iBrowserId			== DSATTSY_BROWSER_ID);
+		TEST(launchBrowser.iUrl					== DSATTSY_URL);
+		TEST(launchBrowser.iBearerList			== DSATTSY_BEARER_LIST);
+		TEST(launchBrowser.iText				== DSATTSY_PROXY_NAME);
+		TEST(launchBrowser.iAlphaId.iStatus		== DSATTSY_ALPHA_ID1_STATUS);
+		TEST(launchBrowser.iAlphaId.iAlphaId	== DSATTSY_ALPHA_ID1);
+		TEST(launchBrowser.iIconId.iIdentifier	== DSATTSY_ICON_ID1);
+		TEST(launchBrowser.iIconId.iQualifier	== DSATTSY_ICON_QUALIFIER1);
+
+		if (launchBrowser.ExtensionId() == RSat::KSatV5)
+			{
+			RSat::TLaunchBrowserV5Pckg* aV5PCmdPckg = (RSat::TLaunchBrowserV5Pckg*)aLaunchBrowserPCmdPckg;
+			RSat::TLaunchBrowserV5&   launchBrowserV5 = (*aV5PCmdPckg)();
+
+			RSat::TTextAttribute textAttribute;
+			textAttribute.iStatus = DSATTSY_TEXT_ATTRIBUTE_STATUS;
+			const TUint8 textAttributeData[DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH] = DSATTSY_TEXT_ATTRIBUTE_DATA;
+			textAttribute.iTextAttributeData.Append(textAttributeData, DSATTSY_TEXT_ATTRIBUTE_DATA_LENGTH);
+
+			TEST(launchBrowserV5.iTextAttribute.iStatus == textAttribute.iStatus);
+			TEST(launchBrowserV5.iTextAttribute.iTextAttributeData == textAttribute.iTextAttributeData);
+			}
+
+		// Provisioning file ref checks
+
+		switch (browserTest)
+			{
+		case 0:
+			// expect 1 file ref of 1 byte length
+			TEST(launchBrowser.NumberOfFileRef()   == DSATTSY_REF_COUNT_1);
+			TEST(launchBrowser.GetFileRef(1, file) == KErrNone);
+			TEST(file == DSATTSY_FILE_REF_DATA_1);
+			break;
+
+		case 1:
+			// expect 1 file ref of 128 bytes length
+			TEST(launchBrowser.NumberOfFileRef()   == DSATTSY_REF_COUNT_2);
+			TEST(launchBrowser.GetFileRef(1, file) == KErrNone);
+			TEST(file == DSATTSY_FILE_REF_DATA_128);
+			break;
+
+		case 2:
+			// expect 2 file refs, each of 1 byte length
+			TEST(launchBrowser.NumberOfFileRef()   == DSATTSY_REF_COUNT_3);
+			TEST(launchBrowser.GetFileRef(1, file) == KErrNone);
+			TEST(file == DSATTSY_FILE_REF_DATA_1);
+			TEST(launchBrowser.GetFileRef(2, file) == KErrNone);
+			TEST(file == DSATTSY_FILE_REF_DATA_1);
+			break;
+
+		case 3:
+			// 1 ref of 128 bytes, test TSY attempts to add 2 refs but 2nd too large so should be rejected
+			TEST(launchBrowser.NumberOfFileRef()   == DSATTSY_REF_COUNT_4);
+			TEST(launchBrowser.GetFileRef(1, file) == KErrNone);
+			TEST(file == DSATTSY_FILE_REF_DATA_128);
+			break;
+
+		case 4:
+			// 2 refs of 128 bytes & 1 byte
+			TEST(launchBrowser.NumberOfFileRef()   == DSATTSY_REF_COUNT_5);
+			TEST(launchBrowser.GetFileRef(1, file) == KErrNone);
+			TEST(file == DSATTSY_FILE_REF_DATA_128);
+			TEST(launchBrowser.GetFileRef(2, file) == KErrNone);
+			TEST(file == DSATTSY_FILE_REF_DATA_1);
+			// Ask for out-of-range file ref - greater than last index
+			TEST(launchBrowser.GetFileRef(3, file) == KErrNotFound);
+			// Ask for out-of-range file ref - bigger than max ref
+			TEST(launchBrowser.GetFileRef(255, file) == KErrNotFound);
+			break;
+			}
+
+		launchBrowser.ResetFileRef();
+
+		if (launchBrowser.ExtensionId() == RSat::KSatV2)
+			{
+			INFO_PRINTF2(_L("Test %d - RSat::NotifyLaunchBrowserPCmd with RSat::TLaunchBrowserV2 passed"),iTestCount++);
+			}
+		else if (launchBrowser.ExtensionId() == RSat::KSatV5)
+			{
+			INFO_PRINTF2(_L("Test %d - RSat::NotifyLaunchBrowserPCmd with RSat::TLaunchBrowserV5 passed"),iTestCount++);
+			}
+
+		// Launch Browser Cancel
+		sat.NotifyLaunchBrowserPCmd(reqStatus,*launchBrowserPckg);
+		sat.CancelAsyncRequest(ESatNotifyLaunchBrowserPCmd);
+
+		User::WaitForRequest(reqStatus);
+		TEST(reqStatus.Int()==KErrCancel);
+
+		if (launchBrowser.ExtensionId() == RSat::KSatV2)
+			INFO_PRINTF2(_L("Test %d - RSat::NotifyLaunchBrowserPCmdCancel with RSat::TLaunchBrowserV2 passed"),iTestCount++);
+		else if (launchBrowser.ExtensionId() == RSat::KSatV5)
+			INFO_PRINTF2(_L("Test %d - RSat::NotifyLaunchBrowserPCmdCancel with RSat::TLaunchBrowserV5 passed"),iTestCount++);
+
+		}
+	}