videoutils_plat/videoconnutility_api/tsrc/inc/VCXConnUtilTest.h
branchRCL_3
changeset 23 13a33d82ad98
parent 0 822a42b6c3f1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoutils_plat/videoconnutility_api/tsrc/inc/VCXConnUtilTest.h	Wed Sep 01 12:20:37 2010 +0100
@@ -0,0 +1,341 @@
+/*
+* 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 the License "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 VCXCONNUTILTEST_H
+#define VCXCONNUTILTEST_H
+
+//  INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+
+#include "MIptvTestTimerObserver.h"
+
+#include "vcxconnutilengineobserver.h"
+#include "VCXConnUtilTestPSObserver.h"
+#include "../../../../videoconnutility/inc/vcxconnectionutility.hrh"
+#include "../../../../videoconnutility/inc/vcxconnutilcommon.h"
+
+// CONSTANTS
+const TInt KVcxConnUtilTestModeSubscriber   = 0;
+const TInt KVcxConnUtilTestModeConnectivity = 1;
+const TInt KVcxConnUtilTestModeBoth         = 2; // Default mode, P&S is subscribed and connection creation is allowed
+
+const TInt KTimeoutTimerId = 0;
+
+// MACROS
+
+// Logging path
+_LIT( KVCXConnUtilTestLogPath, "\\logs\\testframework\\VCXConnUtilTest\\" );
+// Log file
+_LIT( KVCXConnUtilTestLogFile, "VCXConnUtilTest.txt" );
+_LIT( KVCXConnUtilTestLogFileWithTitle, "VCXConnUtilTest_[%S].txt" );
+
+// FUNCTION PROTOTYPES
+//?type ?function_name(?arg_list);
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+class CVCXConnUtilTest;
+class CVCXTestCommon;
+class CVCXConnUtilTestSubscriber;
+class CIptvTestTimer;
+class CIptvTestActiveWait;
+
+// DATA TYPES
+//enum ?declaration
+//typedef ?declaration
+//extern ?data_type;
+
+// CLASS DECLARATION
+
+class TVcxConnTestPSProperty
+    {
+    public:
+        TVcxConnTestPSProperty( )
+            {
+            iIsInteger = EFalse;
+            }
+        TVcxConnTestPSProperty( TInt aProperty, TInt aValue )
+            {
+            iProperty = aProperty;
+            iIntegerValue = aValue;
+            iIsInteger = ETrue;
+            }
+        TVcxConnTestPSProperty( TInt aProperty, TDesC& aValue )
+            {
+            iProperty = aProperty;
+            iStringValue = aValue;
+            iIsInteger = EFalse;
+            }
+        ~TVcxConnTestPSProperty( )
+            {
+
+            }
+    public:
+        TBool iIsInteger;
+        TInt iProperty;
+        TInt iIntegerValue;
+        TBufC<256> iStringValue;
+    };
+
+/**
+*  CVCXConnUtilTest test class for STIF Test Framework TestScripter.
+*/
+NONSHARABLE_CLASS(CVCXConnUtilTest) : public CScriptBase,
+                                      public MVCXConnUtilTestPSObserver,
+                                      public MIptvTestTimerObserver
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        */
+        static CVCXConnUtilTest* NewL( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * Destructor.
+        */
+        virtual ~CVCXConnUtilTest();
+
+    public: // New functions
+
+    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 );
+
+        /**
+         * From MVCXConnUtilTestPSObserver, called when P&S key changes.
+         */
+        void ValueChangedL( const TUid& aUid, const TUint32& aKey, const TInt&  aValue );
+
+        /**
+         * From MVCXConnUtilTestPSObserver, called when P&S key changes.
+         */
+        void ValueChangedL( const TUid& aUid, const TUint32& aKey, const TDesC& aValue );
+
+        /**
+        * From MIptvTestTimerObserver Handles timer completion
+        * @since
+        * @param aTimerId
+        * @param aError
+        */
+        void TimerComplete(TInt aTimerId, TInt aError);
+
+    private: // New functions
+
+        /**
+         * Gets name string for property.
+         */
+        void GetPropertyNameL( TInt aProperty, TDes& aPropertyName );
+
+        /**
+         * Gets connection name into a string.
+         */
+        void GetConnectionStatusL( TInt aConnectionStatus, TDes& aStatusString );
+
+        /**
+         * Checks that the tester process is still alive. Leaves if it's dead. 
+         */
+        void TesterExeAliveL();
+        
+        void CreateTesterProcessL();
+
+    protected:  // New functions
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CVCXConnUtilTest( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        /**
+        * Frees all resources allocated from test methods.
+        * @since ?Series60_version
+        */
+        void Delete();
+
+        /**
+        * Test methods are listed below.
+        */
+
+        /**
+         * Tries to close all tester exe's, should be called in start of each case before call 
+         * to any CreateL.
+         */
+        virtual TInt PrepareCaseL( CStifItemParser& aItem );
+
+        /**
+         * Commands the tester exe to shutdown checks for any error codes for the process exit.
+         * Should be called in end of each test case before deleting test module. 
+         */
+        virtual TInt ShutdownTesterL( CStifItemParser& aItem );
+        
+        /**
+        * Initializes the test module.
+        * @param mode, If KVcxConnUtilTestModeNormal
+        *                 - Doesn't subscribe ConnUtil P&S keys.
+        *                 - Main use connectivity.
+        *
+        *              If KVcxConnUtilTestModeSubscribe
+        *                 - Subscribes ConnUtil P&S keys and keeps track of the changes.
+        *                 - Doesn't create instance of ConnUtil, can't be used for connectivity.
+        * @param caseId.
+        */
+        virtual TInt CreateL( CStifItemParser& aItem );
+
+        /**
+         * Calls CVcxConnectionUtility::GetIap which creates connection.
+         * Can only be used when test module is created in KVcxConnUtilTestModeNormal mode.
+         */
+        virtual TInt GetIapL( CStifItemParser& aItem );
+        
+        /**
+         * Calls CVcxConnectionUtility::WapIdFromIapIdL for the defined IAP.
+         * @param iapName, if IAP is not found then invalid IAP ID is used.
+         */
+        virtual TInt WapIdFromIapIdL( CStifItemParser& aItem );
+
+        /**
+         * Calls CVcxConnectionUtility::Disconnect which disconnects active connection.
+         * Can only be used when test module is created in KVcxConnUtilTestModeNormal mode.
+         */
+        virtual TInt DisconnectL( CStifItemParser& aItem );
+
+        /**
+         * Calls CVcxConnectionUtility::Disconnect which disconnects active connection.
+         * Can be used always.
+         */
+        virtual TInt CheckPropertyL( CStifItemParser& aItem );
+
+        /**
+         * Sets roaming flag which is returned to ConnUtil upon request.
+         * Can only be used when test module is created in KVcxConnUtilTestModeNormal mode.
+         */
+        virtual TInt SetRoamingAllowedL( CStifItemParser& aItem );
+
+        /**
+         * Sets flag for test module to cause User::Leave when it gets roaming request.
+         * Can only be used when test module is created in KVcxConnUtilTestModeNormal mode.
+         */
+        virtual TInt SetLeaveAtRoamingRequestL( CStifItemParser& aItem );
+
+        /**
+         * Sets delay before roaming request is answered.
+         * Can only be used when test module is created in KVcxConnUtilTestModeNormal mode.
+         */
+        virtual TInt SetDelayBeforeRoamingRequestL( CStifItemParser& aItem );
+
+        /**
+         * Gets the values for ConnUtil P&S properties and prints 'em to debug ouput.
+         * Can be used always.
+         */
+        virtual TInt PrintConnUtilDetails( CStifItemParser& aItem );
+
+        /**
+         * Adds property and value to queue of waited P&S changes.
+         * @param property
+         * @param value
+         * Can only be used when test module is created in KVcxConnUtilTestModeSubscriber mode.
+         */
+        virtual TInt AddWaitedPropertyL( CStifItemParser& aItem );
+
+        /**
+         * Adds property that is causes error signal while there's properties in queue
+         * added with AddWaitedProperty.
+         * @param property
+         * @param value
+         * Can only be used when test module is created in KVcxConnUtilTestModeSubscriber mode.
+         */
+        virtual TInt AddNotAllowedPropertyL( CStifItemParser& aItem );
+
+        /**
+         * Resets the queue of expected property changes.
+         * Can only be used when test module is created in KVcxConnUtilTestModeSubscriber mode.
+         */
+        virtual TInt ResetWaitedPropertiesL( CStifItemParser& aItem );
+
+        /**
+         * After call to this when queue for waited properties is empty the test script will be signaled.
+         * Can only be used when test module is created in KVcxConnUtilTestModeSubscriber mode.
+         */
+        virtual TInt WaitForPropertyQueueL( CStifItemParser& aItem );
+
+    private:    // Data
+
+        CVCXTestCommon* iTestCommon;
+
+        // KVcxConnUtilTestModeSubscriber or KVcxConnUtilTestModeNormal
+        TInt iMode;
+
+        CVCXConnUtilTestSubscriber* iConnectionStatusSubscriber;
+        CVCXConnUtilTestSubscriber* iIapIdSubscriber;
+        CVCXConnUtilTestSubscriber* iSnapIdSubscriber;
+        CVCXConnUtilTestSubscriber* iMasterExistsSubscriber;
+        CVCXConnUtilTestSubscriber* iNbrConnInstancesSubscriber;
+        CVCXConnUtilTestSubscriber* iRoamingRequestStatusSubscriber;
+        CVCXConnUtilTestSubscriber* iNbrRoamRespSubscriber;
+        CVCXConnUtilTestSubscriber* iNbRoamAcceptedSubscriber;
+
+        // Array of P&S changes to properties of VcxConnUtil
+        RArray<TVcxConnTestPSProperty> iWaitedPSChanges;
+
+        RArray<TVcxConnTestPSProperty> iNotAllowedPSChanges;
+
+        TBool iWaitingForEmptyPropertyQueue;
+
+        // Timeout timer
+        CIptvTestTimer* iTimeoutTimer;
+
+        CIptvTestActiveWait* iWait;
+
+        // Is wait for connection request enabled.
+        TInt iWaitTimedRequest;
+
+        // This will show in function traces.
+        TBuf<256> iName;
+        
+        // Testexe
+        RProcess iProcess;
+        
+        TInt iPSKeyBase;
+        
+        CVCXConnUtilTestSubscriber* iTesterGetAckResponseSubscriber;        
+        CVCXConnUtilTestSubscriber* iTesterResponseSubscriber;        
+        
+        CVCXConnUtilTestSubscriber* iTesterCountSubscriber;
+        
+        TBool iShutdownCalled;
+        
+        TBool iTesterCountChangedAlready;
+    };
+
+#endif      // VCXCONNUTILTEST_H
+
+// End of File