--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/wbxmlparser/test/rtest/tsrc/stabilitytestclass.h Thu Dec 17 09:29:21 2009 +0200
@@ -0,0 +1,134 @@
+// 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 __STABILITYTESTCLASS_H__
+#define __STABILITYTESTCLASS_H__
+
+#include <f32file.h>
+
+#include <xml/contenthandler.h>
+#include <xml/parser.h>
+#include <xml/stringdictionarycollection.h>
+#include <xml/wbxmlextensionhandler.h>
+
+class RTest;
+
+struct TPassOrFailureSettings {
+ TInt iParseMode;
+ const TDesC8* iStringDictionaryUri;
+ TBool iDoParseDocument;
+ TBool iFilenameProvided;
+ TInt iExpectedCode;
+
+};
+
+
+#define BUFFER_SIZE 2000 // buffer to build strings. per element
+#define XBUFFER_SIZE BUFFER_SIZE+1000 // additional size increase
+#define OUTPUT_SIZE 16000 // concatenate BUFFER strings
+
+
+class CStabilityTestClass : public CBase, public Xml::MWbxmlExtensionHandler, public Xml::MContentHandler
+/**
+This class provides common usage between stability tests.
+Keeping code to a minimum and reuse high.
+
+*/
+ {
+public:
+
+ static CStabilityTestClass* NewL(RTest& aTest,
+ TBool aIsOomTest = EFalse,
+ TInt aChunkSize = 0);
+
+ virtual ~CStabilityTestClass();
+
+ typedef void (CStabilityTestClass::*ClassFuncPtrL) (const TDesC&);
+ typedef void (CStabilityTestClass::*ClassFuncPtr2L) (CStabilityTestClass::ClassFuncPtrL);
+
+ void StabilityTestL(const TDesC& aAbsoluteDirPath,
+ const TDesC& aExt,
+ ClassFuncPtrL aTestFuncL);
+
+ void ParseDirL(const TDesC& aAbsoluteDirPath, const TDesC& aExt,
+ ClassFuncPtrL aTestFuncL);
+
+ void ParseEntryL(const TDesC& aAbsoluteFilename,
+ ClassFuncPtrL aTestFuncL);
+
+ void OomProcess(ClassFuncPtrL aTestFuncL);
+
+ void TestWholeL(const TDesC& aFileName);
+ void TestChunkL(const TDesC& aFileName);
+
+ void TestBehaviour(const TDesC& aSrc, TPassOrFailureSettings& aTestSettings);
+ void BehaviourTestL(const TDesC& aSrc, TPassOrFailureSettings& aTestSettings);
+
+ // From MContentHandler
+
+ void OnStartDocumentL(const Xml::RDocumentParameters& aDocParam, TInt aErrorCode);
+ void OnEndDocumentL(TInt aErrorCode);
+ void OnStartElementL(const Xml::RTagInfo& aElement, const Xml::RAttributeArray& aAttributes, TInt aErrorCode);
+ void OnEndElementL(const Xml::RTagInfo& aElement, TInt aErrorCode);
+ void OnContentL(const TDesC8& aBytes, TInt aErrorCode);
+ void OnStartPrefixMappingL(const RString& aPrefix, const RString& aUri, TInt aErrorCode);
+ void OnEndPrefixMappingL(const RString& aPrefix, TInt aErrorCode);
+ void OnIgnorableWhiteSpaceL(const TDesC8& aBytes, TInt aErrorCode);
+ void OnSkippedEntityL(const RString& aName, TInt aErrorCode);
+ void OnProcessingInstructionL(const TDesC8& aTarget, const TDesC8& aData, TInt aErrorCode);
+ TAny* GetExtendedInterface(const TInt32 aUid);
+
+ void OnError(TInt aErrorCode);
+
+
+ // From MWbxmlExtensionHandler
+
+ void OnExtensionL(const RString& aData, TInt aToken, TInt aErrorCode);
+
+
+public:
+
+#ifdef __COMPARE_OUTPUT__
+ TBuf16<OUTPUT_SIZE> *iOutput;
+#endif // __COMPARE_OUTPUT__
+
+protected:
+
+ CStabilityTestClass(RTest& aTest, TBool aIsOomTest = EFalse, TInt aChunkSize = 0);
+
+ void ConstructL();
+
+protected:
+
+ Xml::RStringDictionaryCollection iStringDictionaryCollection;
+ Xml::CParser* iParser;
+ TInt iError;
+ TInt iParseMode;
+ TParse iFileName;
+ RFs iFs;
+ RTest& iTest;
+ TInt iChunkSize;
+ TBool iIsOomTest;
+ RArray<TInt> iCurrentIndex;
+ RPointerArray<CDir> iEntries;
+
+ TBuf16<BUFFER_SIZE> * iBuffer;
+
+#ifdef __SHOW_MANUAL_OUTPUT__
+ TBuf16<XBUFFER_SIZE> * iFormat;
+#endif // __SHOW_MANUAL_OUTPUT__
+ };
+
+#endif // __STABILITYTESTCLASS_H__