diff -r 000000000000 -r bde4ae8d615e os/ossrv/genericservices/httputils/Test/t_uriparser/CUriAndAuthorityTest.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/ossrv/genericservices/httputils/Test/t_uriparser/CUriAndAuthorityTest.h Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,221 @@ +// 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: +// + +#ifndef __CURIANDAUTHORITYTEST_H__ +#define __CURIANDAUTHORITYTEST_H__ + +// System includes +// +#include <e32base.h> + +// Local includes +// +#include "IpuTestUtils.h" +#include <uri8.h> +#include <uri16.h> +#include <authority8.h> +#include <authority16.h> +#include <delimitedpath8.h> +#include <delimitedpath16.h> +#include "ctestbase.h" + +enum TUriMatchAndPresenceFlags + { + ESchemeFlag = 0x01, + EUserinfoFlag = 0x02, + EHostFlag = 0x04, + EPortFlag = 0x08, + EPathFlag = 0x10, + EQueryFlag = 0x20, + EFragmentFlag = 0x40 + }; + +// CUriAndAuthorityTest - test class for the Uri and Authority family of classes +// +class CUriAndAuthorityTest : public CTestBase + { +public: + + // Static factory c'tor. Leaves pointer to created object on the cleanup stack. + // + // Rtn: pointer to newly created object - ownership transfered to caller. + // + static CUriAndAuthorityTest* NewLC(CIpuTestHarness* aTestHarness); + + // Static factory c'tor. + // + // Rtn: pointer to newly created object - ownership transfered to caller. + // + static CUriAndAuthorityTest* NewL(CIpuTestHarness* aTestHarness); + + // D'tor + // + ~CUriAndAuthorityTest(); + + // Runs the defined tests. + // + void DoTestsL(); + +// +// +// Uri Tests +// +// + + // Tests the parsing of TUriParser components + // + // In: + // aUri - the uri to be parsed + // aScheme - what the scheme should be + // aUserInfo - what the userinfo should be + // aHost - what the host should be + // aPort - what the port should be + // aPath - what the path should be + // aQuery - what the query should be + // aFragment - what the fragment should be + // + void TestUriComponentExtractionL(const TDesC16& aUri, const TDesC16& aScheme, + const TDesC16& aUserinfo, const TDesC16& aHost, + const TDesC16& aPort, const TDesC16& aPath, + const TDesC16& aQuery, const TDesC16& aFragment) const; + + + void TestUriRemoveComponentL(const TDesC& aUri_NoScheme, const TDesC& aUri_NoHost, const TDesC& aUri_NoUserinfo, + const TDesC& aUri_NoPort, const TDesC& aUri_NoPath, const TDesC& aUri_NoQuery, + const TDesC& aUri_NoFragment, const TDesC& aUri_Whole) const; + + void TestUriSetComponentL(const TDesC& aUri_Scheme, const TDesC& aUri_Host, const TDesC& aUri_Userinfo, + const TDesC& aUri_Port, const TDesC& aUri_Path, const TDesC& aUri_Query, + const TDesC& aUri_Fragment, const TDesC& aScheme, const TDesC& aHost, + const TDesC& aUserinfo, const TDesC& aPort, const TDesC& aPath, + const TDesC& aQuery, const TDesC& aFragment) const; +private: // Methods + + // Default c'tor. + // + CUriAndAuthorityTest(CIpuTestHarness* aTestHarness); + + // Non-trivial c'tor. Second part of 2-phase construction - does all allocation. + // + void ConstructL(); + + // Tests uri resolving. + // + // In: + // aBase - base uri + // aRelative - referene uri to be resolved + // aExpected - expected result + // + void TestResolveL(const TDesC& aBase, const TDesC& aReference, const TDesC& aExpected) const; + + // Tests comparison of 2 uri's + // + // In: + // aUri1 - a uri + // aUri2 - a uri + // aMatchFlags - set of flags specifying which components match + // + void TestUriCompareL(const TDesC& aUri1, const TDesC& aUri2, TInt aMatchFlags) const; + + // Tests the presence of components in a uri + // + // In: + // aUri - the uri to test + // aPresenceFlags - set of flags specifying which components are present + // + void TestUriComponentPresenceL(const TDesC& aUri, TInt aPresenceFlags) const; + + // Tests the UriDes() function + // + // In: + // aUri - the uri + // + void TestUriDesL(const TDesC& aUri) const; + + // Tests scheme validation + // + // In: + // aUri - the uri + // aValidScheme - boolean value stating whether scheme is valid or not + // + void TestUriSchemeValidiyL(const TDesC& aUri, TBool aValidScheme) const; + + // Tests retrieving the fragmentless uri + // + // In: + // aUri - the uri + // aExpected - the expeced fragmentless uri + // + void TestUriWithoutFragmentL(const TDesC& aUri, const TDesC& aExpected); + +// +// +// Authority Tests +// +// + + // Tests the parsing of TAuthorityParser components + // + // In: + // aAuthority - the authority to be parsed + // aHost - what the host should be + // aUserInfo - what the userinfo should be + // aPort - what the port should be + // + void TestAuthorityComponentExtractionL(const TDesC16& aAuthority, const TDesC16& aHost, + const TDesC16& aUserinfo, const TDesC16& aPort) const; + + // Tests comparison of 2 authorities + // + // In: + // aAuthority1 - an authority + // aAuthority2 - an authority + // aMatchFlags - set of flags specifying which components match + // + void TestAuthorityCompareL(const TDesC& aAuthority1, const TDesC& aAuthority2, TInt aMatchFlags) const; + + // Tests the presence of components in an authority + // + // In: + // aAuthority - the authority to test + // aPresenceFlags - set of flags specifying which components are present + // + void TestAuthorityComponentPresenceL(const TDesC& aAuthority, TInt aPresenceFlags) const; + + // Tests the AuthorityDes() function + // + // In: + // aAuthority - the authority + // + void TestAuthorityDesL(const TDesC& aAuthority); + + void TestAuthoritySetComponentL(const TDesC& aAuthority_Host, const TDesC& aAuthority_Userinfo, const TDesC& aAuthority_Port, + const TDesC& aHost, const TDesC& aUserinfo, const TDesC& aPort); + + void TestAuthoritySetAndEscapeComponentL(const TDesC& aAuthority_Host, const TDesC& aAuthority_Userinfo, const TDesC& aAuthority_Port, + const TDesC& aHost, const TDesC& aUserinfo, const TDesC& aPort) const; + + void TestAuthorityRemoveComponentL(const TDesC& aAuthority_NoHost, const TDesC& aAuthority_NoUserinfo, + const TDesC& aAuthority_NoPort, const TDesC& aAuthority_Whole) const; + +private: // Attributes + + // Test harness + // + CIpuTestHarness* iTestHarness; + + }; + +#endif // __CURIANDAUTHORITYTEST_H__