diff -r 000000000000 -r 4e91876724a2 photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_glxcmdhndlrfilteritems/src/t_glxcmdhandlerfilteritems.cpp --- /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 +#include +#include +#include // For Attribute constants +#include +#include +// 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(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(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(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( + 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( + 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