telephonyserverplugins/simatktsy/tests/src/ccsatlaunchbrowserfu.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
--- a/telephonyserverplugins/simatktsy/tests/src/ccsatlaunchbrowserfu.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/simatktsy/tests/src/ccsatlaunchbrowserfu.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,719 +1,719 @@
-// Copyright (c) 2008-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:
-//
-
-
-
-/**
- @file The TEFUnit test suite for LaunchBrowser in the SAT.
-*/
-
-#include <satcs.h>
-#include <ctsy/ltsy/sat_defs.h>
-
-#include <ctsy/ltsy/mltsydispatchsatinterface.h>
-#include <test/mockltsyindicatorids.h>
-#include <test/tmockltsydata.h>
-
-#include "ccsatlaunchbrowserfu.h"
-
-static const TUint8 KCommandNumber = 1;
-static const TUint8 KCommandType   = KLaunchBrowser;
-static const TUint8 KSourceDevice = KSim;
-static const TUint8 KDestinationDevice = KMe;
-static const TUint8 KCodingScheme = K8BitDCS;
-
-static const TInt KDelay = 10;
-
-_LIT8(KURL, "www.symbian.ru");
-_LIT8(KBearerList, "\x01\x03\x01\x03");
-_LIT8(KText, "Gateway/Proxy");
-_LIT8(KAlphaId, "phase");
-_LIT8(KNULL, "\x00");
-_LIT8(KFileRef, "1234567890");
-
-CTestSuite* CCSatLaunchBrowserFU::CreateSuiteL(const TDesC& aName)
-	{
-	SUB_SUITE;
-
-	ADD_TEST_STEP_ISO_CPP(CCSatLaunchBrowserFU, TestNotifyLaunchBrowserPCmd0001L);
-	ADD_TEST_STEP_ISO_CPP(CCSatLaunchBrowserFU, TestNotifyLaunchBrowserPCmd0002L);
-	ADD_TEST_STEP_ISO_CPP(CCSatLaunchBrowserFU, TestNotifyLaunchBrowserPCmd0004L);
-
-	END_SUITE;
-	}
-
-void CCSatLaunchBrowserFU::PrepareTlvData ( TTlv& aTlvData )
-	{	
-	aTlvData.Begin(KBerTlvProactiveSimCommandTag);
-
-	aTlvData.AddTag(KTlvCommandDetailsTag);         // Command details
-	aTlvData.AddByte(KCommandNumber);               // Command number
-	aTlvData.AddByte(KCommandType);                 // Command type
-	aTlvData.AddByte(iData.iCommandQualifier);      // Command qualifier
-
-	aTlvData.AddTag(KTlvDeviceIdentityTag);         // Device identities
-	aTlvData.AddByte(KSourceDevice);                // Source device
-	aTlvData.AddByte(KDestinationDevice);           // Destination device
-
-	if ( iData.iUrl.Length() > 0 )
-		{
-		aTlvData.AddTag(KTlvUrlTag);
-		aTlvData.AddData(iData.iUrl);
-		}
-
-	if ( iData.iBearerList.Length() > 0 )
-		{
-		aTlvData.AddTag(KTlvBearerTag);
-		aTlvData.AddData(iData.iBearerList);
-		}
-
-	if ( iData.iText.Length() > 0 )
-		{
-		aTlvData.AddTag(KTlvTextStringTag);
-		aTlvData.AddByte(KCodingScheme);
-		aTlvData.AddData(iData.iText);
-		}
-
-	if ( iData.iAlphaId.Length() > 0 || iData.iIfAlphaId )
-		{
-		aTlvData.AddTag(KTlvAlphaIdentifierTag);
-		aTlvData.AddData(iData.iAlphaId);
-		}
-	
-	if ( iData.iIfUsedBrowserId )
-		{
-		aTlvData.AddTag(KTlvBrowserIdentityTag);
-		aTlvData.AddByte(iData.iBrowserId);
-		}
-
-	if ( iData.iFileRef.Length() > 0 )
-		{
-		aTlvData.AddTag(KTlvProvisioningReferenceFileTag);
-		aTlvData.AddData(iData.iFileRef);
-		aTlvData.AddTag(KTwoByteLengthCoding);
-		}
-	}
-
-void CCSatLaunchBrowserFU::PrepareExpectDataL ()
-	{
-	RBuf8 data;
-	CleanupClosePushL(data);	
-	
-	TUint8 commandType = KLaunchBrowser;
-	TMockLtsyData1<TUint8> expLtsyData(commandType);
-	expLtsyData.SerialiseL(data);
-	iMockLTSY.ExpectL(MLtsyDispatchSatPCmdNotification::KLtsyDispatchSatPCmdNotificationApiId, data);
-
-	CleanupStack::PopAndDestroy(1); // data
-	}
-
-void CCSatLaunchBrowserFU::PrepareCompleteDataL ( TInt aResultCode )
-	{
-	RBuf8 data;
-	CleanupClosePushL(data);	
-	
-	TTlv tlv;
-	PrepareTlvData( tlv );
-	
-	TPtrC8 tlvDsc = tlv.End();
-	TDesC8* tlvDscPtr = &tlvDsc;
-	TMockLtsyData1<TDesC8*> tlvDscPack(tlvDscPtr);
-	tlvDscPack.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchSatPcmdIndId, aResultCode, data, KDelay);
-
-	CleanupStack::PopAndDestroy(1); // data
-	}
-
-void CCSatLaunchBrowserFU::ProactiveCommandCallL( 
-		RSat::TLaunchBrowserV2& aLaunchBrowserData,
-		TInt aCompleteErrorCode,
-		TInt aResultCode,
-		TBool aIfCreateTerminal,
-		RSat::TPCmdResult aGeneralResult,
-		TUint8 aCommandQualifier,
-		const TDesC& aAdditionalInfo
-		)
-	{
-	TRequestStatus requestStatus;
-	
-	PrepareExpectDataL ();
-
-	RSat::TLaunchBrowserV2Pckg setpPck(aLaunchBrowserData);
-	iSat.NotifyLaunchBrowserPCmd(requestStatus, setpPck);
-		
-	PrepareCompleteDataL ( aCompleteErrorCode );
-
-	if ( aIfCreateTerminal )
-		{
-		PrepareTerminalResponseMockDataL(
-				KCommandNumber,
-				KCommandType,
-				aCommandQualifier,
-				aAdditionalInfo,
-				aGeneralResult,
-				KNullDesC8);
-		}
-
-	User::WaitForRequest(requestStatus);
-	ASSERT_EQUALS(aResultCode, requestStatus.Int());
-	AssertMockLtsyStatusL();
-	}
-
-void CCSatLaunchBrowserFU::DataInitialization(
-		TUint8 aCommandQualifier,
-		const TDesC8& aUrl,
-		const TDesC8& aBearerList,
-		const TDesC8& aText,
-		const TDesC8& aAlphaId,
-		const TDesC8& aFileRef,
-		TBool aIfUsedBrowserId,
-		TUint aBrowserId,
-		TBool aIfAlphaId
-		)
-	{
-	iData.iUrl.Copy(aUrl);
-	iData.iBearerList.Copy(aBearerList);
-	iData.iText.Copy(aText);
-	iData.iAlphaId.Copy(aAlphaId);
-	iData.iFileRef.Copy(aFileRef);
-	iData.iCommandQualifier = aCommandQualifier;
-	iData.iBrowserId = aBrowserId;
-	iData.iIfUsedBrowserId = aIfUsedBrowserId;
-	iData.iIfAlphaId = aIfAlphaId;
-	}
-
-void CCSatLaunchBrowserFU::TerminalResponseCallL(
-		const RSat& aSat,
-		RSat::TPCmdResult aGeneralResult,
-		const TDesC& aAdditionalInfo,
-		TInt aResultCode,
-		TUint aInfoType
-		)
-	{
-	RSat::TLaunchBrowserRspV2 launchBrowser;
-	RSat::TLaunchBrowserRspV2Pckg launchBrowserPckg(launchBrowser);
-	TRequestStatus requestStatus;
-	
-	launchBrowser.iGeneralResult = aGeneralResult;
-	launchBrowser.SetPCmdNumber(KCommandNumber);
-	launchBrowser.iInfoType = aInfoType;
-	
-	PrepareTerminalResponseMockDataL(
-			KCommandNumber,
-			KCommandType,
-			iData.iCommandQualifier,
-			aAdditionalInfo,
-			launchBrowser.iGeneralResult,
-			KNullDesC8);
-
-	aSat.TerminalRsp(requestStatus, RSat::ELaunchBrowser, launchBrowserPckg);
-	User::WaitForRequest(requestStatus);
-	ASSERT_EQUALS(aResultCode, requestStatus.Int());
-	}
-
-void CCSatLaunchBrowserFU::DataCompareL( const RSat::TLaunchBrowserV2& aLaunchBrowser )
-	{
-	
-	RSat::TBrowserSelection browserSel;
-	switch( iData.iCommandQualifier )
-		{
-		case KLaunchBrowserIfNotYetLaunched:
-			browserSel = RSat::ELaunchBrowserIfNotAlreadyLaunched;
-			break;
-		case KUseExistingBrowser:
-			browserSel = RSat::EUseExistingBrowser;
-			break;
-		case KCloseAndLaunchNewBrowser:
-			browserSel = RSat::ECloseExistingLaunchNewBrowserSession;
-			break;
-		case KLaunchBrowserCmdQualifierNotUsed:
-		case KLaunchBrowserCmdQualifierReserved:
-		default:
-			browserSel = RSat::EBrowserSelectionNotSet;
-		}
-
-	ASSERT_EQUALS( browserSel, aLaunchBrowser.iBrowserSel );
-
-	RSat::TAlphaIdBuf alphaId;
-	alphaId.Copy(iData.iAlphaId);
-	ASSERT_EQUALS( 0, alphaId.Compare( aLaunchBrowser.iAlphaId.iAlphaId ) );
-
-	RSat::TTextString text;
-	text.Copy( iData.iText );
-	ASSERT_EQUALS( 0, text.Compare( aLaunchBrowser.iText ) );
-
-	ASSERT_EQUALS( 0, iData.iBearerList.Compare( aLaunchBrowser.iBearerList ) );
-	ASSERT_EQUALS( 0, iData.iUrl.Compare( aLaunchBrowser.iUrl ) );
-	
-	}
-
-void CCSatLaunchBrowserFU::ClearData( RSat::TLaunchBrowserV2& aLaunchBrowser )
-	{
-	aLaunchBrowser.ResetFileRef();
-	aLaunchBrowser.iBrowserSel = RSat::EBrowserSelectionNotSet;
-	aLaunchBrowser.iBrowserId  = RSat::EBrowserIdNotSet;
-	aLaunchBrowser.iUrl.Zero();
-	aLaunchBrowser.iBearerList.Zero();
-	aLaunchBrowser.iText.Zero();
-	aLaunchBrowser.iAlphaId.iAlphaId.Zero();
-	}
-
-
-//
-// Actual test cases
-//
-
-
-/**
-@SYMTestCaseID BA-CSAT-LB-SNLBPC-0001
-@SYMPREQ 1780
-@SYMComponent  telephony_csat
-@SYMTestCaseDesc Test support in CSAT for RSat::NotifyLaunchBrowserPCmd
-@SYMTestPriority High
-@SYMTestActions Invokes RSat::NotifyLaunchBrowserPCmd
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCSatLaunchBrowserFU::TestNotifyLaunchBrowserPCmd0001L()
-	{
-
-	static const TUint8 KCmdQualifierArray[] = { 
-			KLaunchBrowserCmdQualifierNotUsed, 
-			KUseExistingBrowser, 
-			KCloseAndLaunchNewBrowser,
-			KLaunchBrowserCmdQualifierReserved, 
-			KLaunchBrowserCmdQualifierReserved + 1 };
-
-	static const RSat::TPCmdResult KGenResultArray[] = {
-			RSat::KPSessionTerminatedByUser,
-			RSat::KBackwardModeRequestedByUser,
-			RSat::KNoResponseFromUser,
-			RSat::KMeUnableToProcessCmd,
-			RSat::KCmdBeyondMeCapabilities,
-			RSat::KCmdDataNotUnderstood,
-			RSat::KLaunchBrowserError,
-			RSat::KPCmdNotAcceptedByUser,
-			RSat::KCmdTypeNotUnderstood,
-			RSat::KMissingInformation,
-			RSat::KPartialComprehension,
-			RSat::KNetworkUnableToProcessCmd,
-			RSat::KCmdNumberNotKnown };
-
-	static const TUint KArrayInfoType[] = {
-			RSat::KMeProblem,
-			RSat::KBearerUnvailable,
-			RSat::KBrowserUnavailable,
-			RSat::KMeUnableToReadProvisioningData,
-			RSat::KNoSpecificBrowserError,
-			RSat::KServiceError };
-
-	const TInt KSize = sizeof(KCmdQualifierArray)/sizeof(KCmdQualifierArray[0]);
-	const TInt KArraySize = sizeof(KGenResultArray)/sizeof(KGenResultArray[0]);
-	const TInt KArrayITSize = sizeof(KArrayInfoType)/sizeof(KArrayInfoType[0]);
-	const TUint8 KCommandQualifier = KLaunchBrowserIfNotYetLaunched;
-
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-	OpenSatL();
-
-	RSat::TLaunchBrowserV2 launchBrowser;
-	TRequestStatus requestStatus;
-	DataInitialization(KCommandQualifier, KURL, KBearerList, KText, KAlphaId, KFileRef);
-
- 	//-------------------------------------------------------------------------
-	// TEST C: Successful completion request of
-	// RSat::NotifyLaunchBrowserPCmd 
- 	//-------------------------------------------------------------------------
-
-	ProactiveCommandCallL(launchBrowser);
-	TerminalResponseCallL(iSat);
-	DataCompareL( launchBrowser );
-	AssertMockLtsyStatusL();
-
- 	//-------------------------------------------------------------------------
-	// TEST E: Coverage test(s) for RSat::NotifyLaunchBrowserPCmd
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.NotifyTerminated(requestStatus);
-	
-	PrepareCompleteDataL ();
-
-	RSat::TAdditionalInfo additionalInfo;
-	additionalInfo.Append(RSat::KNoSpecificMeProblem);
-
-	PrepareTerminalResponseMockDataL(
-			KCommandNumber,
-			KCommandType,
-			KCommandQualifier,
-			additionalInfo,
-			RSat::KMeUnableToProcessCmd,
-			KNullDesC8);
-
-	User::WaitForRequest(requestStatus);
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());
-	AssertMockLtsyStatusL();
-
-	//-------------------------------------------------------------------------
-	// to increase CSatNotifyLaunchBrowser::CompleteNotifyL coverage 
-	// in case of "switch ( cmdQualifier )"
- 	//-------------------------------------------------------------------------
-
-	TBool prepareMockData = EFalse;
-	TUint8 element = 0;
-
-	for ( TInt i = 0; i < KSize; i++ )
-		{
-		element = KCmdQualifierArray[i];
-		prepareMockData = 
-			element == KLaunchBrowserCmdQualifierNotUsed || 
-			element == KLaunchBrowserCmdQualifierReserved;
-
-		DataInitialization(element, KURL, KBearerList, KText, KAlphaId, KFileRef);
-
-		ClearData(launchBrowser);
-		if ( prepareMockData )
-			{
-			ProactiveCommandCallL(
-					launchBrowser, 
-					KErrNone, 
-					KErrCorrupt, 
-					ETrue, 
-					RSat::KCmdTypeNotUnderstood,
-					element);
-			}
-		else
-			{
-			ProactiveCommandCallL(launchBrowser); 
-			}
-
-		if ( !prepareMockData )
-			{
-			TerminalResponseCallL(iSat);
-			DataCompareL( launchBrowser );
-			}
-		
-		AssertMockLtsyStatusL();
-		}
-
-	//-------------------------------------------------------------------------
-	// to increase CSatNotifyLaunchBrowser::TerminalResponseL coverage 
-	// in case of general result value isn't valid
- 	//-------------------------------------------------------------------------
-
-	RSat::TPCmdResult elementResult;
-	TInt resultCode = KErrNone;
-	for (TInt i = 0; i < KArraySize; i++)
-		{
-		elementResult = KGenResultArray[i];
-		additionalInfo.Zero();
-		
-		switch( elementResult )
-			{
-			case RSat::KCmdDataNotUnderstood:
-			case RSat::KCmdTypeNotUnderstood:
-			case RSat::KMissingInformation:
-			case RSat::KPartialComprehension:
-				{
-				break;
-				}			
-			default:
-				{
-				additionalInfo.Append(RSat::KNoSpecificMeProblem);
-				}
-			}
-		
-		TerminalResponseCallL(iSat, elementResult, additionalInfo, resultCode);
-		AssertMockLtsyStatusL();
-		}
-
-	//-------------------------------------------------------------------------
-	// to increase CSatNotifyLaunchBrowser::TerminalResponseL coverage 
-	// in case of infotype isn't valid
- 	//-------------------------------------------------------------------------
-
-	TUint elementIT;
-	for (TInt i = 0; i < KArrayITSize; i++)
-		{
-		elementIT = KArrayInfoType[i];
-
-		if ( RSat::KMeProblem    == elementIT ||
-			 RSat::KServiceError == elementIT )
-			{
-			resultCode = KErrCorrupt;
-			}
-		else
-			{
-			resultCode = KErrNone;
-			}
-
-		TerminalResponseCallL(iSat, RSat::KSuccess, KNullDesC, resultCode, elementIT);
-		AssertMockLtsyStatusL();
-		}
-
-	//-------------------------------------------------------------------------
-	// to increase CSatNotifyLaunchBrowser::ParseBrowserIdL coverage 
-	// in case of "if ( 0x00 == aLaunchBrowserV2.iBearerList.Length() )"
- 	//-------------------------------------------------------------------------
-
-	DataInitialization(KCommandQualifier, KURL, KBearerList, KText, KAlphaId, KFileRef, ETrue);
-	ClearData(launchBrowser);
-	ProactiveCommandCallL(launchBrowser);
-	AssertMockLtsyStatusL();
-
-	//-------------------------------------------------------------------------
-	// to increase CSatNotifyLaunchBrowser::ParseBrowserIdL coverage 
-	//  in case of "if ( 0x00 != browserId.GetShortInfo( ETLV_BrowserIdentity ) )"
- 	//-------------------------------------------------------------------------
-
-	TUint browserId = RSat::EBrowserIdNotPresent;
-	DataInitialization(KCommandQualifier, KURL, KBearerList, KText, KAlphaId, KFileRef, ETrue, browserId);
-	ClearData(launchBrowser);
-	ProactiveCommandCallL(
-			launchBrowser, 
-			KErrNone, 
-			KErrCorrupt, 
-			ETrue, 
-			RSat::KCmdDataNotUnderstood);
-
-	//-------------------------------------------------------------------------
-	// to increase CSatNotifyLaunchBrowser::ParseUrlL coverage 
-	// in case of KTlvUrlTag isn't found.
- 	//-------------------------------------------------------------------------
-
-	DataInitialization(KCommandQualifier, KNullDesC8, KBearerList, KText, KAlphaId, KFileRef);
-	ClearData(launchBrowser);
-	ProactiveCommandCallL(
-			launchBrowser, 
-			KErrNone, 
-			KErrCorrupt, 
-			ETrue, 
-			RSat::KErrorRequiredValuesMissing);
-
-	//-------------------------------------------------------------------------
-	// to increase CSatNotifyLaunchBrowser::ParseBearerListL coverage 
-	// in case of KTlvBearerTag isn't found.
- 	//-------------------------------------------------------------------------
-
-	DataInitialization(KCommandQualifier, KURL, KNullDesC8, KText, KAlphaId, KFileRef);
-	ClearData(launchBrowser);
-	ProactiveCommandCallL(launchBrowser);
-
-	//-------------------------------------------------------------------------
-	// to increase CSatNotifyLaunchBrowser::ParseBearerListL coverage 
-	// in case of "if ( 0x00 == aLaunchBrowserV2.iBearerList.Length() )"
- 	//-------------------------------------------------------------------------
-
-	additionalInfo.Zero();
-	additionalInfo.Append(RSat::KBearerUnvailable);
-
-	DataInitialization(KCommandQualifier, KURL, KNULL, KText, KAlphaId, KFileRef);
-	ClearData(launchBrowser);
-	ProactiveCommandCallL(
-			launchBrowser, 
-			KErrNone, 
-			KErrCorrupt, 
-			ETrue, 
-			RSat::KLaunchBrowserError,
-			KCommandQualifier,
-			additionalInfo);
-
-	//-------------------------------------------------------------------------
-	// to increase CSatNotifyLaunchBrowser::CompleteNotifyL coverage 
-	// in case of KTlvTextStringTag isn't found.
- 	//-------------------------------------------------------------------------
-
-	DataInitialization(KCommandQualifier, KURL, KBearerList, KNullDesC8, KAlphaId, KFileRef);
-	ClearData(launchBrowser);
-	ProactiveCommandCallL(launchBrowser);
-
-	//-------------------------------------------------------------------------
-	// to increase CSatNotifyLaunchBrowser::CompleteNotifyL coverage 
-	// in case of KTlvAlphaIdentifierTag isn't found.
- 	//-------------------------------------------------------------------------
-
-	DataInitialization(KCommandQualifier, KURL, KBearerList, KText, KNullDesC8, KFileRef);
-	ClearData(launchBrowser);
-	ProactiveCommandCallL(launchBrowser);
-
-	//-------------------------------------------------------------------------
-	// to increase CSatNotifyLaunchBrowser::ParseProvisioningFileListL coverage 
-	// in  case of "if ( ( RSat::KFileRefMaxSize < stringLength ) || 
-    // ( 4 > stringLength ) )"
- 	//-------------------------------------------------------------------------
-
-	additionalInfo.Zero();
-	additionalInfo.Append(RSat::KMeUnableToReadProvisioningData);
-
-	DataInitialization(KCommandQualifier, KURL, KBearerList, KText, KAlphaId, KNULL);
-	ClearData(launchBrowser);
-	ProactiveCommandCallL(
-			launchBrowser, 
-			KErrNone, 
-			KErrCorrupt, 
-			ETrue, 
-			RSat::KLaunchBrowserError,
-			KCommandQualifier,
-			additionalInfo);
-
-	//-------------------------------------------------------------------------
-	// to increase CSatNotifyLaunchBrowser::ParseBrowserIdL coverage 
-	// in case of "if ( KErrNotFound == returnValue )"
- 	//-------------------------------------------------------------------------
-
-	DataInitialization(
-			KCommandQualifier, 
-			KURL, KBearerList,
-			KText,
-			KNullDesC8,
-			KFileRef,
-			EFalse,
-			RSat::EBrowserIdNotSet,
-			ETrue);
-	ClearData(launchBrowser);
-	ProactiveCommandCallL(launchBrowser);
-
-	//-------------------------------------------------------------------------
-	// TEST B: failure on completion of pending request from LTSY->CTSY
- 	//-------------------------------------------------------------------------
-
-	ClearData(launchBrowser);
-	ProactiveCommandCallL(launchBrowser, KErrUnknown, KErrUnknown);
-
-	AssertMockLtsyStatusL();
-	CleanupStack::PopAndDestroy(this); // this
-
-	}
-
-
-/**
-@SYMTestCaseID BA-CSAT-LB-SNLBPC-0002
-@SYMPREQ 1780
-@SYMComponent  telephony_csat
-@SYMTestCaseDesc Test support in CSAT for cancelling of RSat::NotifyLaunchBrowserPCmd
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RSat::NotifyLaunchBrowserPCmd
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCSatLaunchBrowserFU::TestNotifyLaunchBrowserPCmd0002L()
-	{
-
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-	OpenSatL();
-
-	TRequestStatus requestStatus;
-
-	RSat::TLaunchBrowserV2 launchBrowser;
-	RSat::TLaunchBrowserV2Pckg launchBrowserPck(launchBrowser);
-
-	DataInitialization(KCommandQualifier, KURL, KBearerList, KText, KAlphaId, KFileRef);
-
- 	//-------------------------------------------------------------------------
-	// Test cancelling of RSat::NotifyLaunchBrowserPCmd
- 	//-------------------------------------------------------------------------
-
-	PrepareExpectDataL();
-
-	iSat.NotifyLaunchBrowserPCmd(requestStatus, launchBrowserPck);
-
-	iSat.CancelAsyncRequest(ESatNotifyLaunchBrowserPCmd);
-
-	User::WaitForRequest(requestStatus);
-	ASSERT_EQUALS(KErrCancel, requestStatus.Int());
-	AssertMockLtsyStatusL();
-
-	CleanupStack::PopAndDestroy(1); // this
-
-	}
-
-/**
-@SYMTestCaseID BA-CSAT-LB-SNLBPC-0004
-@SYMPREQ 1780
-@SYMComponent  telephony_csat
-@SYMTestCaseDesc Test support in CSAT for multiple client requests to RSat::NotifyLaunchBrowserPCmd
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RSat::NotifyLaunchBrowserPCmd
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCSatLaunchBrowserFU::TestNotifyLaunchBrowserPCmd0004L()
-	{
-
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-	OpenSatL();
-
-	// Open second client
-	RTelServer telServer2;
-	TInt ret = telServer2.Connect();
-	ASSERT_EQUALS(KErrNone, ret);
-	CleanupClosePushL(telServer2);
-
-	RMobilePhone phone2;
-	ret = phone2.Open(telServer2,KMmTsyPhoneName);
-	ASSERT_EQUALS(KErrNone, ret);
-	CleanupClosePushL(phone2);
-
-	RSat sat2;
-	ret = sat2.Open(phone2);
-	ASSERT_EQUALS(KErrNone, ret);
-	CleanupClosePushL(sat2);
-
-	TRequestStatus requestStatus1;
-	TRequestStatus requestStatus2;
-	TUint8 commandQualifier = KLaunchBrowserIfNotYetLaunched;
-
-	DataInitialization(commandQualifier, KURL, KBearerList, KText, KAlphaId, KFileRef);
-
-	//-------------------------------------------------------------------------
-	// Test A: Test multiple clients requesting RSat::NotifyLaunchBrowserPCmd
-	// when they both pass the same T-class version
- 	//-------------------------------------------------------------------------
-
-	PrepareExpectDataL();
-	
-	RSat::TLaunchBrowserV2 launchBrowser1;
-	RSat::TLaunchBrowserV2Pckg launchBrowserPck1(launchBrowser1);
-	iSat.NotifyLaunchBrowserPCmd(requestStatus1, launchBrowserPck1);
-
-	RSat::TLaunchBrowserV2 launchBrowser2;
-	RSat::TLaunchBrowserV2Pckg launchBrowserPck2(launchBrowser2);
-	sat2.NotifyLaunchBrowserPCmd(requestStatus2, launchBrowserPck2);
-
-	PrepareCompleteDataL();
-
-	User::WaitForRequest(requestStatus1);
-	User::WaitForRequest(requestStatus2);
-
-	ASSERT_EQUALS(KErrNone, requestStatus1.Int());
-	//probably «KErrServerBusy?is more appropriate result here
-	ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-
-	TerminalResponseCallL(iSat);
-	TerminalResponseCallL(sat2);
-
-	DataCompareL( launchBrowser1 );
-	DataCompareL( launchBrowser2 );
-
-	AssertMockLtsyStatusL();
-	CleanupStack::PopAndDestroy(4, this); // sat2, phone2, telServer2, this
-
-	}
-
-
+// Copyright (c) 2008-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:
+//
+
+
+
+/**
+ @file The TEFUnit test suite for LaunchBrowser in the SAT.
+*/
+
+#include <satcs.h>
+#include <ctsy/ltsy/sat_defs.h>
+
+#include <ctsy/ltsy/mltsydispatchsatinterface.h>
+#include <test/mockltsyindicatorids.h>
+#include <test/tmockltsydata.h>
+
+#include "ccsatlaunchbrowserfu.h"
+
+static const TUint8 KCommandNumber = 1;
+static const TUint8 KCommandType   = KLaunchBrowser;
+static const TUint8 KSourceDevice = KSim;
+static const TUint8 KDestinationDevice = KMe;
+static const TUint8 KCodingScheme = K8BitDCS;
+
+static const TInt KDelay = 10;
+
+_LIT8(KURL, "www.symbian.ru");
+_LIT8(KBearerList, "\x01\x03\x01\x03");
+_LIT8(KText, "Gateway/Proxy");
+_LIT8(KAlphaId, "phase");
+_LIT8(KNULL, "\x00");
+_LIT8(KFileRef, "1234567890");
+
+CTestSuite* CCSatLaunchBrowserFU::CreateSuiteL(const TDesC& aName)
+	{
+	SUB_SUITE;
+
+	ADD_TEST_STEP_ISO_CPP(CCSatLaunchBrowserFU, TestNotifyLaunchBrowserPCmd0001L);
+	ADD_TEST_STEP_ISO_CPP(CCSatLaunchBrowserFU, TestNotifyLaunchBrowserPCmd0002L);
+	ADD_TEST_STEP_ISO_CPP(CCSatLaunchBrowserFU, TestNotifyLaunchBrowserPCmd0004L);
+
+	END_SUITE;
+	}
+
+void CCSatLaunchBrowserFU::PrepareTlvData ( TTlv& aTlvData )
+	{	
+	aTlvData.Begin(KBerTlvProactiveSimCommandTag);
+
+	aTlvData.AddTag(KTlvCommandDetailsTag);         // Command details
+	aTlvData.AddByte(KCommandNumber);               // Command number
+	aTlvData.AddByte(KCommandType);                 // Command type
+	aTlvData.AddByte(iData.iCommandQualifier);      // Command qualifier
+
+	aTlvData.AddTag(KTlvDeviceIdentityTag);         // Device identities
+	aTlvData.AddByte(KSourceDevice);                // Source device
+	aTlvData.AddByte(KDestinationDevice);           // Destination device
+
+	if ( iData.iUrl.Length() > 0 )
+		{
+		aTlvData.AddTag(KTlvUrlTag);
+		aTlvData.AddData(iData.iUrl);
+		}
+
+	if ( iData.iBearerList.Length() > 0 )
+		{
+		aTlvData.AddTag(KTlvBearerTag);
+		aTlvData.AddData(iData.iBearerList);
+		}
+
+	if ( iData.iText.Length() > 0 )
+		{
+		aTlvData.AddTag(KTlvTextStringTag);
+		aTlvData.AddByte(KCodingScheme);
+		aTlvData.AddData(iData.iText);
+		}
+
+	if ( iData.iAlphaId.Length() > 0 || iData.iIfAlphaId )
+		{
+		aTlvData.AddTag(KTlvAlphaIdentifierTag);
+		aTlvData.AddData(iData.iAlphaId);
+		}
+	
+	if ( iData.iIfUsedBrowserId )
+		{
+		aTlvData.AddTag(KTlvBrowserIdentityTag);
+		aTlvData.AddByte(iData.iBrowserId);
+		}
+
+	if ( iData.iFileRef.Length() > 0 )
+		{
+		aTlvData.AddTag(KTlvProvisioningReferenceFileTag);
+		aTlvData.AddData(iData.iFileRef);
+		aTlvData.AddTag(KTwoByteLengthCoding);
+		}
+	}
+
+void CCSatLaunchBrowserFU::PrepareExpectDataL ()
+	{
+	RBuf8 data;
+	CleanupClosePushL(data);	
+	
+	TUint8 commandType = KLaunchBrowser;
+	TMockLtsyData1<TUint8> expLtsyData(commandType);
+	expLtsyData.SerialiseL(data);
+	iMockLTSY.ExpectL(MLtsyDispatchSatPCmdNotification::KLtsyDispatchSatPCmdNotificationApiId, data);
+
+	CleanupStack::PopAndDestroy(1); // data
+	}
+
+void CCSatLaunchBrowserFU::PrepareCompleteDataL ( TInt aResultCode )
+	{
+	RBuf8 data;
+	CleanupClosePushL(data);	
+	
+	TTlv tlv;
+	PrepareTlvData( tlv );
+	
+	TPtrC8 tlvDsc = tlv.End();
+	TDesC8* tlvDscPtr = &tlvDsc;
+	TMockLtsyData1<TDesC8*> tlvDscPack(tlvDscPtr);
+	tlvDscPack.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchSatPcmdIndId, aResultCode, data, KDelay);
+
+	CleanupStack::PopAndDestroy(1); // data
+	}
+
+void CCSatLaunchBrowserFU::ProactiveCommandCallL( 
+		RSat::TLaunchBrowserV2& aLaunchBrowserData,
+		TInt aCompleteErrorCode,
+		TInt aResultCode,
+		TBool aIfCreateTerminal,
+		RSat::TPCmdResult aGeneralResult,
+		TUint8 aCommandQualifier,
+		const TDesC& aAdditionalInfo
+		)
+	{
+	TRequestStatus requestStatus;
+	
+	PrepareExpectDataL ();
+
+	RSat::TLaunchBrowserV2Pckg setpPck(aLaunchBrowserData);
+	iSat.NotifyLaunchBrowserPCmd(requestStatus, setpPck);
+		
+	PrepareCompleteDataL ( aCompleteErrorCode );
+
+	if ( aIfCreateTerminal )
+		{
+		PrepareTerminalResponseMockDataL(
+				KCommandNumber,
+				KCommandType,
+				aCommandQualifier,
+				aAdditionalInfo,
+				aGeneralResult,
+				KNullDesC8);
+		}
+
+	User::WaitForRequest(requestStatus);
+	ASSERT_EQUALS(aResultCode, requestStatus.Int());
+	AssertMockLtsyStatusL();
+	}
+
+void CCSatLaunchBrowserFU::DataInitialization(
+		TUint8 aCommandQualifier,
+		const TDesC8& aUrl,
+		const TDesC8& aBearerList,
+		const TDesC8& aText,
+		const TDesC8& aAlphaId,
+		const TDesC8& aFileRef,
+		TBool aIfUsedBrowserId,
+		TUint aBrowserId,
+		TBool aIfAlphaId
+		)
+	{
+	iData.iUrl.Copy(aUrl);
+	iData.iBearerList.Copy(aBearerList);
+	iData.iText.Copy(aText);
+	iData.iAlphaId.Copy(aAlphaId);
+	iData.iFileRef.Copy(aFileRef);
+	iData.iCommandQualifier = aCommandQualifier;
+	iData.iBrowserId = aBrowserId;
+	iData.iIfUsedBrowserId = aIfUsedBrowserId;
+	iData.iIfAlphaId = aIfAlphaId;
+	}
+
+void CCSatLaunchBrowserFU::TerminalResponseCallL(
+		const RSat& aSat,
+		RSat::TPCmdResult aGeneralResult,
+		const TDesC& aAdditionalInfo,
+		TInt aResultCode,
+		TUint aInfoType
+		)
+	{
+	RSat::TLaunchBrowserRspV2 launchBrowser;
+	RSat::TLaunchBrowserRspV2Pckg launchBrowserPckg(launchBrowser);
+	TRequestStatus requestStatus;
+	
+	launchBrowser.iGeneralResult = aGeneralResult;
+	launchBrowser.SetPCmdNumber(KCommandNumber);
+	launchBrowser.iInfoType = aInfoType;
+	
+	PrepareTerminalResponseMockDataL(
+			KCommandNumber,
+			KCommandType,
+			iData.iCommandQualifier,
+			aAdditionalInfo,
+			launchBrowser.iGeneralResult,
+			KNullDesC8);
+
+	aSat.TerminalRsp(requestStatus, RSat::ELaunchBrowser, launchBrowserPckg);
+	User::WaitForRequest(requestStatus);
+	ASSERT_EQUALS(aResultCode, requestStatus.Int());
+	}
+
+void CCSatLaunchBrowserFU::DataCompareL( const RSat::TLaunchBrowserV2& aLaunchBrowser )
+	{
+	
+	RSat::TBrowserSelection browserSel;
+	switch( iData.iCommandQualifier )
+		{
+		case KLaunchBrowserIfNotYetLaunched:
+			browserSel = RSat::ELaunchBrowserIfNotAlreadyLaunched;
+			break;
+		case KUseExistingBrowser:
+			browserSel = RSat::EUseExistingBrowser;
+			break;
+		case KCloseAndLaunchNewBrowser:
+			browserSel = RSat::ECloseExistingLaunchNewBrowserSession;
+			break;
+		case KLaunchBrowserCmdQualifierNotUsed:
+		case KLaunchBrowserCmdQualifierReserved:
+		default:
+			browserSel = RSat::EBrowserSelectionNotSet;
+		}
+
+	ASSERT_EQUALS( browserSel, aLaunchBrowser.iBrowserSel );
+
+	RSat::TAlphaIdBuf alphaId;
+	alphaId.Copy(iData.iAlphaId);
+	ASSERT_EQUALS( 0, alphaId.Compare( aLaunchBrowser.iAlphaId.iAlphaId ) );
+
+	RSat::TTextString text;
+	text.Copy( iData.iText );
+	ASSERT_EQUALS( 0, text.Compare( aLaunchBrowser.iText ) );
+
+	ASSERT_EQUALS( 0, iData.iBearerList.Compare( aLaunchBrowser.iBearerList ) );
+	ASSERT_EQUALS( 0, iData.iUrl.Compare( aLaunchBrowser.iUrl ) );
+	
+	}
+
+void CCSatLaunchBrowserFU::ClearData( RSat::TLaunchBrowserV2& aLaunchBrowser )
+	{
+	aLaunchBrowser.ResetFileRef();
+	aLaunchBrowser.iBrowserSel = RSat::EBrowserSelectionNotSet;
+	aLaunchBrowser.iBrowserId  = RSat::EBrowserIdNotSet;
+	aLaunchBrowser.iUrl.Zero();
+	aLaunchBrowser.iBearerList.Zero();
+	aLaunchBrowser.iText.Zero();
+	aLaunchBrowser.iAlphaId.iAlphaId.Zero();
+	}
+
+
+//
+// Actual test cases
+//
+
+
+/**
+@SYMTestCaseID BA-CSAT-LB-SNLBPC-0001
+@SYMPREQ 1780
+@SYMComponent  telephony_csat
+@SYMTestCaseDesc Test support in CSAT for RSat::NotifyLaunchBrowserPCmd
+@SYMTestPriority High
+@SYMTestActions Invokes RSat::NotifyLaunchBrowserPCmd
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCSatLaunchBrowserFU::TestNotifyLaunchBrowserPCmd0001L()
+	{
+
+	static const TUint8 KCmdQualifierArray[] = { 
+			KLaunchBrowserCmdQualifierNotUsed, 
+			KUseExistingBrowser, 
+			KCloseAndLaunchNewBrowser,
+			KLaunchBrowserCmdQualifierReserved, 
+			KLaunchBrowserCmdQualifierReserved + 1 };
+
+	static const RSat::TPCmdResult KGenResultArray[] = {
+			RSat::KPSessionTerminatedByUser,
+			RSat::KBackwardModeRequestedByUser,
+			RSat::KNoResponseFromUser,
+			RSat::KMeUnableToProcessCmd,
+			RSat::KCmdBeyondMeCapabilities,
+			RSat::KCmdDataNotUnderstood,
+			RSat::KLaunchBrowserError,
+			RSat::KPCmdNotAcceptedByUser,
+			RSat::KCmdTypeNotUnderstood,
+			RSat::KMissingInformation,
+			RSat::KPartialComprehension,
+			RSat::KNetworkUnableToProcessCmd,
+			RSat::KCmdNumberNotKnown };
+
+	static const TUint KArrayInfoType[] = {
+			RSat::KMeProblem,
+			RSat::KBearerUnvailable,
+			RSat::KBrowserUnavailable,
+			RSat::KMeUnableToReadProvisioningData,
+			RSat::KNoSpecificBrowserError,
+			RSat::KServiceError };
+
+	const TInt KSize = sizeof(KCmdQualifierArray)/sizeof(KCmdQualifierArray[0]);
+	const TInt KArraySize = sizeof(KGenResultArray)/sizeof(KGenResultArray[0]);
+	const TInt KArrayITSize = sizeof(KArrayInfoType)/sizeof(KArrayInfoType[0]);
+	const TUint8 KCommandQualifier = KLaunchBrowserIfNotYetLaunched;
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+	OpenSatL();
+
+	RSat::TLaunchBrowserV2 launchBrowser;
+	TRequestStatus requestStatus;
+	DataInitialization(KCommandQualifier, KURL, KBearerList, KText, KAlphaId, KFileRef);
+
+ 	//-------------------------------------------------------------------------
+	// TEST C: Successful completion request of
+	// RSat::NotifyLaunchBrowserPCmd 
+ 	//-------------------------------------------------------------------------
+
+	ProactiveCommandCallL(launchBrowser);
+	TerminalResponseCallL(iSat);
+	DataCompareL( launchBrowser );
+	AssertMockLtsyStatusL();
+
+ 	//-------------------------------------------------------------------------
+	// TEST E: Coverage test(s) for RSat::NotifyLaunchBrowserPCmd
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.NotifyTerminated(requestStatus);
+	
+	PrepareCompleteDataL ();
+
+	RSat::TAdditionalInfo additionalInfo;
+	additionalInfo.Append(RSat::KNoSpecificMeProblem);
+
+	PrepareTerminalResponseMockDataL(
+			KCommandNumber,
+			KCommandType,
+			KCommandQualifier,
+			additionalInfo,
+			RSat::KMeUnableToProcessCmd,
+			KNullDesC8);
+
+	User::WaitForRequest(requestStatus);
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());
+	AssertMockLtsyStatusL();
+
+	//-------------------------------------------------------------------------
+	// to increase CSatNotifyLaunchBrowser::CompleteNotifyL coverage 
+	// in case of "switch ( cmdQualifier )"
+ 	//-------------------------------------------------------------------------
+
+	TBool prepareMockData = EFalse;
+	TUint8 element = 0;
+
+	for ( TInt i = 0; i < KSize; i++ )
+		{
+		element = KCmdQualifierArray[i];
+		prepareMockData = 
+			element == KLaunchBrowserCmdQualifierNotUsed || 
+			element == KLaunchBrowserCmdQualifierReserved;
+
+		DataInitialization(element, KURL, KBearerList, KText, KAlphaId, KFileRef);
+
+		ClearData(launchBrowser);
+		if ( prepareMockData )
+			{
+			ProactiveCommandCallL(
+					launchBrowser, 
+					KErrNone, 
+					KErrCorrupt, 
+					ETrue, 
+					RSat::KCmdTypeNotUnderstood,
+					element);
+			}
+		else
+			{
+			ProactiveCommandCallL(launchBrowser); 
+			}
+
+		if ( !prepareMockData )
+			{
+			TerminalResponseCallL(iSat);
+			DataCompareL( launchBrowser );
+			}
+		
+		AssertMockLtsyStatusL();
+		}
+
+	//-------------------------------------------------------------------------
+	// to increase CSatNotifyLaunchBrowser::TerminalResponseL coverage 
+	// in case of general result value isn't valid
+ 	//-------------------------------------------------------------------------
+
+	RSat::TPCmdResult elementResult;
+	TInt resultCode = KErrNone;
+	for (TInt i = 0; i < KArraySize; i++)
+		{
+		elementResult = KGenResultArray[i];
+		additionalInfo.Zero();
+		
+		switch( elementResult )
+			{
+			case RSat::KCmdDataNotUnderstood:
+			case RSat::KCmdTypeNotUnderstood:
+			case RSat::KMissingInformation:
+			case RSat::KPartialComprehension:
+				{
+				break;
+				}			
+			default:
+				{
+				additionalInfo.Append(RSat::KNoSpecificMeProblem);
+				}
+			}
+		
+		TerminalResponseCallL(iSat, elementResult, additionalInfo, resultCode);
+		AssertMockLtsyStatusL();
+		}
+
+	//-------------------------------------------------------------------------
+	// to increase CSatNotifyLaunchBrowser::TerminalResponseL coverage 
+	// in case of infotype isn't valid
+ 	//-------------------------------------------------------------------------
+
+	TUint elementIT;
+	for (TInt i = 0; i < KArrayITSize; i++)
+		{
+		elementIT = KArrayInfoType[i];
+
+		if ( RSat::KMeProblem    == elementIT ||
+			 RSat::KServiceError == elementIT )
+			{
+			resultCode = KErrCorrupt;
+			}
+		else
+			{
+			resultCode = KErrNone;
+			}
+
+		TerminalResponseCallL(iSat, RSat::KSuccess, KNullDesC, resultCode, elementIT);
+		AssertMockLtsyStatusL();
+		}
+
+	//-------------------------------------------------------------------------
+	// to increase CSatNotifyLaunchBrowser::ParseBrowserIdL coverage 
+	// in case of "if ( 0x00 == aLaunchBrowserV2.iBearerList.Length() )"
+ 	//-------------------------------------------------------------------------
+
+	DataInitialization(KCommandQualifier, KURL, KBearerList, KText, KAlphaId, KFileRef, ETrue);
+	ClearData(launchBrowser);
+	ProactiveCommandCallL(launchBrowser);
+	AssertMockLtsyStatusL();
+
+	//-------------------------------------------------------------------------
+	// to increase CSatNotifyLaunchBrowser::ParseBrowserIdL coverage 
+	//  in case of "if ( 0x00 != browserId.GetShortInfo( ETLV_BrowserIdentity ) )"
+ 	//-------------------------------------------------------------------------
+
+	TUint browserId = RSat::EBrowserIdNotPresent;
+	DataInitialization(KCommandQualifier, KURL, KBearerList, KText, KAlphaId, KFileRef, ETrue, browserId);
+	ClearData(launchBrowser);
+	ProactiveCommandCallL(
+			launchBrowser, 
+			KErrNone, 
+			KErrCorrupt, 
+			ETrue, 
+			RSat::KCmdDataNotUnderstood);
+
+	//-------------------------------------------------------------------------
+	// to increase CSatNotifyLaunchBrowser::ParseUrlL coverage 
+	// in case of KTlvUrlTag isn't found.
+ 	//-------------------------------------------------------------------------
+
+	DataInitialization(KCommandQualifier, KNullDesC8, KBearerList, KText, KAlphaId, KFileRef);
+	ClearData(launchBrowser);
+	ProactiveCommandCallL(
+			launchBrowser, 
+			KErrNone, 
+			KErrCorrupt, 
+			ETrue, 
+			RSat::KErrorRequiredValuesMissing);
+
+	//-------------------------------------------------------------------------
+	// to increase CSatNotifyLaunchBrowser::ParseBearerListL coverage 
+	// in case of KTlvBearerTag isn't found.
+ 	//-------------------------------------------------------------------------
+
+	DataInitialization(KCommandQualifier, KURL, KNullDesC8, KText, KAlphaId, KFileRef);
+	ClearData(launchBrowser);
+	ProactiveCommandCallL(launchBrowser);
+
+	//-------------------------------------------------------------------------
+	// to increase CSatNotifyLaunchBrowser::ParseBearerListL coverage 
+	// in case of "if ( 0x00 == aLaunchBrowserV2.iBearerList.Length() )"
+ 	//-------------------------------------------------------------------------
+
+	additionalInfo.Zero();
+	additionalInfo.Append(RSat::KBearerUnvailable);
+
+	DataInitialization(KCommandQualifier, KURL, KNULL, KText, KAlphaId, KFileRef);
+	ClearData(launchBrowser);
+	ProactiveCommandCallL(
+			launchBrowser, 
+			KErrNone, 
+			KErrCorrupt, 
+			ETrue, 
+			RSat::KLaunchBrowserError,
+			KCommandQualifier,
+			additionalInfo);
+
+	//-------------------------------------------------------------------------
+	// to increase CSatNotifyLaunchBrowser::CompleteNotifyL coverage 
+	// in case of KTlvTextStringTag isn't found.
+ 	//-------------------------------------------------------------------------
+
+	DataInitialization(KCommandQualifier, KURL, KBearerList, KNullDesC8, KAlphaId, KFileRef);
+	ClearData(launchBrowser);
+	ProactiveCommandCallL(launchBrowser);
+
+	//-------------------------------------------------------------------------
+	// to increase CSatNotifyLaunchBrowser::CompleteNotifyL coverage 
+	// in case of KTlvAlphaIdentifierTag isn't found.
+ 	//-------------------------------------------------------------------------
+
+	DataInitialization(KCommandQualifier, KURL, KBearerList, KText, KNullDesC8, KFileRef);
+	ClearData(launchBrowser);
+	ProactiveCommandCallL(launchBrowser);
+
+	//-------------------------------------------------------------------------
+	// to increase CSatNotifyLaunchBrowser::ParseProvisioningFileListL coverage 
+	// in  case of "if ( ( RSat::KFileRefMaxSize < stringLength ) || 
+    // ( 4 > stringLength ) )"
+ 	//-------------------------------------------------------------------------
+
+	additionalInfo.Zero();
+	additionalInfo.Append(RSat::KMeUnableToReadProvisioningData);
+
+	DataInitialization(KCommandQualifier, KURL, KBearerList, KText, KAlphaId, KNULL);
+	ClearData(launchBrowser);
+	ProactiveCommandCallL(
+			launchBrowser, 
+			KErrNone, 
+			KErrCorrupt, 
+			ETrue, 
+			RSat::KLaunchBrowserError,
+			KCommandQualifier,
+			additionalInfo);
+
+	//-------------------------------------------------------------------------
+	// to increase CSatNotifyLaunchBrowser::ParseBrowserIdL coverage 
+	// in case of "if ( KErrNotFound == returnValue )"
+ 	//-------------------------------------------------------------------------
+
+	DataInitialization(
+			KCommandQualifier, 
+			KURL, KBearerList,
+			KText,
+			KNullDesC8,
+			KFileRef,
+			EFalse,
+			RSat::EBrowserIdNotSet,
+			ETrue);
+	ClearData(launchBrowser);
+	ProactiveCommandCallL(launchBrowser);
+
+	//-------------------------------------------------------------------------
+	// TEST B: failure on completion of pending request from LTSY->CTSY
+ 	//-------------------------------------------------------------------------
+
+	ClearData(launchBrowser);
+	ProactiveCommandCallL(launchBrowser, KErrUnknown, KErrUnknown);
+
+	AssertMockLtsyStatusL();
+	CleanupStack::PopAndDestroy(this); // this
+
+	}
+
+
+/**
+@SYMTestCaseID BA-CSAT-LB-SNLBPC-0002
+@SYMPREQ 1780
+@SYMComponent  telephony_csat
+@SYMTestCaseDesc Test support in CSAT for cancelling of RSat::NotifyLaunchBrowserPCmd
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RSat::NotifyLaunchBrowserPCmd
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCSatLaunchBrowserFU::TestNotifyLaunchBrowserPCmd0002L()
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+	OpenSatL();
+
+	TRequestStatus requestStatus;
+
+	RSat::TLaunchBrowserV2 launchBrowser;
+	RSat::TLaunchBrowserV2Pckg launchBrowserPck(launchBrowser);
+
+	DataInitialization(KCommandQualifier, KURL, KBearerList, KText, KAlphaId, KFileRef);
+
+ 	//-------------------------------------------------------------------------
+	// Test cancelling of RSat::NotifyLaunchBrowserPCmd
+ 	//-------------------------------------------------------------------------
+
+	PrepareExpectDataL();
+
+	iSat.NotifyLaunchBrowserPCmd(requestStatus, launchBrowserPck);
+
+	iSat.CancelAsyncRequest(ESatNotifyLaunchBrowserPCmd);
+
+	User::WaitForRequest(requestStatus);
+	ASSERT_EQUALS(KErrCancel, requestStatus.Int());
+	AssertMockLtsyStatusL();
+
+	CleanupStack::PopAndDestroy(1); // this
+
+	}
+
+/**
+@SYMTestCaseID BA-CSAT-LB-SNLBPC-0004
+@SYMPREQ 1780
+@SYMComponent  telephony_csat
+@SYMTestCaseDesc Test support in CSAT for multiple client requests to RSat::NotifyLaunchBrowserPCmd
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RSat::NotifyLaunchBrowserPCmd
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCSatLaunchBrowserFU::TestNotifyLaunchBrowserPCmd0004L()
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+	OpenSatL();
+
+	// Open second client
+	RTelServer telServer2;
+	TInt ret = telServer2.Connect();
+	ASSERT_EQUALS(KErrNone, ret);
+	CleanupClosePushL(telServer2);
+
+	RMobilePhone phone2;
+	ret = phone2.Open(telServer2,KMmTsyPhoneName);
+	ASSERT_EQUALS(KErrNone, ret);
+	CleanupClosePushL(phone2);
+
+	RSat sat2;
+	ret = sat2.Open(phone2);
+	ASSERT_EQUALS(KErrNone, ret);
+	CleanupClosePushL(sat2);
+
+	TRequestStatus requestStatus1;
+	TRequestStatus requestStatus2;
+	TUint8 commandQualifier = KLaunchBrowserIfNotYetLaunched;
+
+	DataInitialization(commandQualifier, KURL, KBearerList, KText, KAlphaId, KFileRef);
+
+	//-------------------------------------------------------------------------
+	// Test A: Test multiple clients requesting RSat::NotifyLaunchBrowserPCmd
+	// when they both pass the same T-class version
+ 	//-------------------------------------------------------------------------
+
+	PrepareExpectDataL();
+	
+	RSat::TLaunchBrowserV2 launchBrowser1;
+	RSat::TLaunchBrowserV2Pckg launchBrowserPck1(launchBrowser1);
+	iSat.NotifyLaunchBrowserPCmd(requestStatus1, launchBrowserPck1);
+
+	RSat::TLaunchBrowserV2 launchBrowser2;
+	RSat::TLaunchBrowserV2Pckg launchBrowserPck2(launchBrowser2);
+	sat2.NotifyLaunchBrowserPCmd(requestStatus2, launchBrowserPck2);
+
+	PrepareCompleteDataL();
+
+	User::WaitForRequest(requestStatus1);
+	User::WaitForRequest(requestStatus2);
+
+	ASSERT_EQUALS(KErrNone, requestStatus1.Int());
+	//probably «KErrServerBusy?is more appropriate result here
+	ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+	TerminalResponseCallL(iSat);
+	TerminalResponseCallL(sat2);
+
+	DataCompareL( launchBrowser1 );
+	DataCompareL( launchBrowser2 );
+
+	AssertMockLtsyStatusL();
+	CleanupStack::PopAndDestroy(4, this); // sat2, phone2, telServer2, this
+
+	}
+
+