telephonyserver/etelsimtoolkit/tetel/Te_EtelSat/TE_EtelSatenvelopecmds.cpp
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserver/etelsimtoolkit/tetel/Te_EtelSat/TE_EtelSatenvelopecmds.cpp	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,544 @@
+// 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_EtelSatenvelopecmds.h"
+
+CTestSatEnvelopeCmds::CTestSatEnvelopeCmds()
+/** 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("TestSatEnvelopeCmds"));
+	}
+
+enum TVerdict CTestSatEnvelopeCmds::doTestStepL()
+	{
+	INFO_PRINTF1(_L("**************************************"));
+	INFO_PRINTF1(_L("Test RSat Envelope Cmds Functionality"));
+	INFO_PRINTF1(_L("**************************************"));
+
+	RPhone phone;
+	TInt ret=phone.Open(iTelServer,DSATTSY_PHONE_NAME);
+	TEST(ret==KErrNone);
+
+	RSat sat;
+	ret=sat.Open(phone);
+    TEST(ret==KErrNone);
+
+	//
+	// Local variables used throughout the sat tests
+	//
+	TRequestStatus reqStatus;
+	iTestCount=1;
+
+	//
+	// Get ME side SAT profile for V2
+	//
+	RSat::TSatProfileV2 profile;
+	RSat::TSatProfileV2Pckg profilePckg(profile);
+
+	TEST(profile.ExtensionId() == RSat::KSatV2);
+
+	sat.GetMeSideSatProfile(reqStatus, profilePckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	TEST(profile.iSatProfileByte1==0x01);
+	TEST(profile.iSatProfileByte2==0x02);
+	TEST(profile.iSatProfileByte3==0x03);
+	TEST(profile.iSatProfileByte4==0x04);
+	TEST(profile.iSatProfileByte5==0x05);
+	TEST(profile.iSatProfileByte6==0x06);
+	TEST(profile.iSatProfileByte7==0x07);
+	TEST(profile.iSatProfileByte8==0x08);
+	TEST(profile.iSatProfileByte9==0x09);
+	TEST(profile.iSatProfileByte10==0x0A);
+	TEST(profile.iSatProfileByte11==0x0B);
+	TEST(profile.iSatProfileByte12==0x0C);
+	TEST(profile.iSatProfileByte13==0x0D);
+	TEST(profile.iSatProfileByte14==0x0E);
+	TEST(profile.iSatProfileByte15==0x0F);
+	TEST(profile.iSatProfileByte16==0x10);
+	TEST(profile.iSatProfileByte17==0x20);
+	TEST(profile.iSatProfileByte18==0x30);
+	TEST(profile.iNumOfChannels==DSATTSY_NUMBER_OF_CHANNELS);
+	TEST(profile.iScreenHeight==DSATTSY_SCREEN_HEIGHT);
+	TEST(profile.iScreenWidth==DSATTSY_SCREEN_WIDTH);
+	TEST(profile.iTiaEiaProtoVersion==DSATTSY_PROTO_VERSION);
+	TEST(profile.iWidthReduction==DSATTSY_WIDTH_REDUCTION);
+
+	INFO_PRINTF2(_L("Test %d - RSat::GetMeSideSatProfile with RSat::TSatProfileV2 passed"),iTestCount++);
+
+	sat.GetMeSideSatProfile(reqStatus, profilePckg);
+	sat.CancelAsyncRequest(ESatGetMeSideSatProfile);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::GetMeSideSatProfileCancel with RSat::TSatProfileV2 passed"),iTestCount++);
+
+	//
+	// Client SAT profile indication
+	//
+	TEST(sat.ClientSatProfileIndication(profilePckg)==KErrNone);
+	INFO_PRINTF2(_L("Test %d - RSat::ClientSatProfileIndication with RSat::TSatProfileV2 passed"),iTestCount++);
+
+	//
+	// Get ME side SAT profile for V5
+	//
+	RSat::TSatProfileV5 profileV5;
+	RSat::TSatProfileV5Pckg profileV5Pckg(profileV5);
+
+	TEST(profileV5.ExtensionId() == RSat::KSatV5);
+
+	sat.GetMeSideSatProfile(reqStatus, profileV5Pckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	// Pre-version 5 parameters in SAT profile
+	TEST(profileV5.iSatProfileByte1==0x01);
+	TEST(profileV5.iSatProfileByte2==0x02);
+	TEST(profileV5.iSatProfileByte3==0x03);
+	TEST(profileV5.iSatProfileByte4==0x04);
+	TEST(profileV5.iSatProfileByte5==0x05);
+	TEST(profileV5.iSatProfileByte6==0x06);
+	TEST(profileV5.iSatProfileByte7==0x07);
+	TEST(profileV5.iSatProfileByte8==0x08);
+	TEST(profileV5.iSatProfileByte9==0x09);
+	TEST(profileV5.iSatProfileByte10==0x0A);
+	TEST(profileV5.iSatProfileByte11==0x0B);
+	TEST(profileV5.iSatProfileByte12==0x0C);
+	TEST(profileV5.iSatProfileByte13==0x0D);
+	TEST(profileV5.iSatProfileByte14==0x0E);
+	TEST(profileV5.iSatProfileByte15==0x0F);
+	TEST(profileV5.iSatProfileByte16==0x10);
+	TEST(profileV5.iSatProfileByte17==0x20);
+	TEST(profileV5.iSatProfileByte18==0x30);
+	TEST(profileV5.iNumOfChannels==DSATTSY_NUMBER_OF_CHANNELS);
+	TEST(profileV5.iScreenHeight==DSATTSY_SCREEN_HEIGHT);
+	TEST(profileV5.iScreenWidth==DSATTSY_SCREEN_WIDTH);
+	TEST(profileV5.iTiaEiaProtoVersion==DSATTSY_PROTO_VERSION);
+	TEST(profileV5.iWidthReduction==DSATTSY_WIDTH_REDUCTION);
+	// Version 5 parameters in profile
+	// (test also that the TSatProfileByte28 and TSatProfileByte29
+	// have been defined correctly as each should set a different bit).
+	TEST(profileV5.iSatProfileByte28==
+			(RSat::KCapsTextAttributeAlignmentLeft | RSat::KCapsTextAttributeAlignmentCentre |
+			 RSat::KCapsTextAttributeAlignmentRight | RSat::KCapsTextAttributeFontSizeNormal |
+			 RSat::KCapsTextAttributeFontSizeLarge | RSat::KCapsTextAttributeFontSizeSmall)); // 0x3F
+	TEST(profileV5.iSatProfileByte29==(RSat::KCapsTextAttributeStyleNormal |
+									 RSat::KCapsTextAttributeStyleBold |
+									 RSat::KCapsTextAttributeStyleItalic |
+									 RSat::KCapsTextAttributeStyleUnderline |
+									 RSat::KCapsTextAttributeStyleStrikethrough |
+									 RSat::KCapsTextAttributeStyleForeground |
+									 RSat::KCapsTextAttributeStyleBackground)); // 0x7F
+
+	INFO_PRINTF2(_L("Test %d - RSat::GetMeSideSatProfile with RSat::TSatProfileV5 passed"),iTestCount++);
+
+	sat.GetMeSideSatProfile(reqStatus, profileV5Pckg);
+	sat.CancelAsyncRequest(ESatGetMeSideSatProfile);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::GetMeSideSatProfileCancel with RSat::TSatProfileV5 passed"),iTestCount++);
+
+	//
+	// Client SAT profile indication for V5
+	//
+	TEST(sat.ClientSatProfileIndication(profileV5Pckg)==KErrNone);
+	INFO_PRINTF2(_L("Test %d - RSat::ClientSatProfileIndication RSat::TSatProfileV5 passed"),iTestCount++);
+
+	// Menu Selection
+	RSat::TMenuSelectionV1 selection;
+	RSat::TMenuSelectionV1Pckg selectionPckg(selection);
+
+	selection.iHelp		=DSATTSY_HELP_REQUESTED;
+	selection.iItemId	=DSATTSY_ITEM_ID;
+
+	sat.MenuSelection(reqStatus, selectionPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	INFO_PRINTF2(_L("Test %d - RSat::MenuSelection passed"),iTestCount++);
+
+	// Menu Selection Cancel
+	sat.MenuSelection(reqStatus,selectionPckg);
+	sat.CancelAsyncRequest(ESatMenuSelection);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	INFO_PRINTF2(_L("Test %d - RSat::MenuSelectionCancel passed"),iTestCount++);
+
+	// Event Download
+
+	// Test each event
+
+	RSat::TEventList				eventList;
+	RSat::TEventDownloadBaseV2		eventBaseV2;
+	RSat::TEventDownloadBaseV2Pckg	eventBaseV2Pckg( eventBaseV2 );
+
+	// KUserActivity
+
+	eventList = RSat::KUserActivity;
+
+	sat.EventDownload( reqStatus, eventList, eventBaseV2Pckg );	// No associated data
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	INFO_PRINTF2(_L("Test %d - RSat::EventDownload(KUserActivity) passed"),iTestCount++);
+
+	// Event Download Cancel
+
+	sat.EventDownload( reqStatus, eventList, eventBaseV2Pckg );	// No associated data
+	sat.CancelAsyncRequest(ESatEventDownload);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+
+	INFO_PRINTF2(_L("Test %d - RSat::EventDownloadCancel passed"),iTestCount++);
+
+	// KIdleScreenAvailable
+
+	eventList = RSat::KIdleScreenAvailable;
+
+	sat.EventDownload( reqStatus, eventList,  eventBaseV2Pckg );	// No associated data
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	INFO_PRINTF2(_L("Test %d - RSat::EventDownload(KIdleScreenAvailable) passed"),iTestCount++);
+
+	sat.EventDownload( reqStatus, eventList,  eventBaseV2Pckg );	// No associated data
+	sat.CancelAsyncRequest(ESatEventDownload);
+	User::WaitForRequest(reqStatus);
+
+	// KCardReaderStatus
+
+	RSat::TCardReaderStatusEventV2		eventCardStatus;
+	RSat::TCardReaderStatusEventV2Pckg	eventCardStatusPckg(eventCardStatus);
+
+	eventList						  = RSat::KCardReaderStatus;
+	eventCardStatus.iCardReaderStatus = DSATTSY_EVENT_CARD_READER_STATUS;
+
+	sat.EventDownload( reqStatus, eventList, eventCardStatusPckg );
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	INFO_PRINTF2(_L("Test %d - RSat::EventDownload(KCardReaderStatus) passed"),iTestCount++);
+
+	sat.EventDownload( reqStatus, eventList, eventCardStatusPckg );
+	sat.CancelAsyncRequest(ESatEventDownload);
+	User::WaitForRequest(reqStatus);
+
+	// KLanguageSelection
+
+	RSat::TLanguageSelectionEventV2		languageSelect;
+	RSat::TLanguageSelectionEventV2Pckg	languageSelectPckg(languageSelect);
+
+	eventList				 = RSat::KLanguageSelection;
+	languageSelect.iLanguage = DSATTSY_EVENT_LANGUAGE_SELECTION;
+
+	sat.EventDownload( reqStatus, eventList, languageSelectPckg );
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	INFO_PRINTF2(_L("Test %d - RSat::EventDownload(KLanguageSelection) passed"),iTestCount++);
+
+	sat.EventDownload( reqStatus, eventList, languageSelectPckg );
+	sat.CancelAsyncRequest(ESatEventDownload);
+	User::WaitForRequest(reqStatus);
+
+	// KBrowserTermination
+
+	RSat::TBrowserTerminationEventV2		browserTerm;
+	RSat::TBrowserTerminationEventV2Pckg	browserTermPckg( browserTerm );
+
+	eventList		   = RSat::KBrowserTermination;
+	browserTerm.iCause = DSATTSY_EVENT_BROWSER_TERMINATION_CAUSE;
+
+	sat.EventDownload( reqStatus, eventList, browserTermPckg );
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	INFO_PRINTF2(_L("Test %d - RSat::EventDownload(KBrowserTermination) passed"),iTestCount++);
+
+	sat.EventDownload( reqStatus, eventList, browserTermPckg );
+	sat.CancelAsyncRequest(ESatEventDownload);
+	User::WaitForRequest(reqStatus);
+
+	// KDataAvailable
+
+	RSat::TDataAvailableEventV2		dataAvailable;
+	RSat::TDataAvailableEventV2Pckg	dataAvailablePckg( dataAvailable );
+
+	eventList	 = RSat::KDataAvailable;
+
+	dataAvailable.iStatus.Append( DSATTSY_EVENT_DATA_AVAILABLE_STATUS );
+	dataAvailable.iLength = DSATTSY_EVENT_DATA_AVAILABLE_LENGTH;
+
+	sat.EventDownload( reqStatus, eventList, dataAvailablePckg );
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	INFO_PRINTF2(_L("Test %d - RSat::EventDownload(KDataAvailable) passed"),iTestCount++);
+
+	sat.EventDownload( reqStatus, eventList, dataAvailablePckg );
+	sat.CancelAsyncRequest(ESatEventDownload);
+	User::WaitForRequest(reqStatus);
+
+	// KChannelStatus
+
+	RSat::TChannelStatusEventV2		channelStatus;
+	RSat::TChannelStatusEventV2Pckg	channelStatusPckg( channelStatus );
+
+	eventList			  = RSat::KChannelStatus;
+	channelStatus.iStatus = DSATTSY_EVENT_CHANNEL_STATUS;
+
+	sat.EventDownload( reqStatus, eventList, channelStatusPckg );
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	INFO_PRINTF2(_L("Test %d - RSat::EventDownload(KChannelStatus) passed"),iTestCount++);
+
+	sat.EventDownload( reqStatus, eventList, channelStatusPckg );
+	sat.CancelAsyncRequest(ESatEventDownload);
+	User::WaitForRequest(reqStatus);
+
+	// KDisplayParamsChanges
+
+	RSat::TDisplayParamsEventV2		displayParams;
+	RSat::TDisplayParamsEventV2Pckg	displayParamsPckg( displayParams );
+
+	eventList	 = RSat::KDisplayParamsChanges;
+
+	displayParams.iSatProfileByte14 = DSATTSY_EVENT_DISPLAY_PROF14;
+	displayParams.iScreenHeight     = DSATTSY_SCREEN_HEIGHT;
+	displayParams.iSatProfileByte15 = DSATTSY_EVENT_DISPLAY_PROF15;
+	displayParams.iScreenWidth		= DSATTSY_SCREEN_WIDTH;
+	displayParams.iSatProfileByte16 = DSATTSY_EVENT_DISPLAY_PROF16;
+	displayParams.iWidthReduction   = DSATTSY_WIDTH_REDUCTION;
+
+	sat.EventDownload( reqStatus, eventList, displayParamsPckg );
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	INFO_PRINTF2(_L("Test %d - RSat::EventDownload(KDisplayParams) passed"),iTestCount++);
+
+	sat.EventDownload( reqStatus, eventList, displayParamsPckg );
+	sat.CancelAsyncRequest(ESatEventDownload);
+	User::WaitForRequest(reqStatus);
+
+	// KLocalConnection
+
+	RSat::TLocalConnectionEventV2		localConnection;
+	RSat::TLocalConnectionEventV2Pckg	localConnectionPckg( localConnection );
+
+	eventList	 = RSat::KLocalConnection;
+	localConnection.iRecord.iBearerId  = DSATTSY_EVENT_LOCAL_BEARER_ID;
+	localConnection.iRecord.iServiceId = DSATTSY_EVENT_LOCAL_SERVICE_ID;
+	localConnection.iRecord.iRecord	   = DSATTSY_EVENT_LOCAL_SERVICE_RECORD;
+	localConnection.iAddress.iCoding   = DSATTSY_EVENT_LOCAL_ADDR_CODING ;
+	localConnection.iAddress.iAddress  = DSATTSY_EVENT_LOCAL_ADDRESS;
+
+	sat.EventDownload( reqStatus, eventList, localConnectionPckg );
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+
+	INFO_PRINTF2(_L("Test %d - RSat::EventDownload(KLocalConnection) passed"),iTestCount++);
+
+	sat.EventDownload( reqStatus, eventList, displayParamsPckg );
+	sat.CancelAsyncRequest(ESatEventDownload);
+	User::WaitForRequest(reqStatus);
+	
+	/** Testing the Release 6 features supported by the envelope commands*/
+	/**
+	Testing Event Download envelope command w.r.t NetworkSearchModeChangeEvent which has been updated
+    as part of the Release 6 Features of USIM Application ToolKit
+	@test TSAT324
+	*/
+	RSat::TNetworkSearchModeChangeEventV6 networkSearchModeChangeEvent;	
+	RSat::TNetworkSearchModeChangeEventV6Pckg networkSearchModeChangeEventPckg(networkSearchModeChangeEvent);
+	
+	eventList=RSat::KNetworkSearchModeChange;
+	networkSearchModeChangeEvent.iNetworkSearchMode=DSATTSY_NETWORK_SEARCH_MODE1;
+	
+	sat.EventDownload(reqStatus,eventList,networkSearchModeChangeEventPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	
+    INFO_PRINTF2(_L("Test %d - EventDownload - NetworkSearchModeChangeEvent- passed"),iTestCount++);
+    
+    /**
+    Testing Cancel API for the Event Download envelope command
+    @test TSAT325
+    */
+    
+    //Cancel	
+	sat.EventDownload(reqStatus,eventList,networkSearchModeChangeEventPckg);
+	sat.CancelAsyncRequest(ESatEventDownload);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	
+	//BrowsingStatusEvent 
+	
+	/**
+	Testing Event Download envelope command w.r.t TBrowsingStatusEventV6 which has been updated
+    as part of the Release 6 Features of USIM Application ToolKit
+	@test TSAT326
+	*/
+	RSat::TBrowsingStatusEventV6 browsingStatusEvent;
+	RSat::TBrowsingStatusEventV6Pckg	browsingStatusEventPckg(browsingStatusEvent);
+
+	eventList=RSat::KBrowsingStatusChange;
+	browsingStatusEvent.iBrowserStatus = DSATTSY_BROWSING_STATUS1;
+	
+	sat.EventDownload(reqStatus,eventList,browsingStatusEventPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	
+    INFO_PRINTF2(_L("Test %d - EventDownload - BrowsingStatusEvent- passed"),iTestCount++);
+    
+    /**
+    Testing Cancel API for the Event Download envelope command
+    @test TSAT327
+    */
+    
+    //Cancel	
+	sat.EventDownload(reqStatus,eventList, browsingStatusEventPckg);
+	sat.CancelAsyncRequest(ESatEventDownload);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	
+	//FramesInformationChangedEvent
+	
+	/**
+	Testing Event Download envelope command w.r.t FramesInformationChangedEvent which has been updated
+    as part of the Release 6 Features of USIM Application ToolKit
+	@test TSAT328
+	*/
+	RSat::TFramesInformationChangedEventV6 framesInfoChangedEvent;
+	RSat::TFramesInformationChangedEventV6Pckg	framesInfoChangedEventPckg(framesInfoChangedEvent);
+
+	eventList=RSat::KFramesInformationChange;
+	framesInfoChangedEvent.iFramesInformation.iFrameId = DSATTSY_FRAMES_INFORMATION_FRAMEID;
+	framesInfoChangedEvent.iFramesInformation.iFrameList= DSATTSY_FRAMES_INFORMATION_FRAME_LIST;
+	
+	sat.EventDownload(reqStatus,eventList, framesInfoChangedEventPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	
+    INFO_PRINTF2(_L("Test %d - EventDownload - framesInformationChangedEvent- passed"),iTestCount++);
+    
+    /**
+    Testing Cancel API for the Event Download envelope command
+    @test TSAT329
+    */
+    
+    //Cancel	
+	sat.EventDownload(reqStatus,eventList, framesInfoChangedEventPckg);
+	sat.CancelAsyncRequest(ESatEventDownload);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	
+	/**
+	Testing Multimedia Messaging Service Transfer Status envelope command which has been newly
+	added as part of the Release 6 Features of USIM Application ToolKit
+	@test TSAT299
+	*/
+	RSat::TMmsTransferStatusV6 mmsTransferStatus;
+	RSat::TMmsTransferStatusV6Pckg	mmsTransferStatusPckg(mmsTransferStatus);
+
+	mmsTransferStatus.iDeviceId = DSATTSYV6_DEVICE_ID3;
+	mmsTransferStatus.iMultimediaMessageId =DSATTSYV6_MULTIMEDIA_MESSAGE_ID1;
+	mmsTransferStatus.iMultimediaMessageStatus =DSATTSYV6_MULTIMEDIA_MESSAGE_STATUS;
+	
+	sat.MmsTransferStatus(reqStatus, mmsTransferStatusPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	
+    INFO_PRINTF2(_L("Test %d - RSat::MmsTransferStatus - Multimedia Messaging Service Transfer Status - passed"),iTestCount++);
+    
+    /**
+    Testing Cancel API for the Multimedia Messaging  Service Transfer Status envelope command
+    @test TSAT300
+    */
+    
+    //Cancel	
+	sat.MmsTransferStatus(reqStatus, mmsTransferStatusPckg);
+	sat.CancelAsyncRequest(ESatMmsTransferStatus);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	
+	/**
+	Testing Multimedia Messaging  Service Notificaiton Download envelope command which has been newly
+	added as part of the Release 6 Features of USIM Application ToolKit
+	@test TSAT301
+	*/
+	RSat::TMmsNotificationDownloadV6 mmsNotificationDownload;
+	RSat::TMmsNotificationDownloadV6Pckg	mmsNotificationDownloadPckg(mmsNotificationDownload);
+
+	mmsNotificationDownload.iDeviceId = DSATTSYV6_DEVICE_ID1;
+	mmsNotificationDownload.iLastEnvelope = DSATTSYV6_LAST_ENVELOPE1; 
+	mmsNotificationDownload.iMMSNotification = DSATTSYV6_MMS_NOTIFICATION1;
+	
+	sat.MmsNotificationDownload(reqStatus, mmsNotificationDownloadPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+	
+    INFO_PRINTF2(_L("Test %d - RSat::MmsNotificationDownload - Multimedia Messaging  Service Notificaiton Download - passed"),iTestCount++);
+    
+    /**
+    Testing Cancel API for the Multimedia Messaging  Notification Download envelope command
+    @test TSAT302
+    */
+    
+    //Cancel	
+	sat.MmsNotificationDownload(reqStatus, mmsNotificationDownloadPckg);
+	sat.CancelAsyncRequest(ESatMmsNotificationDownload);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	
+		
+	/**
+	Testing Ussd Data Download command which has been newly
+	added as part of the Release 6 Features of USIM Application ToolKit
+	@test TSAT303
+	@test TSAT313
+	*/
+	RSat::TUssdDataDownloadV6 ussdDataDownload;
+	RSat::TUssdDataDownloadV6Pckg	ussdDataDownloadPckg(ussdDataDownload);
+
+	ussdDataDownload.iDeviceId = DSATTSYV6_DEVICE_ID1;
+	ussdDataDownload.iUssdString.iUssdString = DSATTSY_USSD_STRING;
+
+	sat.UssdDataDownload(reqStatus, ussdDataDownloadPckg);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrNone);
+    INFO_PRINTF2(_L("Test %d - UssdDataDownload - Ussd Data Download command- passed"),iTestCount++);
+    
+    /**
+    Testing Cancel API for the Ussd Data Download command
+    @test TSAT304
+    @test TSAT314
+    */
+    
+    //Cancel	
+	sat.UssdDataDownload(reqStatus, ussdDataDownloadPckg);
+	sat.CancelAsyncRequest(ESatUssdDataDownload);
+	User::WaitForRequest(reqStatus);
+	TEST(reqStatus.Int()==KErrCancel);
+	
+	sat.Close();
+	phone.Close();
+
+	return TestStepResult();
+
+	}