diff -r 000000000000 -r b16258d2340f applayerprotocols/httpservice/test/httpservicetest/chttpclienttestparams.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/applayerprotocols/httpservice/test/httpservicetest/chttpclienttestparams.h Tue Feb 02 01:09:52 2010 +0200 @@ -0,0 +1,222 @@ +// 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: +// + +#ifndef __CHTTPCLIENTTESTPARAMS_H__ +#define __CHTTPCLIENTTESTPARAMS_H__ + +#include +#include +class CTestStep; + +class CHeaderFieldParamInfo : public CBase + { +public: + ~CHeaderFieldParamInfo() + { + delete iParamName; + delete iParamValue; + } + + HBufC8* iParamName; + HBufC8* iParamValue; + }; + +class CHeaderFieldInfo : public CBase + { +public: + ~CHeaderFieldInfo() + { + delete iFieldValue; + iFieldParamInfos.ResetAndDestroy(); + } + HBufC8* iFieldValue; + RPointerArray iFieldParamInfos; + }; + +class CHeaderInfo : public CBase + { + + public: + ~CHeaderInfo() + { + delete iFieldName; + iFieldInfos.ResetAndDestroy(); + iParamInfos.ResetAndDestroy(); + } + + HBufC8* iFieldName; + RPointerArray iFieldInfos; + RPointerArray iParamInfos; + }; + + +class CFileSender : public CBase + { + friend class CHttpClientTestParams; +public: + static CFileSender* NewL(const TDesC& aFileName); + ~CFileSender(); + const TDesC8& Read(); + const TDesC8& Read(TInt aSize); + TInt Size(); + TBool MoreToRead() const; + const TDesC& FileName() const; + +private: + CFileSender(); + void ConstructL(const TDesC& aFileName); +private: + RFs iFs; + RFile iFile; + RBuf8 iBuffer; + TInt iFileSize; + HBufC* iFileName; + }; + +class CFileReceiver : public CBase + { +friend class CHttpClientTestParams; +public: + static CFileReceiver* NewL(const TDesC& aFileName); + TInt Write(const TDesC8& aData); + ~CFileReceiver(); + RFile& File(); + const TDesC& FileName() const; + TInt Size() + { + TInt size; + iFile.Size(size); + return size; + } +private: + void ConstructL(const TDesC& aFileName); +private: + RFs iFs; + RFile iFile; + HBufC* iFileName; + }; + +class THttpHeaderValueVariant; + +class CHttpClientTestParams : public CBase + { + public: + static CHttpClientTestParams* NewL(CTestStep& aTestCase); + ~CHttpClientTestParams(); + + + TInt StatusCode() const; + const TDesC8& Method() const; + const TDesC8& Uri() const; + const TDesC8& RawRequest() const; + const TDesC8& RawResponse() const; + const TDesC8& ResponseBody() const; + const RPointerArray& HeaderInfos() const + { + return iResponseHeaderInfos; + } + + const RPointerArray& RequestHeaderInfos() const + { + return iRequestHeaderInfos; + } + + TBool CheckVariantValue(const THttpHeaderValueVariant& aVariant, const TDesC8& aValueToMatch); + CHeaderInfo* FindHeaderInfo(const TDesC8& aHeaderName); + + TBool IsFileSending() const; + TBool IsPendingRead() const; + const TDesC8& ReadFromFile(); + TInt WriteToFile(const TDesC8& aData); + + RFile& SinkFile(); + RFile& SourceFile(); + TBool MatchFileContent(); + TBool MatchPostFileContent(); + TBool NeedDisconnection() const; + TInt ExpectedError() const; + TBool NoRetryOnDisconnect() const; + TBool ResponseTimeoutEnable() const; + TBool IsRedirecting() const; + TBool TransferProgress() const; + + const TDesC8& RequestBody() const + { + if(iRequestBody) + return *iRequestBody; + return KNullDesC8(); + } + TInt SendingFileSize() + { + return iFileSender->Size(); + } + TInt ReceivingFileSize() + { + return iFileReceiver->Size(); + } + TBool ResponseDynamicAndStatic() + { + return iResponseDynamicAndStatic; + } + TBool OnlineTest() + { + return iOnlineTest; + } + + const TDesC8& ProxyAddress() const + { + if(iProxyAddress) + return *iProxyAddress; + return KNullDesC8(); + } +private: + void ConstructL(CTestStep& aTestCase); + + +private: + CFileSender* iFileSender; + CFileReceiver* iFileReceiver; + TBool iConnDisconnect; + TInt iStatusCode; + HBufC8* iMethod; + HBufC8* iUri; + HBufC8* iRawRequest; + HBufC8* iRawResponse; + HBufC8* iResponseBody; + HBufC8* iRequestBody; + TInt iExpectedError; + TBool iNoRetryOnDisconnect; + RPointerArray iResponseHeaderInfos; + RPointerArray iRequestHeaderInfos; + TBool iResponseDynamicAndStatic; + TBool iOnlineTest; + TBool iResponseTimeout; + TBool iRedirection; + TBool iNotifyTransferProgress; + HBufC8* iProxyAddress; + }; + +class CHttpClientTestParamArray : public CBase + { +public: + CHttpClientTestParamArray(); + ~CHttpClientTestParamArray(); + void AddTestParams(CHttpClientTestParams* aParams); + CHttpClientTestParams* MatchingParam(const TDesC8& aData); +private: + RPointerArray iTestParamArray; + }; + +#endif // __CHTTPCLIENTTESTPARAMS_H__