diff -r 000000000000 -r f5a58ecadc66 servicediscoveryandcontrol/pnp/test/upnp/unittests/tcpclient/inc/ptcpclienttests.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/servicediscoveryandcontrol/pnp/test/upnp/unittests/tcpclient/inc/ptcpclienttests.h Tue Feb 02 01:12:20 2010 +0200 @@ -0,0 +1,167 @@ +/* +* Copyright (c) 2008 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: +* +*/ + + +#if !defined(PTCPCLIENTTESTS_H) +#define PTCPCLIENTTESTS_H + +#include +#include +#include "proxyprotocol.h" +#include +#include "es_mbuf.h" +#include "testtcpserver.h" +#include +#include "mtcpclienttestcase.h" +#include +#include + +_LIT8 ( KTestCase1, "testcase1" ); +_LIT8 ( KMissingContentLength, "HTTP/1.1 200 OK\r\nST: testcase1\r\nEXT: \r\nSERVER: Apache 9.x, UPnP/1.0\r\nUSN: uuid:ae30fdec-16e3-4d75-ac72-b61c5d6d30d5::urn:schemas-upnp-org:device:BinaryLight:1\r\nCACHE-CONTROL: max-age=900\r\nLOCATION: http://10.192.196.204:54042/\r\n\r\n"); + + +NONSHARABLE_CLASS(CTcpClientTestBase) : protected CActive + { +public: + static void StartTestL(const TDesC& aTestName, CProxyProvd* aProvd); + virtual void RunL(); + +protected: + CTcpClientTestBase(CProxyProvd* aProvd); + virtual ~CTcpClientTestBase(); + + //Utilities function to be use in RunTest() + void Reschedule(); + CTestExecuteLogger iLogger; + void CompleteSelf ( TInt aError ); + void FinishTest(TVerdict result); + enum TState + { + ECreateTestServer = 0, + ECreateTestClient, + ESendRequestData, + ECleanup, + EComplete, + }; + + RMemoryAllocator iAllocator; + CChunkManager* iChunkManager; + TState iState; +private: + + + //Implemented you own of these + virtual TVerdict RunTestL() = 0; + virtual void Cleanup(); + + void DoCancel(); + void ConstructL(); + void SetLoggerL(); + CTestExecuteLogger& Logger(); + static CTcpClientTestBase* CreateTestL(const TDesC& aTestName, CProxyProvd* aProvd); + +private: + CProxyProvd* iProvd; + TBool iReschedule; //Determines whether rescheduling is required + }; + +inline CTestExecuteLogger& CTcpClientTestBase::Logger() + { + return iLogger; + } + + +class MTestServerObserver + { +public: + /** + Callback method which returns the responses. + @param aObserverInfo bundle containg the response. + */ + virtual void OnTestServerEventL ( TInt aError ) = 0; + + + virtual MTcpClientTestCase* GetTestCase ( ) = 0; + + virtual CTestExecuteLogger& GetLogger ( ) = 0; + //virtual void OnTestServerEventL ( TBool aFlag) = 0; + /** + Callback method which handles the errors of OnPnPEventL. + @param aError error code. + */ + //virtual void OnTestServerError (TInt aError) = 0; + }; + +/*class MTestClientObserver + { +public: + /** + Callback method which returns the responses. + @param aObserverInfo bundle containg the response. + * + virtual void OnTestClientEventL ( TObserverBundle& aObserverInfo) = 0; + /** + Callback method which handles the errors of OnPnPEventL. + @param aError error code. + * + virtual void OnTestClientError (TInt aError) = 0; + }; +*/ +//----------------------------------------------------------// +/////////////////// CTcpClientTestUPnP ///////////////////////// +//////Testcase: Send the test data from the test client///////// +//----------------------------------------------------------// + +NONSHARABLE_CLASS(CTcpClientTestUPnP) : public CTcpClientTestBase, + public Messages::ASimpleNodeIdBase, + public MTestServerObserver, + public MTcpClientTestCase + { +public: + static CTcpClientTestUPnP* NewL ( CProxyProvd* aProvd ); + + //MTestServerObserver + void OnTestServerEventL ( TInt aError ); + MTcpClientTestCase* GetTestCase (); + CTestExecuteLogger& GetLogger (); + //MTcpClientTestCase + const TDesC& TestCaseName () const; + TInt TotalTransactionCount () const; + TInt TransactionCount () const; + + const TDesC8& GetRawRequest ( TInt aTransIndex ); + const TDesC8& GetRawResponse ( TInt aTransIndex ); + + + ~CTcpClientTestUPnP (); + + void ReceivedL ( const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aMessage ); + +private: + + CTcpClientTestUPnP ( CProxyProvd* aProvd ); + void ConstructL (); + virtual TVerdict RunTestL (); + +private: + CTestTcpServer* iTestServer; + Messages::TNodeId iClientId; + RTimer iTimer; + //TState iState; + }; + +#endif //PTCPCLIENTTESTS_H