applayerprotocols/httptransportfw/Test/TestScriptTest/CPipeliningTestParams.h
changeset 0 b16258d2340f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/applayerprotocols/httptransportfw/Test/TestScriptTest/CPipeliningTestParams.h	Tue Feb 02 01:09:52 2010 +0200
@@ -0,0 +1,188 @@
+// 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 __CPIPELININGTESTPARAMS_H__
+#define __CPIPELININGTESTPARAMS_H__
+
+#include <e32base.h>
+
+
+class CHTTPTestUtils;
+
+
+
+typedef struct TransInfo_
+{
+	/*Array for Header types to add to transactions, presently only size 3, 
+	index 0 - HTTP & index 1 for Connection, 2 for Transaction - to cancel
+	0 in the index means default header ( http 1.1 & no connection close),
+	if there is a value other than 0, it means there is information
+	in the TransHeaderInfo array at the value index,
+	eg: value 4 in index 1 of TransHeaderType means 
+	Connection header has some value in the 4th index of the TransHeaderInfo array
+	*/
+	TInt					TransType;
+	RArray < TInt >			TransHeaderTypeArr; 
+	RPointerArray < HBufC > TransHeaderInfoPtrArr;
+} TransInfo;
+
+enum TArrayType
+	{
+	ERequestArray = 1,
+	EResponseArray,
+	ETransactionArray
+	};
+
+/*	Pipelining parameters - configured from ini file, and passed to testCase constructor
+*/
+class CPipeliningTestParams : public CBase
+	{
+public:
+	static CPipeliningTestParams* NewL(CHTTPTestUtils& aTestUtils);
+		
+	//Parse "\n", "\r" with '\r', \n' and " with null
+	void RemoveQuotes(HBufC16* aHBuf16Ptr);
+	void RemoveQuotes(HBufC8* aHBuf8Ptr);
+	
+	void ParseReplaceCRLF(HBufC8* aHBuf8Ptr);
+	void ParseReplaceCRLF(HBufC16* aHBuf16Ptr);
+	
+	//Run Test
+	TBool	RunTest() const;
+	void SetRunTest(const TDesC& aRunTest);
+	
+	//Batching Enabled
+	TBool BatchingEnabled() const;
+	void EnableBatching(const TDesC& aIsBatchingEnabled);
+	
+	//Pipelining Enabled
+	TBool PipeliningEnabled() const;			
+	void EnablePipelining(const TDesC& aIsPipeliningEnabled);
+	
+	//Buffer Size
+	TInt	BufferSize() const;
+	void SetBufferSize(const TDesC& aBufferSize);
+	
+	//Uri
+	TDesC8&	UriL(TInt aUriIndex) const;
+	TInt UriCount() const;
+	void SetUriL(TInt aUriIndex, const TDesC& aUri);
+	
+	//Error
+	TInt Error() const;
+	void SetErrorL(const TDesC& aError);
+
+	//Connection Count
+	TInt ConnectionCount() const;
+	void SetConnectionCount(const TDesC& aConnectionCount);
+	
+	//Request Method Type
+	void SetReqMethodL(const TDesC& aReqMethod);
+	TDesC16& ReqMethod();
+	
+	//Total TransactionCount
+	TInt TotalTransactionCount() const;
+	void SetTotalTransactionCount(const TDesC& aTotalTransCount);
+	void DecreaseTotalTransactionCount() const;
+	
+	//TransactionCount - returns the size of the connReqArray
+	TInt TransactionCount(TInt aConnIndex) const;
+	
+	//TestCase Name
+	TDesC&	TestCaseName() const;
+	void SetTestCaseNameL(const TDesC& aTestCaseName );
+	
+	//Common to request and response arrays
+	//Input TInt aInt : Use 1 for requestarr, 2 for responsearr, 3 for transactionarr
+	void SetSequenceArrL(const TDesC& aArrAsStr, TInt aInt);
+	TInt TransactionSequenceArray(TInt aIndex) const;
+	
+	//Raw Request
+	TDesC8&	RawRequest(TInt aConnIndex, TInt aTransIndex) const; // returns based on the connection index after checking 2d array
+	TDesC8& RawRequest(TInt aRawRequestBufArrIndex ) const; //returns value in the rarray based on index
+	void SetRawRequestL(TInt aConnIndex, const TDesC& aRawRequest);	
+	
+	
+	//Raw Response
+	TDesC8&	RawResponse(TInt aConnIndex, TInt aTransIndex) const;
+	TDesC8&	RawResponse( TInt aRawResponseBufArrIndex ) const;
+	void SetRawResponseL(TInt aConnIndex, const TDesC& aRawResponse);
+	
+	
+	//Transaction Types
+	TransInfo& TransactionType(TInt transTypeNum) const; //Returns a long string like transInfo in SetTransType()
+	
+	//1. Creates a new instance of TransInfo struct,
+	//2. Sets all information of TransInfo by
+	//	a. Sets the TransInfo->TransType to transTypeNumber passed by function
+	//	b. Parsing the given string for ',' demiliter
+	//	c. Parsing string returned by step 2.a for ':' delimiter
+	//	d. sets the second part of string returned by 2.b in the string to TransInfo->TransHeaderInfoPtrArr
+	//		checking if first part of string returned by 2.b is HTTP or Connection
+	//		if HTTP, then sets TransInfo->TransHeaderTypeArr[0] to count of TransInfo->TransHeaderInfoPtrArr
+	//		else sets TransInfo->TransHeaderTypeArr[1]
+	//
+	// Returns the index of the TransType created in iTransTypesInfoPtrArr
+	TInt SetTransactionTypeL(TInt transTypeNumber, TDesC& transInfoDesc);
+	
+	//Header to Process for test cases cheaderdecode, cinc052596, cinc037440, cpipeliningconfigtest
+	TBool	ProcessHeader()	const;
+	TInt NumHdrs() const;
+	TDesC8&	 HeaderToProcess(TInt aHdrIdx) const;
+	void SetHeaderToProcessL(const TInt aHdrIdx, const TDesC& aHdrName );		
+	
+	//Value expected for the header
+	TInt NumberOfHeaderVals(const TInt aCtr) const;
+	TDesC8& HeaderVal(const TInt aHdrCtr, const TInt aHdrValCtr ) const;
+	void SetHdrValL(const TInt aHdrCtr, const TInt aHdrValIdx, const TDesC& aHdrVal);
+	
+	//Validate: To check if the params are configured correctly.
+	//If no, leave with error number defined in TestParamsErr.h
+	void ValidateL() const;
+	
+	//Destructor	
+	~CPipeliningTestParams();
+	
+private:
+	CPipeliningTestParams(CHTTPTestUtils& aTestUtils);
+	CPipeliningTestParams(const CPipeliningTestParams& aPipeliningTestParams);
+	
+private:
+	TBool							iRunTest;
+	HBufC*							iTestCaseNameBuf;
+	TBool							iBatchingEnabled;
+	TBool							iPipeliningEnabled;
+	TInt							iBufferSize;
+	RArray < HBufC8* >				iUriBufArr;
+	TInt							iConnectionCount;
+	HBufC*							iReqMethod;
+	TInt							iError;
+	mutable TInt					iTotalTransactionCount;
+	RArray < TInt >					iTransArr;
+	RPointerArray < TransInfo >		iTransTypesInfoPtrArr;
+	RArray < HBufC8* >				iRawRequestBufArr;	
+	RArray < HBufC8* >				iRawResponseBufArr;
+	RArray < RArray < TInt 	>	>	iConnReq2DArr;
+	RArray < RArray < TInt 	>	>	iConnResp2DArr;
+	RArray < TBool >				iProcessHdrArr;
+	TBool			 				iProcessHdr;
+	RArray < HBufC8* >				iHeader2ProcessArr;
+	RArray < RArray < HBufC8* > >	iHdrVal2DArr;
+	
+	CHTTPTestUtils&			iTestUtils;
+	
+	};
+
+#endif // __CPIPELININGTESTPARAMS_H__