diff -r 000000000000 -r b16258d2340f applayerprotocols/httptransportfw/Test/t_utils/TestScripts.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/applayerprotocols/httptransportfw/Test/t_utils/TestScripts.h Tue Feb 02 01:09:52 2010 +0200 @@ -0,0 +1,217 @@ +// Copyright (c) 2001-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 __TESTSCRIPTS_H__ +#define __TESTSCRIPTS_H__ + +#include +#include +#include +#include "httptestutils.h" + +class CScriptSection; +class CScriptSectionItem; + +_LIT(KScriptPanic, "HTTPTESTSCR"); +_LIT(KScriptSectionStart, "["); +_LIT(KScriptCRLF, "\r\n"); +_LIT(KScriptLF, "\n"); +_LIT(KScriptCR, "\r"); +_LIT(KScriptItemEnd, "="); +_LIT(KDefaults, "Defaults"); +_LIT(KDefault1, "Def"); +_LIT(KDefault2, "Default"); +_LIT(KScriptsSection, "Scripts"); + +//##ModelId=3C4C4C40007E +class CScriptFile : public CBase + { + public: + //##ModelId=3C4C4C400222 + IMPORT_C static CScriptFile* NewL(CHTTPTestUtils& aTestUtils, const TDesC& aComponent, const TDesC& aScriptFile); + //##ModelId=3C4C4C400237 + IMPORT_C static CScriptFile* NewL(CHTTPTestUtils& aTestUtils, const TDesC& aComponent); + //##ModelId=3C4C4C400205 + IMPORT_C static CScriptFile* NewLC(CHTTPTestUtils& aTestUtils, const TDesC& aComponent, const TDesC& aScriptFile); + //##ModelId=3C4C4C400218 + IMPORT_C static CScriptFile* NewLC(CHTTPTestUtils& aTestUtils, const TDesC& aComponent); + //##ModelId=3C4C4C400204 + IMPORT_C ~CScriptFile(); + + //##ModelId=3C4C4C4001E6 + IMPORT_C const TDesC& ItemValue(const TDesC& aSection, const TDesC& aItem, const TDesC& aDefault); + //##ModelId=3C4C4C4001F1 + IMPORT_C TInt ItemValue(const TDesC& aSection, const TDesC& aItem, const TInt aDefault); + + //##ModelId=3C4C4C4001C9 + IMPORT_C static HBufC* ItemValueLC(CHTTPTestUtils& aTestUtils, const TDesC& aComponent, const TDesC& aScript, const TDesC& aSection, const TDesC& aItem, const TDesC& aDefault); + //##ModelId=3C4C4C4001AB + IMPORT_C static TInt ItemValueL(CHTTPTestUtils& aTestUtils, const TDesC& aComponent, const TDesC& aScript, const TDesC& aSection, const TDesC& aItem, const TInt aDefault); + + //##ModelId=3C4C4C4001A0 + IMPORT_C void ReadScriptL(const TDesC& aScript); + + //##ModelId=3C4C4C400198 + inline CArrayPtrFlat& Sections() const; + + //##ModelId=3C4C4C40018D + IMPORT_C CScriptSection* Section(const TDesC& aSectionName); //return NULL if section not found + //##ModelId=3C4C4C400183 + inline CScriptSection& SectionL(const TDesC& aSectionName); //leaves with KErrNotFound if section not found + //##ModelId=3C4C4C400196 + inline CScriptSection& Section(TInt aIndex) const {return *iSections->At(aIndex);} + + //##ModelId=3C4C4C400164 + IMPORT_C static TInt GetNextWord(TLex& aInput, TChar aDelimiter, TInt& aOutput); + //##ModelId=3C4C4C400178 + IMPORT_C static TInt GetNextWord(TLex& aInput, TChar aDelimiter, TPtrC& aOutput); + //##ModelId=3C4C4C400150 + IMPORT_C static void ReplaceL(const TDesC& aOld, const TDesC& aNew, HBufC*& rString); + //##ModelId=3C4C4C40013D + IMPORT_C static HBufC* ReplaceLC(const TDesC& aOld, const TDesC& aNew, const TDesC& aOldString); + + protected: + //##ModelId=3C4C4C400134 + CScriptFile(CHTTPTestUtils& aTestUtils); + //##ModelId=3C4C4C400132 + void ConstructL(const TDesC& aComponent); + + //##ModelId=3C4C4C4000C6 + CArrayPtrFlat* iSections; + //##ModelId=3C4C4C4000B0 + CScriptSection* iLastSection; + //##ModelId=3C4C4C40009E + CHTTPTestUtils& iTestUtils; + //##ModelId=3C4C4C400095 + HBufC* iComponent; + + //##ModelId=3C4C4C40011F + TPtrC ParseValue(const TDesC& aText, const TLex& aInput, TInt aCurrentItemStart) const; + //##ModelId=3C4C4C40010B + void ParseAndSetItemValueL(const TDesC& aText, const TLex& aInput, TInt aCurrentItemStart, CScriptSectionItem*& arCurrentItem); + //##ModelId=3C4C4C4000F6 + void FoundNewItemL(const TDesC& aText, TLex& arInput, TInt& arCurrentItemStart, CScriptSection& aSection, CScriptSectionItem*& arCurrentItem); + //##ModelId=3C4C4C4000EC + void CopyInDefaultsL(CScriptSection& aSection, const TDesC& aDefaultFile); + + //##ModelId=3C4C4C4000E3 + HBufC* ReadFileLC(const TDesC& aScript) const; + //##ModelId=3C4C4C4000CF + HBufC8* ReadFileL(const TDesC& aFile) const; + + void ParseScriptSectionsL(const TDesC& aScript, TInt aInsertIndex); + void ParseEmbeddedScriptsL(CScriptSection& aSection, TInt aInsertIndex); + }; + +//##ModelId=3C4C4C4302C7 +class CScriptSection : public CBase + { + friend class CScriptFile; + + public: + //##ModelId=3C4C4C4303C1 + IMPORT_C static CScriptSection* NewLC(const TDesC& aSectionName); + //##ModelId=3C4C4C4303CC + IMPORT_C static CScriptSection* NewLC(const TDesC& aSectionName, CScriptSection& aDefaults); + //##ModelId=3C4C4C4303B8 + IMPORT_C ~CScriptSection(); + + //##ModelId=3C4C4C4303B7 + inline const TDesC& SectionName() const; + + //##ModelId=3C4C4C4303A4 + IMPORT_C CScriptSectionItem* Item(const TDesC& aItem); //return NULL if the item does not exist + //##ModelId=3C4C4C43039A + inline CScriptSectionItem& ItemL(const TDesC& aItem); //leaves with KErrNotFound if the item does not exist + + //##ModelId=3C4C4C430385 + IMPORT_C const TDesC& ItemValue(const TDesC& aItem, const TDesC& aDefault); + //##ModelId=3C4C4C43038F + IMPORT_C TInt ItemValue(const TDesC& aItem, TInt aDefault); + + //##ModelId=3C4C4C430371 + IMPORT_C CScriptSectionItem& AddItemL(const TDesC& aItem, const TDesC& aValue); + //##ModelId=3C4C4C430367 + IMPORT_C void AddItemIfNotExistL(const TDesC& aItem, const TDesC& aValue); + //##ModelId=3C4C4C430353 + IMPORT_C CScriptSectionItem& ReplaceItemL(const TDesC& aItem, const TDesC& aValue); + //##ModelId=3C4C4C430349 + IMPORT_C void DeleteItemsL(const TDesC& aItem); + + //##ModelId=3C4C4C430341 + inline CArrayPtrFlat& Items() const {return *iItems;} + //##ModelId=3C4C4C4303AD + inline CScriptSectionItem& Item(TInt aIndex) const {return *iItems->At(aIndex);} + + //##ModelId=3C4C4C43033F + inline void SetDefaultsL(CScriptSection& aDefaults); + //##ModelId=3C4C4C430336 + inline CScriptSection* Defaults() const {return iDefaults;} + + //##ModelId=3C4C4C430335 + IMPORT_C CScriptSection* CopyLC(); + + private: + //##ModelId=3C4C4C43032B + void ConstructL(const TDesC& aSectionName); + //##ModelId=3C4C4C430322 + CScriptSection(); + //##ModelId=3C4C4C430319 + CArrayPtrFlat* iItems; + //##ModelId=3C4C4C4302FB + HBufC* iSectionName; + //##ModelId=3C4C4C4302EF + CScriptSectionItem* iLastItem; + //##ModelId=3C4C4C4302DE + CScriptSection* iDefaults; + }; + +//##ModelId=3C4C4C3F022B +class CScriptSectionItem : public CBase + { + friend class CScriptSection; + friend class CScriptItem; + + public: + //##ModelId=3C4C4C3F027C + IMPORT_C static CScriptSectionItem* NewLC(CScriptSection& aParent, const TDesC& aItem, const TDesC& aValue); + //##ModelId=3C4C4C3F027B + inline CScriptSectionItem* CopyLC(); + + //##ModelId=3C4C4C3F0273 + IMPORT_C ~CScriptSectionItem(); + //##ModelId=3C4C4C3F0255 + HBufC* iValue; + //##ModelId=3C4C4C3F0272 + inline const TDesC& Item() const; + //##ModelId=3C4C4C3F0271 + inline const TDesC& Value() const; + + //##ModelId=3C4C4C3F024B + CScriptSection& iParent; + + private: + //##ModelId=3C4C4C3F0268 + CScriptSectionItem(CScriptSection& aParent); + //##ModelId=3C4C4C3F025D + void ConstructL(const TDesC& aItem, const TDesC& aValue); + //##ModelId=3C4C4C3F0242 + HBufC* iItem; + }; + +#include "TestScripts.inl" + +#endif // __TESTSCRIPTS_H__ +