diff -r 000000000000 -r 3553901f7fa8 telephonyserver/etelpacketdata/Te_EtelPacket/Te_EtelPacketTestAuthenticationAndDNS.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyserver/etelpacketdata/Te_EtelPacket/Te_EtelPacketTestAuthenticationAndDNS.cpp Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,238 @@ +// Copyright (c) 2003-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: +// EtelPacketTestAuthenticationAndDNS.cpp +// This is the cpp file for Packet Data Context test Authentication and DNS Server names +// Change Request: PHAR-5F6JUL . +// File created 19-02-03. +// +// + +// Symbian OS includes +#include + +#include +#include + +#include "Te_EtelPacketTestStepBase.h" + +#include "testdef.h" + +#include "Te_EtelPacketTestAuthenticationAndDNS.h" +#include "Te_etelpckt_defs.h" + +// constructor +CEtelPacketTestAuthenticationAndDNS::CEtelPacketTestAuthenticationAndDNS() +{ + // store the name of this test case + SetTestStepName(_L("Authentication_And_DNS_Server_Names")); +} + +// destructor +CEtelPacketTestAuthenticationAndDNS::~CEtelPacketTestAuthenticationAndDNS() +{ +} + + +enum TVerdict CEtelPacketTestAuthenticationAndDNS::doTestStepL( void ) +/** + * Test step Extended_Service tests new DNS server and protocol configuration + * related data setting + */ +{ + RPhone phone; + TInt ret=phone.Open(iTelServer,DPCKTTSY_PHONE_NAME); + + RPacketService packetService; + ret=packetService.Open(phone); + + RPacketContext r99Context; + TName contextName; + ret=r99Context.OpenNewContext(packetService, contextName); + + TRequestStatus reqStatus; + + //Set configuration data, including DNS server names and protocol configuration information + RPacketContext::TContextConfigR99_R4 rel99ContextConfig; + rel99ContextConfig.ExtensionId(),TPacketDataConfigBase::KConfigRel99Rel4; + TPckg contextConfigPckgRel99(rel99ContextConfig); + + rel99ContextConfig.iAccessPointName = DPCKTTSY_ACCESS_POINT1; + rel99ContextConfig.iPdpAddress = DPCKTTSY_PDP_ADDRESS1; + rel99ContextConfig.iPdpType = DPCKTTSY_PDP_TYPE1; + rel99ContextConfig.iUseEdge = DPCKTTSY_EGPRS_REQUIRED; + rel99ContextConfig.iProtocolConfigOption.iAuthInfo.iUsername = DPCKTTSY_USER_NAME1; + rel99ContextConfig.iProtocolConfigOption.iAuthInfo.iPassword = DPCKTTSY_PASSWORD1; + rel99ContextConfig.iProtocolConfigOption.iAuthInfo.iProtocol = DPCKTTSY_PROTOCOL_TYPE1_0; + rel99ContextConfig.iProtocolConfigOption.iDnsAddresses.iPrimaryDns=DPCKTTSY_DNS_SERVER1; + rel99ContextConfig.iProtocolConfigOption.iDnsAddresses.iSecondaryDns=DPCKTTSY_DNS_SERVER2; + rel99ContextConfig.iNWIContext = DPCKTTSY_NWICONTEXT_TRUE; + rel99ContextConfig.iPFI = DPCKTTSY_PFICONTEXT_SMS; + + packetService.SetDefaultContextParams(reqStatus, contextConfigPckgRel99); + User::WaitForRequest(reqStatus); + TEST(reqStatus.Int()==KErrNone); + + packetService.GetDefaultContextParams(reqStatus, contextConfigPckgRel99); + User::WaitForRequest(reqStatus); + TEST(reqStatus.Int()==KErrNone); + + TEST(rel99ContextConfig.iAccessPointName==DPCKTTSY_ACCESS_POINT2); + TEST(rel99ContextConfig.iPdpAddress==DPCKTTSY_PDP_ADDRESS2); + TEST(rel99ContextConfig.iPdpType==DPCKTTSY_PDP_TYPE2); + TEST(rel99ContextConfig.iProtocolConfigOption.iAuthInfo.iUsername==DPCKTTSY_USER_NAME1); + TEST(rel99ContextConfig.iProtocolConfigOption.iAuthInfo.iPassword==DPCKTTSY_PASSWORD1); + TEST(rel99ContextConfig.iProtocolConfigOption.iAuthInfo.iProtocol==DPCKTTSY_PROTOCOL_TYPE1_0); + + // now test the getting of DNS server names + RPacketContext::TDnsInfoV2 dnsInfoV2; + RPacketContext::TTDnsInfoV2Pckg dnsInfoV2pckg(dnsInfoV2); + + r99Context.GetDnsInfo(reqStatus, dnsInfoV2pckg); + User::WaitForRequest(reqStatus); + + TEST(dnsInfoV2.iPrimaryDns==DPCKTTSY_DNS_SERVER1); + TEST(dnsInfoV2.iSecondaryDns==DPCKTTSY_DNS_SERVER2); + + TEST(reqStatus.Int()==KErrNone); + INFO_PRINTF1(_L("GetDnsInfo Test Passed")); + + // now test cancel of retrieval of DNS server names + r99Context.GetDnsInfo(reqStatus, dnsInfoV2pckg); + r99Context.CancelAsyncRequest(EPacketContextGetDNSInfo); + User::WaitForRequest(reqStatus); + TEST(reqStatus.Int()==KErrCancel); + INFO_PRINTF1(_L("GetDnsInfoCancel Test Passed")); + + RPacketContext::TContextConfigGPRS contextConfig; + + RPacketContext gprsContext; + TName secondContextName; + ret=gprsContext.OpenNewContext(packetService, secondContextName); + + contextConfig.iAccessPointName = DPCKTTSY_ACCESS_POINT1; + contextConfig.iAnonymousAccessReqd = DPCKTTSY_ANONYMOUS_ACCESS1; + contextConfig.iPdpAddress = DPCKTTSY_PDP_ADDRESS1; + contextConfig.iPdpCompression = DPCKTTSY_COMPRESSION1; + contextConfig.iPdpType = DPCKTTSY_PDP_TYPE1; + contextConfig.iUseEdge = DPCKTTSY_EGPRS_REQUIRED; + contextConfig.iProtocolConfigOption.iAuthInfo.iUsername = DPCKTTSY_USER_NAME1; + contextConfig.iProtocolConfigOption.iAuthInfo.iPassword = DPCKTTSY_PASSWORD1; + contextConfig.iProtocolConfigOption.iAuthInfo.iProtocol = DPCKTTSY_PROTOCOL_TYPE1_0; + contextConfig.iProtocolConfigOption.iDnsAddresses.iPrimaryDns=DPCKTTSY_DNS_SERVER1; + contextConfig.iProtocolConfigOption.iDnsAddresses.iSecondaryDns=DPCKTTSY_DNS_SERVER2; + + RPacketContext::TDnsInfoV2 gprsDnsInfoV2; + RPacketContext::TTDnsInfoV2Pckg gprsDnsInfoV2pckg(gprsDnsInfoV2); + + gprsContext.GetDnsInfo(reqStatus, gprsDnsInfoV2pckg); + User::WaitForRequest(reqStatus); + + TEST(reqStatus.Int()==KErrNone); + INFO_PRINTF1(_L("GetDnsInfo Test Passed")); + + // Start sanity test for + // REQ3880 Enable SBLP Control Procedures + + RPacketContext r5Context; + TName r5contextName; + ret=r5Context.OpenNewContext(packetService, r5contextName); + TRequestStatus aStatus; + RPacketContext::CTFTMediaAuthorizationV3* mediaAuthV3 = RPacketContext::CTFTMediaAuthorizationV3::NewL(); + CleanupStack::PushL(mediaAuthV3); + RPacketContext::CTFTMediaAuthorizationV3::TFlowIdentifier iFlowIdentifier; + ((*mediaAuthV3).iAuthorizationToken).Copy(DPCKTTSY_AUTH_TOKEN); + iFlowIdentifier.iMediaComponentNumber = DPCKTTSY_COMP_NUMBER1; + iFlowIdentifier.iIPFlowNumber = DPCKTTSY_IPFLOW_NUMBER1; + (*mediaAuthV3).iFlowIds.Append(iFlowIdentifier); + iFlowIdentifier.iMediaComponentNumber = DPCKTTSY_COMP_NUMBER2; + iFlowIdentifier.iIPFlowNumber = DPCKTTSY_IPFLOW_NUMBER2; + (*mediaAuthV3).iFlowIds.Append(iFlowIdentifier); + + // Testing Externalize and Internalize + HBufC8* aTestBuffer; + aTestBuffer = NULL; + mediaAuthV3->ExternalizeL(aTestBuffer); + TPtr8 testBuf = aTestBuffer->Des(); + (*mediaAuthV3).iAuthorizationToken = _L8(""); + mediaAuthV3->iFlowIds.Reset(); + mediaAuthV3->InternalizeL(testBuf); + TEST(!(mediaAuthV3->iAuthorizationToken).Compare(DPCKTTSY_AUTH_TOKEN)); + TEST(mediaAuthV3->iFlowIds[0].iMediaComponentNumber == DPCKTTSY_COMP_NUMBER1); + TEST(mediaAuthV3->iFlowIds[0].iIPFlowNumber == DPCKTTSY_IPFLOW_NUMBER1); + TEST(mediaAuthV3->iFlowIds[1].iMediaComponentNumber == DPCKTTSY_COMP_NUMBER2); + TEST(mediaAuthV3->iFlowIds[1].iIPFlowNumber == DPCKTTSY_IPFLOW_NUMBER2); + + //OOM test for internalize + TInt err=KErrNone; + TInt len=0; + do + { + testBuf.SetLength(len); + TRAP(err, mediaAuthV3->InternalizeL(testBuf)); + if(err == KErrOverflow) + { + len++; + } + else + { + TEST(err == KErrNone); + break; + } + } + while(len < 100); //just in case, set a limit to finish the loop. + TEST(len<100); + + + // Testing Internalize with empty buffer +// testBuf.SetLength(0); +// mediaAuthV3->InternalizeL(testBuf); + + r5Context.AddMediaAuthorizationL(aStatus, *mediaAuthV3); + User::WaitForRequest(aStatus); + TEST(aStatus.Int()==KErrNone); + INFO_PRINTF1(_L("AddMediaAuthorization Test Passed")); + + r5Context.RemoveMediaAuthorization(aStatus, (*mediaAuthV3).iAuthorizationToken); + User::WaitForRequest(aStatus); + TEST(aStatus.Int()==KErrNone); + INFO_PRINTF1(_L("RemoveMediaAuthorization Test Passed")); + + r5Context.AddMediaAuthorizationL(aStatus, *mediaAuthV3); + r5Context.CancelAsyncRequest(EPacketAddMediaAuthorization); + User::WaitForRequest(aStatus); + TEST(aStatus.Int()==KErrCancel); + INFO_PRINTF1(_L("AddMediaAuthorizationCancel Test Passed")); + + r5Context.RemoveMediaAuthorization(aStatus, (*mediaAuthV3).iAuthorizationToken); + r5Context.CancelAsyncRequest(EPacketRemoveMediaAuthorization); + User::WaitForRequest(aStatus); + TEST(aStatus.Int()==KErrCancel); + INFO_PRINTF1(_L("RemoveMediaAuthorizationCancel Test Passed")); + + CleanupStack::PopAndDestroy(mediaAuthV3); + delete aTestBuffer; + aTestBuffer = NULL; + r5Context.Close(); + + // End sanity test for + // REQ3880 Enable SBLP Control Procedures + + gprsContext.Close(); + r99Context.Close(); + packetService.Close(); + phone.Close(); + + return TestStepResult(); +} +