photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_glxcmdhndlrfilteritems/src/t_glxcmdhandlerfilteritems.cpp
changeset 0 4e91876724a2
child 18 bcb43dc84c44
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_glxcmdhndlrfilteritems/src/t_glxcmdhandlerfilteritems.cpp	Thu Dec 17 08:45:44 2009 +0200
@@ -0,0 +1,364 @@
+/*
+* Copyright (c) 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:    Show commmand handler unit test
+*
+*/
+
+
+
+
+/**
+ * @internal reviewed 08/02/2008 by Rhodri Byles
+ */
+ 
+//  CLASS HEADER
+#include "t_glxcmdhandlerfilteritems.h"
+
+//  EXTERNAL INCLUDES
+#include <avkon.hrh>
+#include <EUnitMacros.h>
+#include <EUnitDecorators.h>
+#include <mpxmediageneraldefs.h>	// For Attribute constants
+#include <glxcommandhandlers.hrh>
+#include <mglxmedialist.h>
+//  INTERNAL INCLUDES
+#include "glxcommandhandlerfilterimagesorvideos.h"
+#include "glxhuiutility_stub.h"
+
+// CONSTRUCTION
+T_CGlxCommandHandlerFilterImagesOrVideos* T_CGlxCommandHandlerFilterImagesOrVideos::NewL()
+    {
+    T_CGlxCommandHandlerFilterImagesOrVideos* self = T_CGlxCommandHandlerFilterImagesOrVideos::NewLC();
+    CleanupStack::Pop();
+
+    return self;
+    }
+
+T_CGlxCommandHandlerFilterImagesOrVideos* T_CGlxCommandHandlerFilterImagesOrVideos::NewLC()
+    {
+    T_CGlxCommandHandlerFilterImagesOrVideos* self = new( ELeave ) T_CGlxCommandHandlerFilterImagesOrVideos();
+    CleanupStack::PushL( self );
+
+    self->ConstructL();
+
+    return self;
+    }
+
+// Destructor (virtual by CBase)
+T_CGlxCommandHandlerFilterImagesOrVideos::~T_CGlxCommandHandlerFilterImagesOrVideos()
+    {
+    }
+
+// Default constructor
+T_CGlxCommandHandlerFilterImagesOrVideos::T_CGlxCommandHandlerFilterImagesOrVideos()
+    {
+    }
+
+// Second phase construct
+void T_CGlxCommandHandlerFilterImagesOrVideos::ConstructL()
+    {
+    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
+    // It generates the test case table.
+    CEUnitTestSuiteClass::ConstructL();
+    }
+    
+void T_CGlxCommandHandlerFilterImagesOrVideos::MGlxMediaList_MethodCalled(TMGlxMediaListMethodId aMethodId)
+    {
+    iMethodId = aMethodId;
+    }
+
+MGlxMediaList& T_CGlxCommandHandlerFilterImagesOrVideos::MediaList()
+    {
+    return *iStubMediaList;
+    }
+
+   
+//  METHODS
+void T_CGlxCommandHandlerFilterImagesOrVideos::SetupL(  )
+    {
+    iStubMediaList = new (ELeave)TMGlxMediaList_Stub(this);
+    iCommandHandlerShowItems = CGlxCommandHandlerFilterImagesOrVideos::NewL( this );
+    }
+
+
+void T_CGlxCommandHandlerFilterImagesOrVideos::Teardown(  )
+    {
+    delete iCommandHandlerShowItems;
+	iCommandHandlerShowItems = NULL:
+    delete iStubMediaList;
+	iStubMediaList = NULL;
+    }
+
+ // From MEikMenuObserver
+void T_CGlxCommandHandlerFilterImagesOrVideos::SetEmphasis(
+    CCoeControl* /* aMenuControl */,TBool /* aEmphasis */)
+    {
+    
+    }
+ // From MEikMenuObserver
+void T_CGlxCommandHandlerFilterImagesOrVideos::ProcessCommandL(
+    TInt /* aCommandId */)
+    {
+    }
+
+void T_CGlxCommandHandlerFilterImagesOrVideos::TestConstructionL(  )
+    {
+    // Only testing for leaks during setup/teardown here
+    EUNIT_ASSERT(ETrue);
+    }
+    
+// 
+void T_CGlxCommandHandlerFilterImagesOrVideos::TestForImages()
+    {
+    // Test for images
+    CMPXFilter* filter = iStubMediaList->Filter();
+    EUNIT_ASSERT_DESC( filter, "Filter is added to the medialist" );
+    EUNIT_ASSERT_DESC( filter->IsSupported( KGlxFilterGeneralItemType ), "filter is KGlxFilterGeneralItemType" );
+    TGlxFilterItemType itemType = *(filter->Value<TGlxFilterItemType>(KGlxFilterGeneralItemType));
+    EUNIT_ASSERT_DESC( itemType == EGlxFilterImage, "Filter is EGlxFilterImage" );
+    }
+
+void T_CGlxCommandHandlerFilterImagesOrVideos::TestForVideos()
+    {
+    // Test for videos
+    CMPXFilter* filter = iStubMediaList->Filter();
+    EUNIT_ASSERT(filter);
+    EUNIT_ASSERT(filter->IsSupported(KGlxFilterGeneralItemType));
+    TGlxFilterItemType itemType = *(filter->Value<TGlxFilterItemType>(KGlxFilterGeneralItemType));
+    EUNIT_ASSERT(itemType == EGlxFilterVideo);
+    }
+
+void T_CGlxCommandHandlerFilterImagesOrVideos::TestForAll()
+    {
+    // Test for videos
+    CMPXFilter* filter = iStubMediaList->Filter();
+    EUNIT_ASSERT(filter);
+    EUNIT_ASSERT(filter->IsSupported(KGlxFilterGeneralItemType));
+    TGlxFilterItemType itemType = *(filter->Value<TGlxFilterItemType>(KGlxFilterGeneralItemType));
+    EUNIT_ASSERT(itemType == EGlxFilterVideoAndImages);
+    }
+    
+void T_CGlxCommandHandlerFilterImagesOrVideos::TestSetAllFromNoneL(  )
+    {
+    CMPXFilter* filter = NULL;
+    iStubMediaList->RemoveFilter();
+
+    // Test for All when no filter is currently set
+    iCommandHandlerShowItems->ExecuteL(EGlxCmdShowAll);
+    filter = iStubMediaList->Filter();
+    // As no filter was set previously and EGlxCmdShowAll was requested no filter should be set now.
+    EUNIT_ASSERT( !filter );
+    }
+    
+void T_CGlxCommandHandlerFilterImagesOrVideos::TestSetImagesFromNoneL(  )
+    {
+    iStubMediaList->RemoveFilter();
+
+    // Test for All when no filter is currently set
+    iCommandHandlerShowItems->ExecuteL(EGlxCmdShowImages);
+    TestForImages();
+    }
+    
+void T_CGlxCommandHandlerFilterImagesOrVideos::TestSetVideosFromNoneL(  )
+    {
+    iStubMediaList->RemoveFilter();
+
+    // Test for Videos when no filter is currently set
+    iCommandHandlerShowItems->ExecuteL(EGlxCmdShowVideos);
+    TestForVideos();
+    }
+
+void T_CGlxCommandHandlerFilterImagesOrVideos::TestSetAllFromImagesL(  )
+    {
+    iStubMediaList->RemoveFilter();
+    iCommandHandlerShowItems->ExecuteL(EGlxCmdShowImages);
+    iCommandHandlerShowItems->ExecuteL(EGlxCmdShowAll);
+    TestForAll();
+    }
+    
+void T_CGlxCommandHandlerFilterImagesOrVideos::TestSetVideosFromImagesL(  )
+    {
+    iStubMediaList->RemoveFilter();
+    iCommandHandlerShowItems->ExecuteL(EGlxCmdShowImages);
+    iCommandHandlerShowItems->ExecuteL(EGlxCmdShowVideos);
+    TestForVideos();
+    }
+    
+void T_CGlxCommandHandlerFilterImagesOrVideos::TestSetAllFromVideosL(  )
+    {
+    iStubMediaList->RemoveFilter();
+    iCommandHandlerShowItems->ExecuteL(EGlxCmdShowVideos);
+    iCommandHandlerShowItems->ExecuteL(EGlxCmdShowAll);
+    TestForAll();
+    }
+    
+void T_CGlxCommandHandlerFilterImagesOrVideos::TestSetImagesFromVideosL(  )
+    {
+    iStubMediaList->RemoveFilter();
+    iCommandHandlerShowItems->ExecuteL(EGlxCmdShowVideos);
+    iCommandHandlerShowItems->ExecuteL(EGlxCmdShowImages);
+    TestForImages();
+    }
+    
+void T_CGlxCommandHandlerFilterImagesOrVideos::TestSetVideosFromAllL(  )
+    {
+    // The only way to have an All Filter set is to set ALL with
+    // either an Images or Videos filter set.
+    // Set one create an Image filter
+    // Then set the All Filter
+    // Then set the Videos filter
+    
+    iStubMediaList->RemoveFilter();
+    iCommandHandlerShowItems->ExecuteL(EGlxCmdShowImages);
+    iCommandHandlerShowItems->ExecuteL(EGlxCmdShowAll);
+    iCommandHandlerShowItems->ExecuteL(EGlxCmdShowVideos);
+    TestForVideos();
+    }
+    
+void T_CGlxCommandHandlerFilterImagesOrVideos::TestSetImagesFromAllL(  )
+    {
+    // The only way to have an All Filter set is to set ALL with
+    // either an Images or Videos filter set.
+    // Set one create an Video filter
+    // Then set the All Filter
+    // Then set the images filter
+    
+    CMPXFilter* filter = NULL;
+    iStubMediaList->RemoveFilter();
+    iCommandHandlerShowItems->ExecuteL(EGlxCmdShowVideos);
+    iCommandHandlerShowItems->ExecuteL(EGlxCmdShowAll);
+    iCommandHandlerShowItems->ExecuteL(EGlxCmdShowImages);
+    TestForImages();
+    }
+
+ void T_CGlxCommandHandlerFilterImagesOrVideos::TestNavigateForwards( )
+    {
+    iStubMediaList->RemoveFilter();
+    iCommandHandlerShowItems->ExecuteL(EGlxCmdShowImages);
+    TestForImages();
+    // Navigating forwards should reset filter to All
+    g_NavigationDirection = EGlxNavigationForwards;
+    // upcast to get the public ActivateL
+    static_cast<CGlxMediaListCommandHandler*>( 
+        iCommandHandlerShowItems )->DoActivateL( 1 ); // Dummy view id
+    TestForAll();
+    }
+
+ void T_CGlxCommandHandlerFilterImagesOrVideos::TestNavigateBackwards()
+    {
+    iStubMediaList->RemoveFilter();
+    iCommandHandlerShowItems->ExecuteL(EGlxCmdShowImages);
+    TestForImages();
+    // Navigating backwards should not change the filter
+    g_NavigationDirection = EGlxNavigationBackwards;
+    // upcast to get the public ActivateL
+    static_cast<CGlxMediaListCommandHandler*>( 
+        iCommandHandlerShowItems )->DoActivateL( 1 ); // Dummy view id
+    TestForImages();
+    }
+
+//  TEST TABLE
+EUNIT_BEGIN_TEST_TABLE(
+    T_CGlxCommandHandlerFilterImagesOrVideos,
+    "Unit test suite for CGlxCommandHandlerFilterImagesOrVideos",
+    "UNIT" )
+
+EUNIT_TEST(
+    "Test Construction",
+    "CGlxCommandHandlerFilterImagesOrVideos",
+    "InstanceL",
+    "FUNCTIONALITY",
+    SetupL, TestConstructionL, Teardown)
+
+EUNIT_TEST(
+    "Set All from none",
+    "CGlxCommandHandlerFilterImagesOrVideos",
+    "InstanceL",
+    "FUNCTIONALITY",
+    SetupL, TestSetAllFromNoneL, Teardown)
+
+EUNIT_TEST(
+    "Set Images from none",
+    "CGlxCommandHandlerFilterImagesOrVideos",
+    "InstanceL",
+    "FUNCTIONALITY",
+    SetupL, TestSetImagesFromNoneL, Teardown)
+
+EUNIT_TEST(
+    "Set Videos from none",
+    "CGlxCommandHandlerFilterImagesOrVideos",
+    "InstanceL",
+    "FUNCTIONALITY",
+    SetupL, TestSetVideosFromNoneL, Teardown)
+
+EUNIT_TEST(
+    "Set All from Images",
+    "CGlxCommandHandlerFilterImagesOrVideos",
+    "InstanceL",
+    "FUNCTIONALITY",
+    SetupL, TestSetAllFromImagesL, Teardown)
+
+EUNIT_TEST(
+    "Set Video from Images",
+    "CGlxCommandHandlerFilterImagesOrVideos",
+    "InstanceL",
+    "FUNCTIONALITY",
+    SetupL, TestSetVideosFromImagesL, Teardown)
+    
+EUNIT_TEST(
+    "Set All from Videos",
+    "CGlxCommandHandlerFilterImagesOrVideos",
+    "InstanceL",
+    "FUNCTIONALITY",
+    SetupL, TestSetAllFromVideosL, Teardown)
+    
+EUNIT_TEST(
+    "Set Images from Videos",
+    "CGlxCommandHandlerFilterImagesOrVideos",
+    "InstanceL",
+    "FUNCTIONALITY",
+    SetupL, TestSetImagesFromVideosL, Teardown)
+    
+EUNIT_TEST(
+    "Set Videos from All",
+    "CGlxCommandHandlerFilterImagesOrVideos",
+    "InstanceL",
+    "FUNCTIONALITY",
+    SetupL, TestSetVideosFromAllL, Teardown)
+    
+EUNIT_TEST(
+    "Set Images from All",
+    "CGlxCommandHandlerFilterImagesOrVideos",
+    "InstanceL",
+    "FUNCTIONALITY",
+    SetupL, TestSetImagesFromAllL, Teardown)
+    
+EUNIT_TEST(
+    "Navigate Forwards",
+    "CGlxCommandHandlerFilterImagesOrVideos",
+    "InstanceL",
+    "FUNCTIONALITY",
+    SetupL, TestNavigateForwards, Teardown)
+    
+EUNIT_TEST(
+    "Navigate Backwards",
+    "CGlxCommandHandlerFilterImagesOrVideos",
+    "InstanceL",
+    "FUNCTIONALITY",
+    SetupL, TestNavigateBackwards, Teardown)
+    
+    
+EUNIT_END_TEST_TABLE
+
+//  END OF FILE