diff -r 000000000000 -r bde4ae8d615e os/ossrv/genericservices/httputils/Test/t_uriparser/CUriUtilsTest.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/ossrv/genericservices/httputils/Test/t_uriparser/CUriUtilsTest.cpp Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,273 @@ +// Copyright (c) 2001-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 "CUriUtilsTest.h" + +#include +#include + +#include "UriUtilsTests.h" + +CUriUtilsTest* CUriUtilsTest::NewLC(CIpuTestHarness* aTestHarness) + { + CUriUtilsTest* self = new (ELeave) CUriUtilsTest(aTestHarness); + CleanupStack::PushL(self); + self->ConstructL(); + return self; + } + +CUriUtilsTest* CUriUtilsTest::NewL(CIpuTestHarness* aTestHarness) + { + CUriUtilsTest* self = CUriUtilsTest::NewLC(aTestHarness); + CleanupStack::Pop(self); + return self; + } + +CUriUtilsTest::CUriUtilsTest(CIpuTestHarness* aTestHarness) +: iTestHarness(aTestHarness) + { + } + +void CUriUtilsTest::ConstructL() + { + } + +CUriUtilsTest::~CUriUtilsTest() + { + } + +void CUriUtilsTest::DoTestsL() + { + TestUriUtilsConvertToInternetFormL(KDisplayForm0, KInternetForm0); + TestUriUtilsConvertToDisplayFormDeprecatedL(KInternetForm0, KDisplayForm0); + TestUriUtilsConvertToDisplayFormL(KInternetForm0, KValidDisplayForm0); + + TestUriUtilsConvertToInternetFormL(KDisplayForm1, KInternetForm1); + TestUriUtilsConvertToDisplayFormDeprecatedL(KInternetForm1, KDisplayForm1); + TestUriUtilsConvertToDisplayFormL(KInternetForm1, KValidDisplayForm1); + + TestUriUtilsHasInvalidCharsL(KInvalidChars0, KInvalid0); + TestUriUtilsHasInvalidCharsL(KInvalidChars1, KInvalid0); + TestUriUtilsHasInvalidCharsL(KInvalidChars2, KInvalid0); + TestUriUtilsHasInvalidCharsL(KInvalidChars3, KInvalid0); + TestUriUtilsHasInvalidCharsL(KInvalidChars4, KInvalid0); + TestUriUtilsHasInvalidCharsL(KInvalidChars5, KInvalid0); + TestUriUtilsHasInvalidCharsL(KInvalidChars6, KInvalid0); + TestUriUtilsHasInvalidCharsL(KInvalidChars7, KInvalid0); + TestUriUtilsHasInvalidCharsL(KInvalidChars8, KInvalid0); + TestUriUtilsHasInvalidCharsL(KInvalidChars9, KInvalid0); + TestUriUtilsHasInvalidCharsL(KInvalidChars10, KInvalid0); + TestUriUtilsHasInvalidCharsL(KInvalidChars11, KInvalid0); + + TestUriUtilsHasInvalidCharsL(KInvalidChars12, KInvalid1); + TestUriUtilsHasInvalidCharsL(KInvalidChars13, KInvalid1); + TestUriUtilsHasInvalidCharsL(KInvalidChars14, KInvalid1); + TestUriUtilsHasInvalidCharsL(KInvalidChars15, KInvalid1); + TestUriUtilsHasInvalidCharsL(KInvalidChars16, KInvalid1); + TestUriUtilsHasInvalidCharsL(KInvalidChars17, KInvalid1); + TestUriUtilsHasInvalidCharsL(KInvalidChars18, KInvalid1); + TestUriUtilsHasInvalidCharsL(KInvalidChars19, KInvalid1); + TestUriUtilsHasInvalidCharsL(KInvalidChars20, KInvalid1); + TestUriUtilsHasInvalidCharsL(KInvalidChars21, KInvalid1); + TestUriUtilsHasInvalidCharsL(KInvalidChars22, KInvalid1); + TestUriUtilsHasInvalidCharsL(KInvalidChars23, KInvalid1); + TestUriUtilsHasInvalidCharsL(KInvalidChars24, KInvalid1); + TestUriUtilsHasInvalidCharsL(KInvalidChars25, KInvalid1); + TestUriUtilsHasInvalidCharsL(KInvalidChars26, KInvalid1); + TestUriUtilsHasInvalidCharsL(KInvalidChars27, KInvalid1); + TestUriUtilsHasInvalidCharsL(KInvalidChars28, KInvalid1); + + + // + // Tests for 2.9.1.3 Host-Type checking + + // All these are IPv6 tests + TestUriUtilsHostTypeL(KHostTypeIPv6Format1, UriUtils::EIPv6Host); + TestUriUtilsHostTypeL(KHostTypeIPv6Format2, UriUtils::EIPv6Host); + TestUriUtilsHostTypeL(KHostTypeIPv6Format3, UriUtils::EIPv6Host); + TestUriUtilsHostTypeL(KHostTypeIPv6Format4, UriUtils::EIPv6Host); + TestUriUtilsHostTypeL(KHostTypeIPv6Format5, UriUtils::EIPv6Host); + TestUriUtilsHostTypeL(KHostTypeIPv6Format6, UriUtils::EIPv6Host); + TestUriUtilsHostTypeL(KHostTypeIPv6Format7, UriUtils::EIPv6Host); + + TestUriUtilsHostTypeL(KHostTypeIPv4Format, UriUtils::EIPv4Host); + + // Invalid format IPv4 hosts should be considered Text hosts + TestUriUtilsHostTypeL(KHostTypeIPv4InvalidFormat1, UriUtils::ETextHost); + TestUriUtilsHostTypeL(KHostTypeIPv4InvalidFormat2, UriUtils::ETextHost); + + TestUriUtilsHostTypeL(KHostTypeTextFormat1, UriUtils::ETextHost); + TestUriUtilsHostTypeL(KHostTypeTextFormat2, UriUtils::ETextHost); + // + // + } + +void CUriUtilsTest::TestUriUtilsConvertToInternetFormDeprecatedL(const TDesC& aData, const TDesC& aExpected) + { + // Make 8-bit copy + HBufC8* expectedBuf = HBufC8::NewLC(aExpected.Length()); + TPtr8 expected8Bit = expectedBuf->Des(); + expected8Bit.Copy(aExpected); + + iTestHarness->StartTestL(_L("Test UriUtils ConvertToInternetForm (deprecated)")); + + TUriParser16 parser; + parser.Parse(aData); + CUri8* uri = NULL; + TRAPD(error, uri = UriUtils::ConvertToInternetFormL(parser)); + if( error == KErrNone ) + { + if( uri->Uri().UriDes().Compare(expected8Bit) != 0 ) + { + error = KErrNotFound; + } + delete uri; + } + iTestHarness->EndTest(error); + + CleanupStack::PopAndDestroy(expectedBuf); // expectedBuf + } +void CUriUtilsTest::TestUriUtilsConvertToInternetFormL(const TDesC& aData, const TDesC& aExpected) + { + // Make 8-bit copy + HBufC8* expectedBuf = HBufC8::NewLC(aExpected.Length()); + TPtr8 expected8Bit = expectedBuf->Des(); + expected8Bit.Copy(aExpected); + + iTestHarness->StartTestL(_L("Test UriUtils ConvertToInternetForm")); + + CUri8* uri = NULL; + TRAPD(error, uri = UriUtils::CreateUriL(aData)); + if( error == KErrNone ) + { + if( uri->Uri().UriDes().Compare(expected8Bit) != 0 ) + { + error = KErrNotFound; + } + delete uri; + } + iTestHarness->EndTest(error); + + CleanupStack::PopAndDestroy(expectedBuf); // expectedBuf + TestUriUtilsConvertToInternetFormDeprecatedL(aData, aExpected ); + } + +void CUriUtilsTest::TestUriUtilsConvertToDisplayFormDeprecatedL(const TDesC& aData, const TDesC& aExpected) + { + // Make 8-bit copy + HBufC8* dataBuf = HBufC8::NewLC(aData.Length()); + TPtr8 data8Bit = dataBuf->Des(); + data8Bit.Copy(aData); + + iTestHarness->StartTestL(_L("Test UriUtils ConvertToInternetForm (deprecated)")); + + TUriParser8 parser; + parser.Parse(data8Bit); + CUri16* uri = NULL; + TRAPD(error, uri = UriUtils::ConvertToDisplayFormL(parser)); + if( error == KErrNone ) + { + if( uri->Uri().UriDes().Compare(aExpected) != 0 ) + { + error = KErrNotFound; + } + delete uri; + } + iTestHarness->EndTest(error); + + CleanupStack::PopAndDestroy(dataBuf); // dataBuf + } + +void CUriUtilsTest::TestUriUtilsConvertToDisplayFormL(const TDesC& aData, const TDesC& aExpected) + { + // Make 8-bit copy + HBufC8* dataBuf = HBufC8::NewLC(aData.Length()); + TPtr8 data8Bit = dataBuf->Des(); + data8Bit.Copy(aData); + + iTestHarness->StartTestL(_L("Test UriUtils ConvertToInternetForm")); + + TUriParser8 parser; + parser.Parse(data8Bit); + HBufC* uri = NULL; + TRAPD(error, uri = parser.DisplayFormL()); + if( error == KErrNone ) + { + if( uri->Compare(aExpected) != 0 ) + { + error = KErrNotFound; + } + delete uri; + } + iTestHarness->EndTest(error); + + CleanupStack::PopAndDestroy(dataBuf); // dataBuf + } + +void CUriUtilsTest::TestUriUtilsHasInvalidCharsL(const TDesC16& aData, TBool aHasInvalidChars) + { + iTestHarness->StartTestL(_L("Test UriUtils HasInvalidChars (16-bit)")); + + TBool invalid = UriUtils::HasInvalidChars(aData); + + TInt error = KErrNone; + if( (!invalid && aHasInvalidChars) | (invalid && !aHasInvalidChars) ) + { + error = KErrNotFound; + } + iTestHarness->EndTest(error); + } + +void CUriUtilsTest::TestUriUtilsHasInvalidCharsL(const TDesC8& aData, TBool aHasInvalidChars) + { + iTestHarness->StartTestL(_L("Test UriUtils HasInvalidChars (8-bit)")); + + TBool invalid = UriUtils::HasInvalidChars(aData); + + TInt error = KErrNone; + if( (!invalid && aHasInvalidChars) | (invalid && !aHasInvalidChars) ) + { + error = KErrNotFound; + } + iTestHarness->EndTest(error); + } + +void CUriUtilsTest::TestUriUtilsHostTypeL(const TDesC8& aData, UriUtils::TUriHostType aHostType) + { + iTestHarness->StartTestL(_L("Test UriUtils HostType (8-bit)")); + + UriUtils::TUriHostType hostType = UriUtils::HostType(aData); + + TInt error = KErrNone; + if ( hostType != aHostType ) + { + error = KErrNotFound; + } + iTestHarness->EndTest(error); + } + +void CUriUtilsTest::TestUriUtilsHostTypeL(const TDesC16& aData, UriUtils::TUriHostType aHostType) + { + iTestHarness->StartTestL(_L("Test UriUtils HostType (16-bit)")); + + UriUtils::TUriHostType hostType = UriUtils::HostType(aData); + + TInt error = KErrNone; + if ( hostType != aHostType ) + { + error = KErrNotFound; + } + iTestHarness->EndTest(error); + }