photosgallery/viewframework/medialists/tsrc/ut_cglxattributecontext/ut_cglxattributecontext.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 14 Apr 2010 15:57:24 +0300
branchRCL_3
changeset 22 2dac0fdba72b
parent 0 4e91876724a2
permissions -rw-r--r--
Revision: 201013 Kit: 201015

/*
* 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:    CGlxAttributeContext unit tests
*
*/




#ifndef __UT_CGLXATTRIBUTECONTEXT_H__
#define __UT_CGLXATTRIBUTECONTEXT_H__

//  EXTERNAL INCLUDES
#include <digia/eunit/ceunittestsuiteclass.h>

//  INTERNAL INCLUDES
#include "mglxmedialist.h"

//  FORWARD DECLARATIONS
class CGlxDefaultAttributeContext;

#include <e32def.h>
#ifndef NONSHARABLE_CLASS
    #define NONSHARABLE_CLASS(x) class x
#endif

//  CLASS DEFINITION
/**
 *
 * EUnitWizard generated test class. 
 *
 */
NONSHARABLE_CLASS( UT_CGlxAttributeContext )
     : public CEUnitTestSuiteClass
    {
    public:     // Constructors and destructors

        /**
         * Two phase construction
         */
        static UT_CGlxAttributeContext* NewL();
        static UT_CGlxAttributeContext* NewLC();
        /**
         * Destructor
         */
        ~UT_CGlxAttributeContext();

    private:    // Constructors and destructors

        UT_CGlxAttributeContext();
        void ConstructL();

    public:     // From observer interface


    private:    // New methods

         void SetupL();
        
         void Teardown();
        
         void UT_CGlxAttributeContext_CGlxAttributeContextL();
        
        
         void UT_CGlxAttributeContext_AddAttributeLL();
        
        
         void UT_CGlxAttributeContext_RemoveAttributeL();
        
        
         void UT_CGlxAttributeContext_AllAttributesLL();
        
        
         void UT_CGlxAttributeContext_AttributeRequestLL();
        
	void SetupAttributeRequestTestL();
	void FetchItems_NoMediaL();
	void FetchOneItem_IndexZeroL();
	void FetchOneItem_IndexOneL();
	void FetchOneItem_IndexTwoL();
	void FetchOneItem_IndexThreeL();
	void FetchOneItem_IndexFourL();
	void FetchItems_GranularityLessThanRange_IndexZeroL();
	void FetchItems_GranularityLessThanRange_IndexOneL();
	void FetchItems_GranularityLessThanRange_IndexTwoL();
	void FetchItems_GranularityLessThanRange_IndexThreeL();
	void FetchItems_GranularityLessThanRange_IndexFourL();
	void FetchItems_GranularityLessThanRange_IndexFiveL();
	void FetchItems_GranularityGreaterThanRangeL();
	TBool FindAttribute(RArray<TMPXAttribute>& aAttributes, const TMPXAttribute& aAttribute);

    private:    // Data

	CGlxDefaultAttributeContext* iAttributeContext;

        EUNIT_DECLARE_TEST_TABLE; 

    private:

	// Test media list
	class CGlxMediaListTest : public CBase, public MGlxMediaList
		{
	public:
		static CGlxMediaListTest* NewL(TUint aNumberOfMedia);

		virtual ~CGlxMediaListTest();

		// From MGlxMediaList
		virtual void Close() {};
		virtual TGlxMediaListId Id() const { return TGlxMediaListId(1); };
		virtual TInt Count(NGlxListDefs::TCountType /*aType*/) const { return iItems.Count(); };
		virtual TInt FocusIndex() const { return iFocusIndex; };
		virtual void SetFocusL(NGlxListDefs::TFocusSetType /*aType*/, TInt aValue) { iFocusIndex = aValue; };
		virtual const TGlxMedia& Item(TInt aIndex) const { return iItems[aIndex]; };
		virtual TInt Index(const TGlxIdSpaceId& /* aIdSpaceId */, const TGlxMediaId& /*aId*/) const { return 0; };
		virtual void AddMediaListObserverL(MGlxMediaListObserver* /*aObserver*/) {};
		virtual void RemoveMediaListObserver(MGlxMediaListObserver* /*aObserver*/) {};
		virtual void AddContextL(const MGlxFetchContext* /*aContext*/, TInt /*aPriority*/) {};
		virtual void RemoveContext(const MGlxFetchContext* /*aContext*/) {};
		virtual MMPXCollection& Collection() const { MMPXCollection* c = NULL; return *c; }; // Don't call
		virtual CMPXCollectionPath* PathLC(NGlxListDefs::TPathType /*aType*/) const { CMPXCollectionPath* p = NULL; return p; }; // Don't call
		virtual TBool IsSelected(TInt /*aIndex*/) const { return EFalse; };
		virtual void SetSelectedL(TInt /*aIndex*/, TBool /*aSelected*/) {};
		virtual TInt SelectionCount() const { return 0; };
		virtual TInt SelectedItemIndex(TInt /*aSelectionIndex*/) const { return KErrNotFound; };
		virtual void CommandL(CMPXCommand& /*aCommand*/) {};
		virtual void CancelCommand() {};
		virtual void SetFilterL(CMPXFilter* /*aFilter*/) {};
		virtual CMPXFilter* Filter() const { return NULL; };
		virtual TGlxIdSpaceId IdSpaceId(TInt /*aIndex*/) const { return KGlxIdNone; };
    virtual TBool IsPopulated() const { return ETrue; }; // Don't call
    virtual void AddStaticItemL( CGlxMedia* /*aStaticItem*/,
        NGlxListDefs::TInsertionPosition /*aTargetPosition*/ ) {};
    virtual void RemoveStaticItem(const TGlxMediaId& /*aItemId*/) {};
    virtual void SetStaticItemsEnabled( TBool aEnabled ) { iStaticItemsEnabled = aEnabled; };
    virtual TBool IsStaticItemsEnabled() const { return iStaticItemsEnabled; };
    
    virtual void SetFocusInitialPosition(NGlxListDefs::TFocusInitialPosition /*aFocusInitialPosition*/) { };
    virtual void ResetFocus(){ };
    virtual void SetVisibleWindowIndexL( TInt /*aIndex*/) { };
    virtual TInt VisibleWindowIndex() const { return iFocusIndex;};
    virtual void CancelPreviousRequests() {};
	private:
		CGlxMediaListTest();
		void ConstructL(TUint aNumberOfMedia);

                void CreateMediaL(TUint aMediaId);

		TInt iFocusIndex;
		RPointerArray<CGlxMedia> iMedias;
		RArray<TGlxMedia> iItems;
		RArray<TInt> iSelectedItems;
		TBool iStaticItemsEnabled;
		};
    };

#endif      //  __UT_CGLXATTRIBUTECONTEXT_H__

// End of file