--- /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 <e32base.h>
+#include <f32file.h>
+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<CHeaderFieldParamInfo> iFieldParamInfos;
+ };
+
+class CHeaderInfo : public CBase
+ {
+
+ public:
+ ~CHeaderInfo()
+ {
+ delete iFieldName;
+ iFieldInfos.ResetAndDestroy();
+ iParamInfos.ResetAndDestroy();
+ }
+
+ HBufC8* iFieldName;
+ RPointerArray<CHeaderFieldInfo> iFieldInfos;
+ RPointerArray<CHeaderFieldParamInfo> 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<CHeaderInfo>& HeaderInfos() const
+ {
+ return iResponseHeaderInfos;
+ }
+
+ const RPointerArray<CHeaderInfo>& 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<CHeaderInfo> iResponseHeaderInfos;
+ RPointerArray<CHeaderInfo> 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<CHttpClientTestParams> iTestParamArray;
+ };
+
+#endif // __CHTTPCLIENTTESTPARAMS_H__