telephonyserverplugins/simtsy/test/Te_Sim/Te_SimPacketGPRSQOSTest.cpp
changeset 0 3553901f7fa8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/simtsy/test/Te_Sim/Te_SimPacketGPRSQOSTest.cpp	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,175 @@
+// Copyright (c) 2005-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_SimPacketGPRSQOSTest.h"
+
+CSimPacketGPRSQOSTest::CSimPacketGPRSQOSTest() 
+	{ 
+	SetTestStepName(_L("GPRSQOSTest"));
+	}
+
+TVerdict CSimPacketGPRSQOSTest::doTestStepL()
+	{
+	INFO_PRINTF1(_L("BeginPacketGPRSQOSTest"));
+
+ 	CreateConfigFileL(_L("c:\\config3.txt"));
+ 	SetTestNumberL(6);
+
+	TInt ret = iPhone.Open(iTelServer,KPhoneName); 
+	INFO_PRINTF2(_L("Result: %d"),ret); 
+	TESTL(ret == KErrNone); 
+	INFO_PRINTF1(_L("Opened phone object"));
+	TESTL(iPacketService.Open(iPhone)==KErrNone);
+	INFO_PRINTF1(_L("Opened Packet object"));
+	TName contextName;
+	TName contextNameCompare;
+	TESTL(iFirstPrimaryPacketContext.OpenNewContext(iPacketService, contextName)==KErrNone);
+	contextNameCompare.Append(KSimPrimaryPacketContextName);
+	contextNameCompare.AppendNum(1);
+	TESTL(contextName.Compare(contextNameCompare)==KErrNone);
+	INFO_PRINTF1(_L("Opened Context object"));
+
+	TRequestStatus reqStatus;
+	TRequestStatus notifyStatus;
+	TName gprsQosName;
+	TESTL(iGPRSPacketqos.OpenNewQoS(iFirstPrimaryPacketContext, gprsQosName)==KErrNone);
+	TName gprsQosNameCompare;
+	gprsQosNameCompare.Append(KSimPacketQosName);
+	gprsQosNameCompare.AppendNum(1);
+	TESTL(gprsQosName.Compare(gprsQosNameCompare)==KErrNone);
+	INFO_PRINTF1(_L("Opened GPRS QoS object"));
+	
+	TName qosname;
+	iFirstPrimaryPacketContext.GetProfileName(qosname);
+	INFO_PRINTF1(_L("Retrieved GPRS QoS object reference name"));
+
+	// Set QoS Profile Params
+	RPacketQoS::TQoSGPRSRequested aGPRSQoSReqConfig;
+	TPckg<RPacketQoS::TQoSGPRSRequested> aGPRSQoSReqPckg(aGPRSQoSReqConfig);
+
+	// post a notification
+ 	RPacketQoS::TQoSGPRSNegotiated aGPRSNotifyQoS;
+	TPckg<RPacketQoS::TQoSGPRSNegotiated> aGPRSNotifyQoSPckg(aGPRSNotifyQoS);
+
+	//Profile data
+	aGPRSQoSReqConfig.iMinDelay = RPacketQoS::EDelayClass1;
+	aGPRSQoSReqConfig.iMinMeanThroughput = RPacketQoS::EMeanThroughput200;
+	aGPRSQoSReqConfig.iMinPeakThroughput = RPacketQoS::EPeakThroughput16000;
+	aGPRSQoSReqConfig.iMinPrecedence = RPacketQoS::EPriorityLowPrecedence;
+	aGPRSQoSReqConfig.iMinReliability = RPacketQoS::EReliabilityClass1;
+	aGPRSQoSReqConfig.iReqDelay = RPacketQoS::EDelayClass2;
+	aGPRSQoSReqConfig.iReqMeanThroughput = RPacketQoS::EMeanThroughput2000;
+	aGPRSQoSReqConfig.iReqPeakThroughput = RPacketQoS::EPeakThroughput64000;
+	aGPRSQoSReqConfig.iReqPrecedence = RPacketQoS::EPriorityMediumPrecedence;
+	aGPRSQoSReqConfig.iReqReliability = RPacketQoS::EReliabilityClass2;
+
+	//post the notification
+	iGPRSPacketqos.NotifyProfileChanged(notifyStatus, aGPRSNotifyQoSPckg);
+	//Set the config
+	iGPRSPacketqos.SetProfileParameters(reqStatus, aGPRSQoSReqPckg);
+	
+	User::WaitForRequest(notifyStatus);
+	User::WaitForRequest(reqStatus);
+
+	TESTL(aGPRSNotifyQoS.ExtensionId()==TPacketDataConfigBase::KConfigGPRS);
+	TESTL(aGPRSNotifyQoS.iDelay == RPacketQoS::EDelayClass2);
+	TESTL(aGPRSNotifyQoS.iDelay == RPacketQoS::EDelayClass2);
+	TESTL(aGPRSNotifyQoS.iMeanThroughput == RPacketQoS::EMeanThroughput2000);
+	TESTL(aGPRSNotifyQoS.iPeakThroughput == RPacketQoS::EPeakThroughput64000);
+	TESTL(aGPRSNotifyQoS.iPrecedence == RPacketQoS::EPriorityMediumPrecedence);
+	TESTL(aGPRSNotifyQoS.iReliability == RPacketQoS::EReliabilityClass2);	
+	
+	// post a notification
+	TRequestStatus cancelStatus;
+	iGPRSPacketqos.NotifyProfileChanged(cancelStatus, aGPRSNotifyQoSPckg);	
+	iGPRSPacketqos.CancelAsyncRequest(EPacketQoSNotifyProfileChanged);
+	User::WaitForRequest(cancelStatus);
+
+	TESTL(cancelStatus.Int()==KErrCancel);
+	INFO_PRINTF1(_L("Set Profile Test passed"));
+
+	// need to call Notify first to set pending to true after 
+	// cancel event which sets it to false	
+	iGPRSPacketqos.NotifyProfileChanged(notifyStatus, aGPRSNotifyQoSPckg);	
+	iGPRSPacketqos.SetProfileParameters(reqStatus, aGPRSQoSReqPckg);
+	User::WaitForRequest(notifyStatus);
+	TESTL(notifyStatus.Int()==KErrNone);
+	User::WaitForRequest(reqStatus);	
+	TESTL(reqStatus.Int()==KErrNone);
+
+	// test RPacketContext::Activate - before calling ModifyActiveContext
+	StartNTRasSimulation();
+	iFirstPrimaryPacketContext.Activate(reqStatus);
+	User::WaitForRequest(reqStatus);	
+	TESTL(reqStatus.Int()==KErrNone);
+	INFO_PRINTF1(_L("Activate test passed"));	
+
+	// test RPacketContext::ModifyActiveContext - it shouldn't work unless
+	// a profile/tft has changed since activation
+	TRequestStatus modifyStatus;
+	iFirstPrimaryPacketContext.ModifyActiveContext(modifyStatus);
+	User::WaitForRequest(modifyStatus);
+	TESTL(modifyStatus.Int()==KErrNotReady); 
+	iGPRSPacketqos.SetProfileParameters(reqStatus, aGPRSQoSReqPckg);
+	User::WaitForRequest(reqStatus);
+	TESTL(reqStatus.Int()==KErrNone); 
+	iFirstPrimaryPacketContext.ModifyActiveContext(modifyStatus);
+	User::WaitForRequest(modifyStatus);
+	TESTL(modifyStatus.Int()==KErrNone); 
+	INFO_PRINTF1(_L("ModifyActiveContext Test Passed"));
+	INFO_PRINTF1(_L("Notify GPRS QoS Profile Test passed"));
+	
+	// Get QoS GPRS Capabilities
+	RPacketQoS::TQoSCapsGPRS aQoSCaps;
+	TPckg<RPacketQoS::TQoSCapsGPRS> aQoSCapsPckg(aQoSCaps);
+	
+	iGPRSPacketqos.GetProfileCapabilities(reqStatus, aQoSCapsPckg);
+	User::WaitForRequest(reqStatus);
+	TESTL(reqStatus.Int()==KErrNone);
+	TESTL(aQoSCaps.ExtensionId()==TPacketDataConfigBase::KConfigGPRS);
+	TESTL(aQoSCaps.iDelay == RPacketQoS::EDelayClass2);
+	TESTL(aQoSCaps.iMean == RPacketQoS::EMeanThroughput100);
+	TESTL(aQoSCaps.iPeak == RPacketQoS::EPeakThroughput64000);
+	TESTL(aQoSCaps.iPrecedence == RPacketQoS::EPriorityMediumPrecedence);
+	TESTL(aQoSCaps.iReliability == RPacketQoS::EReliabilityClass2);
+	INFO_PRINTF1(_L("Get QoS Profile  Capabilities Test passed"));
+
+	//Get QoS Profile Params
+	RPacketQoS::TQoSGPRSNegotiated aGPRSQoSNegConfig;
+	TPckg<RPacketQoS::TQoSGPRSNegotiated> aGPRSQoSNegPckg(aGPRSQoSNegConfig);
+
+	iGPRSPacketqos.GetProfileParameters(cancelStatus, aGPRSQoSNegPckg);
+	iGPRSPacketqos.CancelAsyncRequest(EPacketQoSGetProfileParams);//no implementation-does nothing
+	User::WaitForRequest(cancelStatus);
+	TESTL(cancelStatus.Int()==KErrNone);
+
+	TESTL(aGPRSQoSNegConfig.ExtensionId()==TPacketDataConfigBase::KConfigGPRS);
+	TESTL(aGPRSQoSNegConfig.iDelay==RPacketQoS::EDelayClass2);
+	TESTL(aGPRSQoSNegConfig.iMeanThroughput==RPacketQoS::EMeanThroughput100);
+	TESTL(aGPRSQoSNegConfig.iPeakThroughput==RPacketQoS::EPeakThroughput64000);
+	TESTL(aGPRSQoSNegConfig.iPrecedence==RPacketQoS::EPriorityMediumPrecedence);
+	TESTL(aGPRSQoSNegConfig.iReliability==RPacketQoS::EReliabilityClass2);
+	INFO_PRINTF1(_L("Get QoS Profile Test passed"));
+
+	// End of RPacketQos tests
+	iGPRSPacketqos.Close();
+	iFirstPrimaryPacketContext.Close();
+	iPacketService.Close();
+	iPhone.Close();
+	ASSERT(RThread().RequestCount()==0);
+
+	return TestStepResult();
+	}
+