photosgallery/slideshow/engine/tsrc/stubs/stub_mshweffect.h
changeset 0 4e91876724a2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/photosgallery/slideshow/engine/tsrc/stubs/stub_mshweffect.h	Thu Dec 17 08:45:44 2009 +0200
@@ -0,0 +1,160 @@
+/*
+* Copyright (c) 2007-2007 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:    Test stub for MShwEffect
+ *
+*/
+
+
+
+
+#include "shweffect.h"
+
+// -----------------------------------------------------------------------------
+// Stub for MShwEffect -->
+// -----------------------------------------------------------------------------
+class T_MShwTestEffect : public MShwEffect
+    {
+    public:
+        T_MShwTestEffect( TInt aIndex );
+        ~T_MShwTestEffect();
+
+    public: // from MShwEffect
+
+        MShwEffect* CloneLC();
+        void InitializeL( 
+            CAlfEnv* aAlfEnv, MGlxVisualList* aVisualList,
+            MGlxMediaList* aMediaList, TSize aScreenSize );
+        TSize PrepareViewL( CAlfVisual* aVisual, TSize aSize );
+        MGlxLayout* EnterViewL( CAlfVisual* aVisual, TInt aDuration, TInt aDuration2 );
+        void ExitView( CAlfVisual* aVisual );
+        MGlxLayout* EnterTransitionL( CAlfVisual* aVisual, TInt aDuration );
+        void ExitTransition( CAlfVisual* aVisual );
+        void PauseL();
+        void Resume();
+        TShwEffectInfo EffectInfo();
+
+    public:
+        TInt iIndex;
+        enum TState 
+            {
+            EConstruct, 
+            EPrepareView,
+            EEnterView,
+            EExitView,
+            EEnterTransition,
+            EExitTransition
+            } iState;	// state flag to assert prptocol
+        CAlfVisual* iVisual;	// to track the visual
+    };
+
+T_MShwTestEffect::T_MShwTestEffect( TInt aIndex )
+    : iIndex( aIndex ), iState( EConstruct ), iVisual( NULL )
+    {
+    }
+T_MShwTestEffect::~T_MShwTestEffect()
+    {
+    }
+MShwEffect* T_MShwTestEffect::CloneLC()
+    {
+    T_MShwTestEffect* effect = new( ELeave ) T_MShwTestEffect( iIndex );
+    CleanupStack::PushL( effect );
+    return effect;
+    }
+
+void T_MShwTestEffect::InitializeL( 
+    CAlfEnv* /*aAlfEnv*/, MGlxVisualList* /*aVisualList*/,
+    MGlxMediaList* /*aMediaList*/, TSize /*aScreenSize*/ )
+    {
+    }
+// this flag defines if the test expects the effects to be called completely
+// like Prepare -> Enter view -> Enter trans -> Prepare
+// if set to EFalse, then also Prepare -> Enter view -> Exit View -> Prepare
+// is allowed
+TBool gStrictEffectOrder = ETrue;
+TSize T_MShwTestEffect::PrepareViewL( CAlfVisual* aVisual, TSize aSize )
+    {
+    if( gStrictEffectOrder )
+        {
+        EUNIT_ASSERT_DESC( 
+            EConstruct == iState || EExitTransition == iState,
+            "state needs to be construct or exit transition" );
+        }
+    iState = EPrepareView;	// set state
+    EUNIT_PRINT( _L("effect %d; PrepareViewL visual=%d"), iIndex, (TInt)aVisual );
+    // remember the visual
+    iVisual = aVisual;
+    // return the given size
+    return aSize;
+    }
+
+MGlxLayout* T_MShwTestEffect::EnterViewL( 
+    CAlfVisual* aVisual, TInt /*aDuration*/, TInt /*aDuration2*/ )
+    {
+    if( gStrictEffectOrder )
+        {
+        EUNIT_ASSERT_DESC( EPrepareView == iState, "state needs to be prepareview" );
+        }
+    else
+        {
+        EUNIT_ASSERT_DESC( 
+            EPrepareView == iState ||
+            EEnterView == iState, "state needs to be prepare or enterview" );
+        }
+    iState = EEnterView;	// set state
+    EUNIT_PRINT( _L("effect %d; EnterViewL visual=%d"), iIndex, (TInt)aVisual );
+    EUNIT_ASSERT_DESC( aVisual == iVisual, "Visual should be same as for PrepareViewL" );
+    return NULL;
+    }
+
+void T_MShwTestEffect::ExitView( CAlfVisual* aVisual )
+    {
+    EUNIT_ASSERT_DESC( EEnterView == iState, "state needs to be enterview" );
+    iState = EExitView;	// set state
+    EUNIT_PRINT( _L("effect %d; ExitView visual=%d"), iIndex, (TInt)aVisual );
+    EUNIT_ASSERT_DESC( aVisual == iVisual, "Visual should be same as for PrepareViewL" );
+    }
+
+MGlxLayout* T_MShwTestEffect::EnterTransitionL( CAlfVisual* aVisual, TInt /*aDuration*/ )
+    {
+    EUNIT_ASSERT_DESC( EExitView == iState, "state needs to be exitview" );
+    iState = EEnterTransition;	// set state
+    EUNIT_PRINT( _L("effect %d; EnterTransitionL visual=%d"), iIndex, (TInt)aVisual );
+    EUNIT_ASSERT_DESC( aVisual == iVisual, "Visual should be same as for PrepareViewL" );
+    return NULL;
+    }
+
+void T_MShwTestEffect::ExitTransition( CAlfVisual* aVisual )
+    {
+    EUNIT_ASSERT_DESC( EEnterTransition == iState, "state needs to be entertransition" );
+    iState = EExitTransition;	// set state
+    EUNIT_PRINT( _L("effect %d; ExitTransition visual=%d"), iIndex, (TInt)aVisual );
+    EUNIT_ASSERT_DESC( aVisual == iVisual, "Visual should be same as for PrepareViewL" );
+    }
+
+void T_MShwTestEffect::PauseL()
+    {
+    }
+
+void T_MShwTestEffect::Resume()
+    {
+    }
+
+_LIT( KTestEffectName, "EffectName" );
+TShwEffectInfo T_MShwTestEffect::EffectInfo()
+    {
+    TShwEffectInfo info;
+    info.iName = KTestEffectName;
+    info.iId.iIndex = iIndex;
+    return info;
+    }