gssettingsuis/Gs/tsrc/public/basic/GSFramework/MT_GSFramework.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:20:44 +0100
branchRCL_3
changeset 54 7e0eff37aedb
parent 0 8c5d936e5675
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* Copyright (c) 2002 - 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:
*
*/


#ifndef __MT_GSFRAMEWORK_H__
#define __MT_GSFRAMEWORK_H__

//  EXTERNAL INCLUDES
#include <CEUnitTestSuiteClass.h>
#include <EUnitDecorators.h>
#include <GSTabHelper.h>
#include <GSPluginLoader.h>
#include <GSPubSubsListener.h>
#include <MGSSettingPSObserver.h>
#include <GSParentPlugin.h>

//  INTERNAL INCLUDES
#include "TestGSBaseView.h"

//  FORWARD DECLARATIONS


//  CLASS DEFINITION
NONSHARABLE_CLASS( MT_GSFramework )
  : public CEUnitTestSuiteClass, MGSTabbedViewOwner, MGSPluginLoadObserver, MGSSettingPSObserver
    {
    public:     // Constructors and destructors

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

    public:
        // From MGSTabbedViewOwner
      CArrayPtrFlat<CGSPluginInterface>* TabbedViews();
      void TabChangedL( TUid selectedTabUid );

      // From MGSPluginLoadObserver
        void HandlePluginLoaded( KGSPluginLoaderStatus aStatus );

        // From MGSSettingPSObserver
        void HandleNotifyPSL( const TUid aUid,
                              const TInt& aKey,
                              const TRequestStatus& aStatus );


    private:    // Constructors and destructors

        MT_GSFramework();
        void ConstructL();

    private:
    // Test setup and teardown functions

    // CGSTabHelper
         void SetupTabHelperL();
         void TeardownTabHelper();

    // CGSTabHelper test cases
         void T_CGSTabHelper_NewLL();
         void T_CGSTabHelper_NewLCL();
         //~Destructor
         void T_CGSTabHelper__CGSTabHelperL();
         void T_CGSTabHelper_CreateTabGroupLL();
         void T_CGSTabHelper_CreateTabGroupL2L();
         void T_CGSTabHelper_CreateTabGroupL3L();
         void T_CGSTabHelper_RemoveTabGroupL();
         void T_CGSTabHelper_TabChangedLL();

     // CGSParentContainer test cases
         void SetupParentContainerL();
         void TearDownParentContainer();

         void T_CGSParentContainer_FocusChanged();

     // CGSPluginLoader test cases
         void SetupPluginLoaderL();
         void TearDownPluginLoader();

         void T_CGSPluginLoader_NewL();
         void T_CGSPluginLoader__CGSPluginLoader();
         void T_CGSPluginLoader_LoadAsyncL();
         void T_CGSPluginLoader_SetObserver();
         void T_CGSPluginLoader_AbortAsyncLoad();
         void T_CGSPluginLoader_SortPluginsL();


     // CGSPubSubsListener test cases
         void SetupPubSubsListenerL();
         void TearDownPubSubsListener();

         void T_CGSPubSubsListener_NewL();
         void T_CGSPubSubsListener__CGSPubSubsListener();
         void T_CGSPubSubsListener_Get1();
         void T_CGSPubSubsListener_Get2();
         void T_CGSPubSubsListener_Get3();


     // Empty Setup & TearDown
         void SetupNone();
         void TeardownNone();


         void SetupLaunch();
         void TeardownLaunch();

     static TInt CloseTopMostWindow( TAny* aPtr );
     void DoCloseTopMostWindowL();

     void LaunchGsApp1L();
     TBool GetKeyCodeCase1( TKeyCode& aKeyCode );

     void LaunchGsApp2L();
     TBool GetKeyCodeCase2( TKeyCode& aKeyCode );

     void LaunchGsApp3L();
     TBool GetKeyCodeCase3( TKeyCode& aKeyCode );

     void LaunchGsApp4L();
     TBool GetKeyCodeCase4( TKeyCode& aKeyCode );

     static TInt SimulateKeyEvent( TAny* aPtr );
     void DoSimulateKeyEventL();

     TBool GetKeyCodeCase0( TKeyCode& aKeyCode );


     // CGSBaseView test cases
     void SetupCGSBaseViewL();
     void TeardownCGSBaseView();
     void MT_CGSBaseView_SetCurrentItemL();
     void MT_CGSBaseView_ContainerL();
     void MT_CGSBaseView_SetNaviPaneLL();
     void MT_CGSBaseView_CreateNaviPaneContextLL();

     // CGSParentPlugin test cases
     void SetupCGSParentPluginL();
     void TeardownCGSParentPlugin();
     void MT_CGSParentPlugin_UpperLevelViewUidL();
     void MT_CGSParentPlugin_UpdateViewL();
     void MT_CGSParentPlugin_SetOptionFlagsL();
     void MT_CGSParentPlugin_OptionFlagsL();
     void MT_CGSParentPlugin_GetHelpContextL();
     void MT_CGSParentPlugin_SelectedPluginL();
     void MT_CGSParentPlugin_TransferDynamicPluginLL();

     // CGSPluginInterface test cases
     void MT_CGSPluginInterface_ItemTypeL();
     void MT_CGSPluginInterface_HandleSelectionL();
     void MT_CGSPluginInterface_PluginProviderCategoryL();
     void MT_CGSPluginInterface_CustomOperationLL();
     void MT_CGSPluginInterface_SetOrderL();
     void MT_CGSPluginInterface_CreateIconLL();
     void MT_CGSPluginInterface_GetEcomDestructorKey();


    private:    // Data

      // For CGSTabHelper
        CGSTabHelper* iCGSTabHelper;
      CArrayPtrFlat<CGSPluginInterface>* iPlugins;
        CArrayPtrFlat<MGSTabbedView>* iTabbedViews;

        // For CGSPluginLoader
        CGSPluginLoader* iCGSPluginLoader;

        // For CGSPubSubsListener
        CGSPubSubsListener* iCGSPubSubsListener;

        // For launching Gs application test cases
        CPeriodic* iPeriodic;
        TInt ikeySimulateCase;
        TInt iKeyNumber;

        // For CTestGSBaseView
        CTestGSBaseView* iTestBaseView;

        // For CGSParentPlugin
        CGSParentPlugin* iParentPlugin;

        EUNIT_DECLARE_TEST_TABLE;

    };

#endif      //  __MT_GSFRAMEWORK_H__

// End of file