diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/simtsy/test/Te_Sim/Te_SimPacketGPRSQOSTest.cpp --- /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 aGPRSQoSReqPckg(aGPRSQoSReqConfig); + + // post a notification + RPacketQoS::TQoSGPRSNegotiated aGPRSNotifyQoS; + TPckg 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 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 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(); + } +