applayerprotocols/httpservice/test/httpservicetest/chttpclienttestparams.h
changeset 0 b16258d2340f
child 5 337070b4fa18
--- /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__