mmlibs/mmfw/tsrc/mmfintegrationtest/vclntavi/inc/testvideoplayer2.h
changeset 0 b8ed18f6c07b
child 4 9d4397b300d1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmlibs/mmfw/tsrc/mmfintegrationtest/vclntavi/inc/testvideoplayer2.h	Thu Oct 07 22:34:12 2010 +0100
@@ -0,0 +1,735 @@
+// Copyright (c) 2007-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:
+// Header file: Video Player 2 Tests.
+// 
+//
+
+#ifndef TESTVIDEOPLAYER2_H
+#define TESTVIDEOPLAYER2_H
+
+#include "tsi_mmf_vclntavi_stepbase.h"
+#include <surfaceeventhandler.h>
+
+/**
+ * Load and play a video file using graphics surface
+ *
+ * RTestVclnt2PlayFile
+ *
+ */
+class RTestVclnt2PlayFile : public RTestVclnt2AviPlayerStep
+    {
+public:
+    static RTestVclnt2PlayFile* NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+        
+protected:    
+    virtual TVerdict DoTestStepPreambleL();
+    virtual TVerdict DoTestStepPostambleL();
+
+    virtual void FsmL(TVclntTestPlayEvents aEventCode);
+    
+    virtual void HandleIdleL();
+    virtual void HandleOpenCompleteL();
+    virtual void HandlePrepareCompleteL();
+    virtual void HandlePlayCompleteL();
+    
+    // called by HandlePrepareCompleteL to trigger the video playback
+    virtual void StartPlayback();    
+
+    // constructor    
+    RTestVclnt2PlayFile(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+    };
+#ifdef SYMBIAN_BUILD_GCE
+/**
+ * Test CMediaClientVideoDisplay.This test makes sure that the new dll 
+ * (mediaclientvideodisplay) is loaded and used.
+ *
+ * RTestMediaClientVideoDisplay
+ *
+ */
+class RTestMediaClientVideoDisplay : public RTestVclnt2AviPlayerStep
+    {
+public:
+    static RTestMediaClientVideoDisplay* NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+        
+protected:    
+    virtual TVerdict DoTestStepPreambleL();
+    virtual TVerdict DoTestStepPostambleL();
+
+    virtual void FsmL(TVclntTestPlayEvents aEventCode);
+    
+    virtual void HandleIdleL();
+    virtual void HandleOpenCompleteL();
+    virtual void HandlePrepareCompleteL();
+    virtual void HandlePlayCompleteL();
+    
+    // called by HandlePrepareCompleteL to trigger the video playback
+    virtual void StartPlayback();    
+
+    // constructor    
+    RTestMediaClientVideoDisplay(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+    };
+    
+#endif
+
+
+/**
+ * Load and play a video file using graphics surface with default window position, video
+ * extent and clip rect, then during playback, perform some actions specified within the 
+ * implementation of the function DoThisActionDuringPlaybackL().  Before exiting 
+ * DoThisActionDuringPlaybackL, SetActionPerformed() should be called to signal that 
+ * all user action to be performed during video playback is completed.
+ *
+ * RTestVclnt2ActionDuringVideoPlayback 
+ *
+ */
+class RTestVclnt2PerformActionDuringVideoPlayback : public RTestVclnt2PlayFile
+    {
+protected:    
+    RTestVclnt2PerformActionDuringVideoPlayback(const TDesC& aTestName,
+                                                const TDesC& aSectName,
+                                                const TDesC& aKeyName, 
+                                                TInt aExpectedError);
+    
+    // overriden in this class to trigger start video playback and then proceed to
+    // perform the action detailed within DoThisActionDuringPlaybackL
+    virtual void StartPlayback();    
+    
+    virtual void HandlePlayCompleteL();    
+    virtual void DoThisActionDuringPlaybackL(CVideoPlayerUtility2& aPlayer) = 0;
+    
+private:
+    TInt iActionError;
+    };
+
+
+/**
+ * Load and play a video file using graphics surface with specific window position, video
+ * extent and clip rect
+ *
+ * RTestVclnt2AddWin
+ *
+ */
+class RTestVclnt2AddWin : public RTestVclnt2PlayFile
+    {
+public:
+    static RTestVclnt2AddWin* NewL(const TDesC& aTestName, 
+                                   const TDesC& aSectName,
+                                   const TDesC& aKeyName, 
+                                   TInt aExpectedError);
+    
+protected:    
+    // constructor
+    RTestVclnt2AddWin(const TDesC& aTestName,
+                      const TDesC& aSectName,
+                      const TDesC& aKeyName, 
+                      TInt aExpectedError);
+
+    virtual void HandlePrepareCompleteL();
+    };
+
+
+/**
+ * Load and play a video file using graphics surface, then change the display window during playback
+ *
+ * RTestVclnt2RemoveWin
+ *
+ */
+class RTestVclnt2RemoveWin : public RTestVclnt2PerformActionDuringVideoPlayback
+    {
+public:
+    static RTestVclnt2RemoveWin* NewL(const TDesC& aTestName, 
+                                      const TDesC& aSectName,
+                                      const TDesC& aKeyName, 
+                                      TInt aExpectedError,
+                                      TBool aAddBack);
+    
+protected:    
+    virtual void HandlePrepareCompleteL();
+    virtual void DoThisActionDuringPlaybackL(CVideoPlayerUtility2& aPlayer);
+    
+private:
+    // constructor
+    RTestVclnt2RemoveWin(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError, TBool aAddBack);
+    
+private:
+	/** If true, Add the display back again after removing it. */ 
+	TBool iAddBack;
+    };
+
+
+/**
+ * Load and play a video file using graphics surface, then change the window position during playback
+ *
+ * RTestVclnt2WinPos
+ *
+ */
+class RTestVclnt2WinPos : public RTestVclnt2PerformActionDuringVideoPlayback
+    {
+    public:
+        static RTestVclnt2WinPos* NewL(const TDesC& aTestName, 
+                                       const TDesC& aSectName,
+                                       const TDesC& aKeyName, 
+                                       TInt aExpectedError);
+    
+    protected:    
+        virtual void DoThisActionDuringPlaybackL(CVideoPlayerUtility2& aPlayer);
+
+    private:
+        RTestVclnt2WinPos(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+    };
+
+
+/**
+ * Load and play a video file using graphics surface, then change the video extent during playback
+ *
+ * RTestVclnt2VideoExt
+ *
+ */
+class RTestVclnt2VideoExt : public RTestVclnt2PerformActionDuringVideoPlayback
+    {
+    public:
+        static RTestVclnt2VideoExt* NewL(const TDesC& aTestName, 
+                                         const TDesC& aSectName,
+                                         const TDesC& aKeyName, 
+                                         TInt aExpectedError);
+    
+    protected:    
+        virtual void DoThisActionDuringPlaybackL(CVideoPlayerUtility2& aPlayer);
+
+    private:
+        // constructor
+        RTestVclnt2VideoExt(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+    };
+
+
+/**
+ * Load and play a video file using graphics surface, then change the clipping rect during playback
+ *
+ * RTestVclnt2ClipRect
+ *
+ */
+class RTestVclnt2ClipRect : public RTestVclnt2PerformActionDuringVideoPlayback
+    {
+    public:
+        static RTestVclnt2ClipRect* NewL(const TDesC& aTestName, 
+                                         const TDesC& aSectName,
+                                         const TDesC& aKeyName, 
+                                         TInt aExpectedError);
+    
+    protected:    
+        virtual void DoThisActionDuringPlaybackL(CVideoPlayerUtility2& aPlayer);
+
+    private:
+        RTestVclnt2ClipRect(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+    };
+
+
+/**
+ * Load and play a video file using graphics surface, then change the scale factor during playback
+ *
+ * RTestVclnt2Scale
+ *
+ */
+class RTestVclnt2Scale : public RTestVclnt2PerformActionDuringVideoPlayback
+    {
+    public:
+        static RTestVclnt2Scale* NewL(const TDesC& aTestName, 
+                                      const TDesC& aSectName,
+                                      const TDesC& aKeyName, 
+                                      TInt aExpectedError);
+    
+    protected:    
+        virtual void DoThisActionDuringPlaybackL(CVideoPlayerUtility2& aPlayer);
+        
+        virtual void HandlePrepareCompleteL();
+
+    private:
+        // constructor
+        RTestVclnt2Scale(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+    };
+    
+/**
+ * Load a video file, set the crop region and then play video using graphics surface with non-default window
+ * clipping rect or video extent
+ *
+ * RTestVclnt2Viewport
+ *
+ */    
+class RTestVclnt2Viewport : public RTestVclnt2PlayFile
+    {
+public:
+    static RTestVclnt2Viewport* NewL(const TDesC& aTestName, 
+                                     const TDesC& aSectName,
+                                     const TDesC& aKeyName, 
+                                     const TSize& aViewportSize,
+                                     TInt aExpectedError = KErrNone);
+
+protected:    
+	virtual void HandlePrepareCompleteL();
+
+private:
+    void HandlePrepareCompleteL(const TRect& aCropRegion, const TRect& aVideoExtent, const TRect& aClipRect);
+    
+    // constructor
+    RTestVclnt2Viewport(const TDesC& aTestName,
+                        const TDesC& aSectName,
+                        const TDesC& aKeyName, 
+                        const TSize& aViewportSize,
+                        TInt aExpectedError);
+
+protected:
+    TSize iViewportSize;
+    };
+    
+/**
+ * Load a video file, set an invalid crop region and then play video using graphics surface 
+ *
+ * RTestVclnt2InvalidViewport
+ *
+ */    
+class RTestVclnt2InvalidViewport : public RTestVclnt2PlayFile
+    {
+public:
+    static RTestVclnt2InvalidViewport* NewL(const TDesC& aTestName, 
+                                     const TDesC& aSectName,
+                                     const TDesC& aKeyName, 
+                                     TInt aExpectedError = KErrNone);
+    
+protected:    
+    virtual void HandlePrepareCompleteL();
+
+private:
+    // constructor
+    RTestVclnt2InvalidViewport(const TDesC& aTestName,
+                               const TDesC& aSectName,
+                               const TDesC& aKeyName, 
+                               TInt aExpectedError);    
+    };    
+
+/**
+ * Load and play a video file using graphics surface with rotation set
+ *
+ * RTestVclnt2Rotation
+ *
+ */
+class RTestVclnt2Rotation : public RTestVclnt2PlayFile
+    {
+public:
+    static RTestVclnt2Rotation* NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+    
+protected:    
+    virtual void HandlePrepareCompleteL();
+    
+private:
+    // constructor
+    RTestVclnt2Rotation(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) ;    
+    };
+    
+
+/**
+ * Load and play a video file using graphics surface with specific crop region, autoscale, 
+ * video extent and clip rect settings.
+ *
+ * RTestVclnt2Settings
+ *
+ */
+class RTestVclnt2Settings : public RTestVclnt2PlayFile
+    {
+public:
+    static RTestVclnt2Settings* NewL(const TDesC& aTestName, 
+                                     const TDesC& aSectName,
+                                     const TDesC& aKeyName, 
+                                     TInt aExpectedError = KErrNone);
+    
+protected:    
+    virtual void HandlePrepareCompleteL();
+    
+private:
+    // constructor
+    RTestVclnt2Settings(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError) ;    
+    };   
+
+/**
+ * Load and play a video file using graphics surface with specific crop region, content alignment, 
+ * scale factor, video extent and clip rect settings.  The video clip will be playbacked multiple times, 
+ * each with a different combination of the settings.
+ *
+ * RTestVclnt2SettingsAndAlignments
+ *
+ */
+class RTestVclnt2SettingsAndAlignments : public RTestVclnt2PlayFile
+    {
+public:
+    static RTestVclnt2SettingsAndAlignments* NewL(const TDesC& aTestName, 
+                                                  const TDesC& aSectName,
+                                                  const TDesC& aKeyName, 
+                                                  TInt aExpectedError = KErrNone);
+    
+protected:    
+    virtual void HandlePrepareCompleteL();
+    virtual void HandlePlayCompleteL();    
+    virtual TVerdict DoTestStepPreambleL();
+    
+private:    
+    // constructor
+    RTestVclnt2SettingsAndAlignments(const TDesC& aTestName,
+                                     const TDesC& aSectName,
+                                     const TDesC& aKeyName, 
+                                     TInt aExpectedError);   
+
+    // helpers
+    void AddDisplayWindowL(const TRect& aCropRegion);
+    void SetCropRegionL(TRect& aCropRegion);
+    void SetContentOffsetL();
+    void SetScaleFactorL();
+    void SetContentAlignmentL();
+    
+private:
+    TInt iCount;
+    };
+
+
+/**
+ * Load and play a video file using graphics surface on a second display
+ *
+ * RTestVclnt2SecDisplay
+ *
+ */
+class RTestVclnt2SecDisplay : public RTestVclnt2PlayFile
+    {
+public:
+    static RTestVclnt2SecDisplay* NewL(const TDesC& aTestName, 
+                                       const TDesC& aSectName,
+                                       const TDesC& aKeyName, 
+                                       TInt aExpectedError = KErrNone);
+    
+protected:    
+    // test framework
+    virtual TVerdict DoTestStepPreambleL();
+    virtual TVerdict DoTestStepPostambleL();
+    
+    virtual void HandlePrepareCompleteL();    
+    
+private:
+    // constructor
+    RTestVclnt2SecDisplay(const TDesC& aTestName, 
+                          const TDesC& aSectName, 
+                          const TDesC& aKeyName, 
+                          TInt aExpectedError);
+    
+private:
+    CWsScreenDevice* iSecondScreen;    
+    };
+
+
+/**
+ * Load and play a video file using graphics surface, then pause the video and attempt
+ * to change the crop region and continue to playback the video.
+ *
+ * RTestVclnt2CropRectPause
+ *
+ */
+class RTestVclnt2CropRectPause : public RTestVclnt2PerformActionDuringVideoPlayback
+    {
+    public:
+        static RTestVclnt2CropRectPause* NewL(const TDesC& aTestName, 
+                                              const TDesC& aSectName,
+                                              const TDesC& aKeyName, 
+                                              TInt aExpectedError = KErrNone);
+    
+    protected:    
+        virtual void DoThisActionDuringPlaybackL(CVideoPlayerUtility2& aPlayfser);
+
+    private:
+        RTestVclnt2CropRectPause(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError);        
+    };
+
+
+/**
+ * Load and play a video file using graphics surface with overlay graphics on top of video picture
+ *
+ * RTestVclnt2Overlay
+ *
+ */
+class RTestVclnt2Overlay : public RTestVclnt2PlayFile
+    {
+public:
+    static RTestVclnt2Overlay* NewL(const TDesC& aTestName, 
+                                    const TDesC& aSectName,
+                                    const TDesC& aKeyName, 
+                                    TInt aExpectedError);
+    
+protected:    
+    // constructor
+    RTestVclnt2Overlay(const TDesC& aTestName,
+                       const TDesC& aSectName,
+                       const TDesC& aKeyName, 
+                       TInt aExpectedError);
+
+    virtual TVerdict DoTestStepPreambleL();
+    virtual TVerdict DoTestStepPostambleL();
+
+    virtual void HandlePrepareCompleteL();
+    
+private:
+    CFont*      iFont;    
+    };
+
+/**
+ * Load and play a video file using graphics surface and attempting to add the same display window twice
+ * using default values
+ *
+ * RTestVclnt2AddWin2
+ *
+ */
+class RTestVclnt2AddWin2 : public RTestVclnt2PlayFile
+    {
+public:
+    static RTestVclnt2AddWin2* NewL(const TDesC& aTestName, 
+                                    const TDesC& aSectName,
+                                    const TDesC& aKeyName, 
+                                    TInt aExpectedError);
+    
+protected:    
+    // constructor
+    RTestVclnt2AddWin2(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError);
+
+    virtual void HandlePrepareCompleteL();
+    };
+
+/**
+ * Load and play a video file using graphics surface and attempting to add the display window with specific
+ * settings then add the same display window using default values again 
+ *
+ * RTestVclnt2AddWin2WithSettings
+ *
+ */
+class RTestVclnt2AddWin2WithSettings : public RTestVclnt2PlayFile
+    {
+    public:
+        static RTestVclnt2AddWin2WithSettings* NewL(const TDesC& aTestName, 
+                                                    const TDesC& aSectName,
+                                                    const TDesC& aKeyName, 
+                                                    TInt aExpectedError);
+        
+    protected:    
+        // constructor
+        RTestVclnt2AddWin2WithSettings(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError);
+
+        // state machine
+        virtual void HandlePrepareCompleteL();
+    };
+
+/**
+ * Load and play a video file using graphics surface and set content offset and/or content alignment
+ *
+ * RTestVclnt2ContOffset
+ *
+ */
+class RTestVclnt2ContOffset : public RTestVclnt2PlayFile
+	{
+    public:
+    	static RTestVclnt2ContOffset* NewL(const TDesC& aTestName, 
+    	                                   const TDesC& aSectName, 
+    	                                   const TDesC& aKeyName, 
+    	                                   TInt aExpectedError);
+    	
+    protected:
+        // state machine
+        virtual void HandlePrepareCompleteL();
+    	
+    private:
+        // constructor
+    	RTestVclnt2ContOffset(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError);
+	};
+	
+/**
+ * Load and play a video file using graphics surface and set content offset during playback
+ *
+ * RTestVclnt2ContOffsetAtPlay
+ *
+ */	
+class RTestVclnt2ContOffsetAtPlay : public RTestVclnt2PerformActionDuringVideoPlayback
+	{
+    public:
+    	static RTestVclnt2ContOffsetAtPlay* NewL(const TDesC& aTestName, 
+    	                                         const TDesC& aSectName, 
+    	                                         const TDesC& aKeyName, 
+    	                                         TInt aExpectedError);
+    	
+    protected:    
+        virtual void DoThisActionDuringPlaybackL(CVideoPlayerUtility2& aPlayer);
+
+    private:
+        // constructor
+    	RTestVclnt2ContOffsetAtPlay(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError);
+	};
+
+/**
+ * Load and play a video file using graphics surface and set content aligment during playback
+ *
+ * RTestVclnt2Align
+ *
+ */	
+class RTestVclnt2Align : public RTestVclnt2PerformActionDuringVideoPlayback
+	{
+    public:
+    	static RTestVclnt2Align* NewL(const TDesC& aTestName, 
+    	                              const TDesC& aSectName, 
+    	                              const TDesC& aKeyName, 
+    	                              TInt aExpectedError);
+    	
+    protected:
+        virtual void HandlePrepareCompleteL();
+        virtual void DoThisActionDuringPlaybackL(CVideoPlayerUtility2& aPlayer);	
+    	
+    private:
+        // constructor
+    	RTestVclnt2Align(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError);
+	};
+	
+/**
+ * Load and play a video file using graphics surface and set auto scale
+ *
+ * RTestVclnt2AutoScale
+ *
+ */	
+class RTestVclnt2AutoScale : public RTestVclnt2PerformActionDuringVideoPlayback
+	{
+    public:
+    	static RTestVclnt2AutoScale* NewL(const TDesC& aTestName, 
+    	                                  const TDesC& aSectName, 
+    	                                  const TDesC& aKeyName, 
+    	                                  TInt aExpectedError);
+	
+    protected:
+        virtual void HandlePrepareCompleteL();
+        virtual void DoThisActionDuringPlaybackL(CVideoPlayerUtility2& aPlayer);	
+	
+    private:
+    	RTestVclnt2AutoScale(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName, TInt aExpectedError);
+	};
+
+/**
+ * Load and play a video file using graphics surface
+ *
+ * RTestVclnt2PlayFile
+ *
+ */
+class RTestVclnt2OldController : public RTestVclnt2PlayFile
+    {
+public:
+    static RTestVclnt2OldController* NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+        
+protected:
+    virtual void HandleIdleL();
+    virtual void HandlePrepareCompleteL();
+    
+private:
+	RTestVclnt2OldController(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+    };
+
+/**
+ * Without opening a file, try doing surface related functions
+ *
+ * RTestVclnt2NoFile
+ *
+ */
+class RTestVclnt2NoFile : public RTestVclnt2PlayFile
+	{
+public:
+	static RTestVclnt2NoFile* NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+
+protected:
+	virtual void HandleIdleL();
+
+private:
+	RTestVclnt2NoFile(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+	};
+
+/**
+ * Attempt to play video without display
+ *
+ * RTestVclnt2PlayAfterRemoveWin
+ *
+ */
+class RTestVclnt2PlayAfterRemoveWin : public RTestVclnt2PlayFile
+	{
+public:
+	static RTestVclnt2PlayAfterRemoveWin* NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+
+protected:
+	virtual void HandlePrepareCompleteL();
+	virtual void HandlePlayCompleteL();
+
+private:
+	RTestVclnt2PlayAfterRemoveWin(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+
+private:
+	TInt iPlayAttempt;
+	};
+	
+/**
+ * Use surface utility API without GCE support
+ *
+ * RTestVclnt2NoGce
+ *
+ */
+class RTestVclnt2NoGce : public RTestVclnt2PlayFile
+	{
+public:
+    static RTestVclnt2NoGce* NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+        
+protected:
+    virtual void HandleIdleL();
+    virtual void HandleOpenCompleteL();
+    
+private:
+	RTestVclnt2NoGce(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+    };
+
+/**
+ * Alloc tests (using Client heap) for Video Player utility 2.
+ *
+ * RTestVclnt2Alloc
+ *
+ */
+class RTestVclnt2Alloc : public RTestVclnt2PlayFile
+	{
+public:
+    static RTestVclnt2Alloc* NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+    virtual TVerdict DoTestStepL();
+   
+protected:
+	virtual TVerdict DoTestStepPreambleL();
+    virtual TVerdict PerformTestL();
+    
+private:
+	RTestVclnt2Alloc(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+    };
+
+class RTestVclnt2InvalidScaleFactor : public RTestVclnt2PlayFile
+	{
+public:
+	static RTestVclnt2InvalidScaleFactor* NewL(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+	
+protected:
+	// From RTestVclnt2PlayFile
+	void HandlePrepareCompleteL();
+	
+private:
+	RTestVclnt2InvalidScaleFactor(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, TInt aExpectedError);
+	};
+
+#endif // TESTVIDEOPLAYER2_H