messagingfw/msgtest/testutils/email/inc/ScriptTestUtils.h
changeset 62 db3f5fa34ec7
parent 0 8e480a14352b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingfw/msgtest/testutils/email/inc/ScriptTestUtils.h	Wed Nov 03 22:41:46 2010 +0530
@@ -0,0 +1,106 @@
+// Copyright (c) 2000-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:
+//
+
+#include <e32test.h>
+#include <f32file.h>
+
+const TInt IMSCRIPTBUFFERLENGTH = 256;
+
+class CEmailTestUtils;
+
+class CScriptTestUtils : public CBase
+	{
+public:
+	IMPORT_C void LogToInputFileL(const TDesC& aSourceFileName, const TDesC& aDestFileName, TBool aStandardiseDateFields);
+	IMPORT_C void LogToOutputFileL(const TDesC& aSourceFileName, const TDesC& aDestFileName, TBool aStandardiseDateFields);
+
+	IMPORT_C static CScriptTestUtils* NewLC(CEmailTestUtils& aTestUtils);
+	~CScriptTestUtils();
+	
+	// Functions for checking the IM output.
+	IMPORT_C TBool CheckLogOutputL(TInt aPortNumber, const TDesC& aTestFileName);
+	IMPORT_C TInt ErrorLineNumber();
+	IMPORT_C HBufC* ErrorExpectedL();
+	IMPORT_C HBufC* ErrorActualL();
+
+private:
+
+	void ConstructL();
+
+	enum TImLogLineType
+		{
+		EImLogLineComment,
+		EImLogLineIn,
+		EImLogLineOut,
+		EImEmptyLine,
+		EImReadCancelled
+		};
+
+	class TFileReader
+		{
+	public:
+		TFileReader(RFile &rFile);
+		TBool Read(char &rChar);
+		void SeekCurrent(TInt aOffset);
+		void Seek(TInt aOffset);
+
+	private:
+		RFile& iFile;
+		TBuf8<IMSCRIPTBUFFERLENGTH> iBuffer;
+		TInt iBufferIndex;
+		TInt iBufferStart;
+		};
+	
+	void StandardiseVariableFieldsL(const TDesC& aSourceFileName);
+	void ReplaceVariableFields(TDes8& aDes);
+	void StripLogFileL(const TFileName& aSourceFileName, const TFileName& aDestFileName, TBool aStandardiseDateFields, TImLogLineType aLogLineType);
+
+	TImLogLineType LineType(const HBufC8* aLine);
+	HBufC8* GetLineL(TFileReader& aFileReader);
+
+	CScriptTestUtils(CEmailTestUtils& aTestUtils);
+
+private:
+	
+	TInt iErrorLine;
+	HBufC* iExpectedLine;
+	HBufC* iActualLine;
+
+	class CImTestField
+		{
+		public:
+		HBufC8* iFieldName;
+		HBufC8* iReplacementString;
+		TInt iNumberFound;
+
+		~CImTestField();
+		};
+
+	class CImFindReplace
+		{
+		public:
+		HBufC8* iFind;
+		HBufC8* iReplace;
+
+		~CImFindReplace();
+		};
+
+	CImFindReplace* FindVariableDataL(TDes8& aLine);
+
+	CArrayPtrFlat<CImTestField>* iFieldList;
+	CArrayPtrFlat<CImFindReplace>* iFindReplaceList;
+
+	CEmailTestUtils& iTestUtils;
+	};