websrv_pub/xml_extensions_api/tsrc/bc/xml_extensions_api/inc/WSTester.h
changeset 0 62f9d29f7211
child 20 f68f07157250
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/websrv_pub/xml_extensions_api/tsrc/bc/xml_extensions_api/inc/WSTester.h	Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,537 @@
+/*
+* Copyright (c) 2002 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:  ?Description
+*
+*/
+
+
+
+#ifndef WSTESTER_H
+#define WSTESTER_H
+
+//  INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <f32file.h>
+#include <imcvcodc.h> // for base64 codec
+#include <s32strm.h>
+
+//Sen
+#include <SenXmlServiceDescription.h>
+#include <SenServiceConnection.h>
+#include <SenCredential.h>
+
+#include <SenSoapMessage.h>
+#include <SenServiceManager.h>
+//#include <SenServiceManagerImpl.h>
+#include <SenIdentityProvider.h>
+#include <SenXmlUtils.h>
+#include <SenDateUtils.h>
+#include <SenServicePattern.h>
+#include "SAXTester.h"
+#include <SenBaseElement.h>
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+#define TEST_MODULE_VERSION_MAJOR 30
+#define TEST_MODULE_VERSION_MINOR 9
+#define TEST_MODULE_VERSION_BUILD 38
+// Logging path
+_LIT( KWSTesterLogPath, "\\logs\\testframework\\WSTester\\" ); 
+// Log file
+_LIT( KWSTesterLogFile, "WSTester.txt" ); 
+_LIT8(KFixedHTTPPrefix, "http://");
+_LIT8(KFixedHTTPSPrefix, "https://");
+
+
+// Literals for SAX testing purposes
+_LIT8(KLName8, "Level1");
+_LIT8(KL2Name8, "Level2");
+_LIT8(KDefaultNS, "Default:NS:Test");
+_LIT8(KQName, "TestPre:Level1");
+_LIT8(KNsPrefix, "TestPre");
+_LIT8(KParseLocalMsg, "<Level1><Level2>Level2 content</Level2><Level2_b>Level2_b content</Level2_b></Level1>");
+_LIT8(KParseDifferentLocalMsg, "<Dif1><Level2>Level2 content</Level2></Dif1>");
+_LIT8(KParseLocalNs, "<Level1 xmlns=\"Default:NS:Test\"><Level2>Level2 content</Level2></Level1>");
+_LIT8(KParseLocalNsQ, "<TestPre:Level1 xmlns:TestPre=\"Default:NS:Test\"><Level2>Level2 content</Level2></TestPre:Level1>");
+_LIT8(KAttribute, "Atripuutti");
+_LIT8(KAttributeValue, "JustValue");
+_LIT8(KParseElemMsg, "<BaseFrag><Level2>Level2 content</Level2></BaseFrag>");
+_LIT8(KElementXml, "<BaseFrag></BaseFrag>");
+
+/**
+* Result and reference are indentical Test case should be passed.
+*/
+const TInt KResultOK = 0;
+/**
+* There is no result. Test case should be failed.
+*/
+const TInt KResultFailedNoResult = 1;
+/**
+* There is no reference. Test case should be failed.
+*/
+const TInt KResultFailedNoReference = 2;
+/**
+* Tesult and  reference are not identical. Test case should be failed.
+*/
+const TInt KResultFailedNotIdentical = 3;
+
+/**
+* A string in reference file was not found on the source.  Test case should be failed.
+*/
+const TInt KResultFailedFound = 4;
+
+//===============================Serene status
+const TInt KSubmit			= 1;
+const TInt KSend			= 2;
+const TInt KNewUriL			= 3;
+const TInt KNewUriLC		= 4;
+const TInt KNewSDescLC		= 5;
+const TInt KNewSDescL		= 6;
+const TInt KNewFooASURL		= 7;
+const TInt KNewLocalhost	= 8;
+const TInt KSendFoobar		= 9;
+const TInt KSendFW1			= 10;
+const TInt KSendFW2			= 11;
+const TInt KSendRegistered	= 12;
+const TInt KGetListTrue		= 13;
+const TInt KGetListFalse	= 14;
+const TInt KGetListTrueUE	= 15;
+const TInt KSendSOAP		= 16;
+const TInt KSubmitSOAP		= 17;
+const TInt KRegisterAndSend    = 18;
+const TInt KNewSPatternL	= 19;
+const TInt KNewSPatternLC	= 20;
+const TInt KBasicNewL		= 21;
+const TInt KBasicNewLC		= 22;
+const TInt KBasicEndpointURINewL		= 23;
+const TInt KBasicEndpointURINewLC		= 24;
+const TInt KSendEndPContr				= 25;
+const TInt KBasicAuthentication			= 26;
+const TInt KRegisterAndSendFalseLogin	= 27;
+const TInt KSubmitNonAlloc				= 28;
+const TInt KSubmitSOAPRequest			= 29;
+const TInt KBasicAuthenticationFalse	= 30;
+const TInt KSendSOAPRequest				= 31;
+const TInt KImplTesting					= 32;
+const TInt KSendLong					= 33;
+const TInt KEndpointMovedTest			= 34;
+const TInt KGetConnectionFooContaract	= 35;
+const TInt KSendASAbort					= 36;
+const TInt KInvalidLogin				= 37;
+const TInt KInvalidHost					= 38;
+const TInt KLowercase					= 40;
+const TInt KUppercase 					= 41;
+const TInt KAllowed 					= 42;
+const TInt KAllowedUppercase			= 43;
+const TInt KUppercaseAllowed			= 44;
+const TInt KAllowUpperTrun 				= 45;
+const TInt KInitialOK					= 46;
+const TInt KBasicDisco 					= 47;
+const TInt KInvalidCredentials 			= 48;
+const TInt KUnexistantDS				= 49;
+const TInt KTruncate 					= 50;
+const TInt KMultippleROs 				= 51;
+const TInt KDSFailed 					= 52;
+const TInt KDSFailedResult 				= 53;
+const TInt KNoCredentials 				= 54;
+const TInt KConnectAS					= 55;
+const TInt KSendBUCF	 				= 56;
+const TInt KSendBUCFBody 				= 57;
+const TInt KSendBUCFEnvelope			= 58;
+const TInt KInvalidWSP					= 59;
+const TInt KFacets						= 60;
+const TInt KDSEcrypted					= 61;
+const TInt KNoResourceID				= 62;
+const TInt KSendInvalidXML				= 63;
+const TInt KSendInvalidSOAP				= 64;
+const TInt KSendYomi					= 65;
+const TInt KSendBUCFEnvelope2			= 66;
+const TInt KDelegateParsing				= 67;	
+const TInt KDelegateParsing2			= 68;	
+const TInt KDetach						= 69;
+const TInt KNonSupportedAM				= 70;
+const TInt KCredentialsExpires			= 71;
+const TInt KServerError500				= 72;
+const TInt KServerError404				= 73;
+const TInt KHasFacet					= 74;
+const TInt KIsReady						= 75;
+const TInt KCompleteServerMessagesOnOff_1 = 76;
+const TInt KCompleteServerMessagesOnOff_2 = 77;
+const TInt KCompleteServerMessagesOnOff_3 = 78;
+const TInt KCompleteServerMessagesOnOff_4 = 79;
+const TInt KPerformanceSOAPSubmit		= 80;
+
+
+
+//NONSHARABLE_CLASS(CWSTester)
+class CWSTester: public CScriptBase, 	public MSenServiceConsumer
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CWSTester* NewL( CTestModuleIf& aTestModuleIf );
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CWSTester();
+
+    public: // New functions
+        
+        /**
+        * ?member_description.
+        * @since ?Series60_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+    public: // Functions from base classes
+
+        /**
+        * From CScriptBase Runs a script line.
+        * @since ?Series60_version
+        * @param aItem Script line containing method name and parameters
+        * @return Symbian OS error code
+        */
+        virtual TInt RunMethodL( CStifItemParser& aItem );
+        /**
+         * Method used to log version of test module
+         */
+        void SendTestModuleVersion();
+                
+    protected:  // New functions
+        
+        /**
+        * ?member_description.
+        * @since ?Series60_version
+        * @param ?arg1 ?description
+        * @return ?description
+        */
+        //?type ?member_function( ?type ?arg1 );
+
+    protected:  // Functions from base classes
+        
+        /**
+        * From ?base_class ?member_description
+        */
+        //?type ?member_function();
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CWSTester( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // Prohibit copy constructor if not deriving from CBase.
+        // ?classname( const ?classname& );
+        // Prohibit assigment operator if not deriving from CBase.
+        // ?classname& operator=( const ?classname& );
+    
+        /**
+        * Frees all resources allocated from test methods.
+        * @since ?Series60_version
+        */
+        void Delete();
+        
+
+
+		TInt CheckNonIncludanceL(TPtrC aSrcFile, TPtrC aReferenceFile);
+		TInt CheckIncludanceL(TPtrC aSrcFile, TPtrC aReferenceFile);
+		TInt TestFacets();
+		HBufC8* DeBase64DescL(TDesC8& aMessage);
+        /**
+        * Test methods are listed below. 
+        */
+
+/*################################################
+*
+*        
+*   SERVICE MANAGER DLL
+*
+*
+*################################################*/
+
+/*-----------------------------------------------
+            Service Manager
+-----------------------------------------------*/
+
+    virtual TInt _S_NewServiceManager( CStifItemParser& aItem );
+    virtual TInt _S_RegisterIdentityProvider( CStifItemParser& aItem );
+    virtual TInt _S_UnregisterIdentityProvider( CStifItemParser& aItem );
+    virtual TInt _S_AssociateService( CStifItemParser& aItem );
+    virtual TInt _S_DissociateService( CStifItemParser& aItem );
+    virtual TInt _S_RegisterServiceDescription( CStifItemParser& aItem );
+    virtual TInt _S_UnregisterServiceDescription( CStifItemParser& aItem );
+    virtual TInt _S_ServiceDescriptions( CStifItemParser& aItem );
+   	virtual TInt _S_ServiceDescriptionsByUri( CStifItemParser& aItem );
+	virtual TInt _S_InstallFramework( CStifItemParser& aItem );
+
+
+/*################################################
+*
+*        
+*   XML DLL
+*
+*
+*################################################*/
+
+/*-----------------------------------------------
+            SAX based parsing
+-----------------------------------------------*/
+virtual TInt _S_NewSAXFragment( CStifItemParser& aItem );
+virtual TInt _S_SAXTest( CStifItemParser& aItem );
+
+/*-----------------------------------------------
+            DOM based parsing
+-----------------------------------------------*/
+		virtual TInt _S_LocalName( CStifItemParser& aItem );
+		virtual TInt _S_NamespaceURI( CStifItemParser& aItem );
+		virtual TInt _S_SetNamespace( CStifItemParser& aItem );
+		virtual TInt _S_NsPrefix( CStifItemParser& aItem );
+		virtual TInt _S_SetPrefix( CStifItemParser& aItem );
+		virtual TInt _S_HasContent( CStifItemParser& aItem );
+		virtual TInt _S_Content( CStifItemParser& aItem );
+		virtual TInt _S_ContentUnicode( CStifItemParser& aItem );
+		virtual TInt _S_SetContent( CStifItemParser& aItem );
+		virtual TInt _S_AddNamespace( CStifItemParser& aItem );
+		virtual TInt _S_AttrValue( CStifItemParser& aItem );
+		virtual TInt _S_AddAttr( CStifItemParser& aItem );
+		virtual TInt _C_Namespace( CStifItemParser& aItem );
+		virtual TInt _C_Elements( CStifItemParser& aItem );
+		virtual TInt _C_Attributes( CStifItemParser& aItem );
+		virtual TInt _C_Namespaces( CStifItemParser& aItem );
+		virtual TInt _C_Parent( CStifItemParser& aItem );
+		virtual TInt _C_Root( CStifItemParser& aItem );
+		virtual TInt _C_SetParent( CStifItemParser& aItem );
+		virtual TInt _C_Element( CStifItemParser& aItem );
+		virtual TInt _C_CreateElement( CStifItemParser& aItem );
+		virtual TInt _C_InsertElement( CStifItemParser& aItem );
+		virtual TInt _S_AddElement( CStifItemParser& aItem );
+		virtual TInt _S_RemoveElement( CStifItemParser& aItem );
+		virtual TInt _C_ReplaceElement( CStifItemParser& aItem );
+		virtual TInt _S_AsXml( CStifItemParser& aItem );
+		virtual TInt _S_AsXmlUnicode( CStifItemParser& aItem );
+		virtual TInt _C_AsElement( CStifItemParser& aItem );
+		virtual TInt _C_CopyFrom( CStifItemParser& aItem );
+		virtual TInt _C_Detach( CStifItemParser& aItem );
+		virtual TInt _C_Child( CStifItemParser& aItem );
+		virtual TInt _C_AllocAttrValue( CStifItemParser& aItem );
+		virtual TInt _S_Set( CStifItemParser& aItem );
+		virtual TInt _S_WriteAsXMLTo( CStifItemParser& aItem );
+		virtual TInt _S_WriteNamespacesTo( CStifItemParser& aItem );
+		virtual TInt _S_ContentWriteStream( CStifItemParser& aItem );
+		virtual TInt _S_SetAttributes( CStifItemParser& aItem );
+
+/*################################################
+*
+*        
+*   SERVICE DESCRIPTION DLL
+*
+*
+*################################################*/
+/*-----------------------------------------------
+            Service Connection
+-----------------------------------------------*/
+        virtual TInt _S_NewServiceConnection( CStifItemParser& aItem );
+   		virtual TInt _S_CompleteServerMessagesOnOff( CStifItemParser& aItem );
+		virtual TInt _S_TransactionCompleted( CStifItemParser& aItem );
+		virtual TInt _S_StartTransaction( CStifItemParser& aItem );
+
+/*-----------------------------------------------
+            XML Service Description
+-----------------------------------------------*/
+        
+        virtual TInt _S_NewXMLServiceDescription( CStifItemParser& aItem );
+        virtual TInt _S_EndPoint( CStifItemParser& aItem );
+        virtual TInt _S_Contract( CStifItemParser& aItem );
+        virtual TInt _S_FrameworkId( CStifItemParser& aItem );
+        virtual TInt _C_ProviderIDToService( CStifItemParser& aItem );
+        virtual TInt _S_ConsumerIapId( CStifItemParser& aItem );
+/*-----------------------------------------------
+            Service Pattern
+-----------------------------------------------*/
+        virtual TInt _S_NewServicePattern( CStifItemParser& aItem );
+/*-----------------------------------------------
+            IdentityProvider
+-----------------------------------------------*/
+        virtual TInt _S_NewIdentityProvider( CStifItemParser& aItem );
+        virtual TInt _S_ProviderID( CStifItemParser& aItem );
+        virtual TInt _S_UserInfo( CStifItemParser& aItem );
+/*################################################
+*
+*        
+*   UTILS
+*
+*
+*################################################*/
+
+/*-----------------------------------------------
+            SoapEnvelope
+-----------------------------------------------*/
+        virtual TInt _C_Body( CStifItemParser& aItem );
+/*-----------------------------------------------
+            SoapDateUtils
+-----------------------------------------------*/
+        virtual TInt _C_FromXmlDateTime( CStifItemParser& aItem );
+        virtual TInt _C_ToXmlDateTimeUtf( CStifItemParser& aItem );
+
+
+
+/*################################################
+            MService Consumer implementation
+################################################*/
+		virtual void HandleMessageL(const TDesC8& aMessage);
+		//virtual void HandleErrorL(const TDesC8& aError);
+        virtual void HandleErrorL(const int aErrorCode, const TDesC8& aError);
+		virtual void SetStatus(const TInt aStatus);
+
+/*################################################
+            Common
+################################################*/
+        virtual TInt _X_WaitForResponse( CStifItemParser& aItem );
+        virtual TInt _X_Reference( CStifItemParser& aItem );
+        virtual TInt _X_ReferenceFragment( CStifItemParser& aItem );
+        virtual TInt _X_CheckResultFL( CStifItemParser& aItem );
+        virtual TInt _X_LogResult( CStifItemParser& aItem );
+        virtual TInt _X_Init( CStifItemParser& aItem );
+        virtual TInt _X_DeleteFile( CStifItemParser& aItem );
+		virtual TInt _X_TimeOut(CStifItemParser& aItem );
+        virtual TInt _X_Flag(CStifItemParser& aItem );
+		virtual TInt _X_NonIncludance( CStifItemParser& aItem );
+		virtual TInt _X_Includance( CStifItemParser& aItem );
+		virtual TInt _X_DeBase64( CStifItemParser& aItem );
+		virtual TInt _X_CheckDir( CStifItemParser& aItem );
+		virtual TInt _X_CheckFile( CStifItemParser& aItem );
+		virtual TInt _X_SOAPRequest( CStifItemParser& aItem );		
+		virtual TInt _X_NonExistence( CStifItemParser& aItem );
+		virtual TInt _X_Iteration( CStifItemParser& aItem );
+
+/*################################################
+            IAP Selection
+################################################*/
+
+
+		virtual TInt _X_IAPList( CStifItemParser& aItem );
+//		virtual TInt _C_SetIAP( CStifItemParser& aItem );
+		
+
+/*################################################
+            Complex
+################################################*/
+        virtual TInt _C_ParseDomFragment( CStifItemParser& aItem );
+        virtual TInt _C_ParseXMLDocument( CStifItemParser& aItem );
+        virtual TInt _C_Dump(CStifItemParser& aItem );
+   		virtual TInt _C_ParseToElement(CStifItemParser& aItem );
+
+
+		void SendBUCFTest();
+		void SendYomiTest();
+		void SendInvalidTest();
+		void SendInvalidSOAPTest();
+		void SendBUCFBodyTest();
+		void SendBUCFEnvelopeTest();
+		void SendBUCFEnvelopeTest2();
+        void SendSOAPTest();
+        void SubmitSOAPTest();
+   		void SendSOAPRequest(TInt aDelay);
+		void SubmitSOAPRequest();        
+		void CheckConnection();
+		void PerformanceSOAPSubmit();
+
+        TInt CheckResultL(TPtrC aSrcFile, TPtrC aReferenceFile);
+        TInt CheckResultFragmentL(TPtrC aSrcFile, TPtrC aReferenceFile);
+        void LogResultL(const TDesC16& aDesc16);
+        void LogResultL(const TDesC8& aDesc8);
+        TPtrC8 GetParC(CStifItemParser& aItem);
+        void PopAndDestroyArgc();
+   		CSenElement* ParseToElementL( HBufC8* pTestXml );
+
+    public:     // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+    
+    protected:  // Data
+        // ?one_line_short_description_of_data
+        //?data_declaration;
+
+    private:    // Data
+		RStringPool iStringPool;
+        //logging
+        CStifLogger* iLog;
+        //For decrypting data....
+		TImCodecB64 iBase64Codec;
+        RFs	iFsSession;
+        TInt iRunCase;
+        TInt iStarted;
+        //for implemented void methos, if f.ex. handle message is wrongwe have to signalize error
+        TInt iErrorsOccured;
+        //counter for arguments in script, arguments have to destroyed after parsing
+        TInt iArgc;
+   		//RXMLReader iXmlReader;
+        CSenXmlReader* iXmlReader;
+   		CSenElement* iElement;
+
+
+        RFile iResultFile;
+        RFileWriteStream iWriter;
+        TInt result;
+        TPtrC iResFile;
+        TInt iTestIteracion;
+
+        // simple query
+		TBuf8<255>	iSOAPRequest;
+
+		TBool iCasePassed;
+
+        
+        CSenSoapMessage* iSOAPMessage;
+//Service Connection
+        CSenServiceConnection* iSenServiceConnection;
+//Service Description
+        CSenXmlServiceDescription* iSenXmlServiceDescription;
+//Service manager
+        CSenServiceManager*     iServiceManager;
+//IdentityProvider
+        CSenIdentityProvider*   iProvider;
+//Credential
+        CSenCredential*   iSenCredential;
+
+		CSAXTester*		iSaxTester;
+		CSenBaseFragment* iFrg;
+
+    public:     // Friend classes
+        //?friend_class_declaration;
+    protected:  // Friend classes
+        //?friend_class_declaration;
+    private:    // Friend classes
+        //?friend_class_declaration;
+
+    };
+#endif      // WSTESTER_H
+            
+// End of File