testexecfw/useremul/inc/RandomTest.h
changeset 0 3e07fef1e154
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testexecfw/useremul/inc/RandomTest.h	Mon Mar 08 15:03:44 2010 +0800
@@ -0,0 +1,175 @@
+/*------------------------------------------------------------------
+ -
+ * Software Name : UserEmulator
+ * Version       : v4.2.1309
+ * 
+ * Copyright (c) 2009 France Telecom. All rights reserved.
+ * This software is distributed under the License 
+ * "Eclipse Public License - v 1.0" the text of which is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * France Telecom 
+ *
+ * Contributors:
+ *------------------------------------------------------------------
+ -
+ * File Name: RandomTest.h
+ * 
+ * Created: 13/08/2009
+ * Author(s): Marcell Kiss, Reshma Sandeep Das
+ *   
+ * Description:
+ * This class is used to perform random test on applications or
+ * on the system generally
+ *------------------------------------------------------------------
+ -
+ *
+ */
+#ifndef RANDOMTEST_H_
+#define RANDOMTEST_H_
+
+// System Includes
+#include <W32STD.H>
+#include <APGCLI.H>
+#include <E32BASE.H>
+// User Includes
+#include "Settings.h"
+#include "Logger.h"
+#include "UserEmulatorApplication.h"
+#include "Constants.h"
+#include "GlobalCapturer.h"
+ 
+// Class Declaration 
+ 
+/**
+ * Implements random test run. Active object.
+ */
+class CRandomTest: public CActive
+	{
+	public:
+	    
+	   /**
+        * Static constructor
+        * @param aObserver Key observer interface 
+        * @param aRWsSession Reference to window server session
+        * @param aSettings Reference to Setting class
+        * @param aSession Reference to session with the application architecture server.
+        * @param aLogger Reference to logger object
+        * @return CRandomTest* A pointer to the newly allocated CRandomTest class.
+        *                      NULL, if the class cannot be created
+        */
+		static CRandomTest* NewL(MKeyObserver& aObserver,RWsSession& aRWsSession,
+		                          CSettings& aSettings,RApaLsSession& aSession,CLogger& aLogger);
+	   /**
+		* Static constructor. On return the instance is left to the CleanupStack
+		* @param aObserver Key observer interface
+		* @param aRWsSession Reference to window server session
+        * @param aSettings Reference to Setting class
+        * @param aSession Reference to session with the application architecture server.
+        * @param aLogger Reference to logger object
+        * @return CRandomTest* A pointer to the newly allocated CRandomTest class.
+        *                      NULL, if the class cannot be created
+       	*/
+		static CRandomTest* NewLC(MKeyObserver& aObserver,RWsSession& aRWsSession,
+		                          CSettings& aSettings,RApaLsSession& aSession,CLogger& aLogger);
+	   /**
+        * Destructor
+        */
+		~CRandomTest();
+	public:
+	    /**
+        * Initialises and starts random test
+        */
+		void StartRandomTestL();
+		/**
+        * Stops random test
+        */
+		void StopRandomTest();
+		/**
+        * Restarts random test active object
+        */
+		void RestartRandomTest();
+		/**
+        * Cancels random test active object
+        */
+		void CancelRandomTest();
+	protected:
+	    /**
+        * RunL from CActive class
+        */
+        void RunL();
+        /**
+        * DoCancel from CActive class
+        */		
+        void DoCancel();
+	private:
+	    /**
+        * Constructor
+        * @param aObserver Key observer interface
+        * @param aRWsSession Reference to window server session
+        * @param aSettings Reference to Setting class
+        * @param aSession Reference to session with the application architecture server.
+        * @param aLogger Reference to logger object
+        */
+		CRandomTest(MKeyObserver& aObserver,RWsSession& aRWsSession,CSettings& aSettings,RApaLsSession& aSession,CLogger& aLogger);
+		/**
+        * Second phase constructor
+        */
+		void ConstructL();
+		/**
+        * Test list check
+        */
+		TBool IsUidInTestList(TUid aUid);
+	private:
+	    /**
+        * RTimer object member
+        */
+		RTimer			iTimer;
+		/**
+        * Reference to window server session
+        */
+		RWsSession* 	iRWsSession;
+		/**
+        * Reference to Settings class
+        */
+		CSettings& 		iSettings;
+		/**
+        * Reference to key observer interface
+        */
+		MKeyObserver&   iObserver;
+		/**
+        * Reference to session with the application architecture server.
+        */
+		RApaLsSession&	iSession;
+		/**
+        * Buffer. Contains last app's name on foreground (for logging)
+        */
+		TBuf<KBuffer512> iLastAppName;
+		/**
+        * Reference to Logger object
+        */
+		CLogger& 		iLogger;
+		/**
+        * Counts how many times one application runs. (If multiple test applications are running by random test)
+        */
+		TInt			iAppTestCounter;
+		/**
+        * Counts test steps and logs one app. name only if it's in foreground for a long time.
+        */
+		TInt			iAppNameLoggingCounter;
+		/**
+        * Random tester sends Ok button press event according to this counter.
+        */
+		TInt			iCounterForOkButton;
+		/**
+        * Flag. Shows if there was at least one valid app uid (True if there was one)
+        */
+		TBool			iCantStartAppToTest;
+		/**
+        * Array of random test UIDs
+        */
+		RArray<TUid>    iSlotUIDs;
+		};
+
+#endif // RANDOMTEST_H_