genericservices/httputils/Test/t_uriparser/CUriUtilsTest.cpp
changeset 0 e4d67989cc36
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/genericservices/httputils/Test/t_uriparser/CUriUtilsTest.cpp	Tue Feb 02 02:01:42 2010 +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 <e32base.h>
+#include <uriutils.h>
+
+#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);
+	}