idlefw/tsrc/idleint/ut_idleint/UT_idleint.cpp
branchRCL_3
changeset 110 2c7f27287390
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlefw/tsrc/idleint/ut_idleint/UT_idleint.cpp	Thu Jul 15 18:59:18 2010 +0300
@@ -0,0 +1,473 @@
+/*
+* Copyright (c) 2004 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:
+*
+*/
+
+// System includes
+#include <e32base.h>
+#include <bautils.h>
+#include <e32property.h>
+#include <eikapp.h>
+#include <eikenv.h>
+#include <vwsdef.h>
+#include <akndef.h>
+
+#include <digia/eunit/eunitmacros.h>
+#include <digia/eunit/teunitassertioninfo.h>
+#include <digia/eunit/eunitdecorators.h>
+
+// User includes
+#include "UT_IdleInt.h"
+#include "caouserafter.h"
+#include "aifweventhandler.h"
+
+//#include <TelephonyInternalPSKeys.h>
+#include <activeidle2domainpskeys.h>
+#include <TelephonyDomainPSKeys.h>
+#include <StartupDomainPSKeys.h>
+#include <ctsydomainpskeys.h>
+#define private public
+
+// Tested classes
+//#include "aifwphoneidlesynchronizer.h"
+#include "aiuiidleintegration.h"
+//#include "aifwphoneidlesynchronizerimpl.h"
+#include "aistate.h"
+#include "aiuiidleintegrationimpl.h"
+#include "aiwspluginmanager.h"
+#include "aiidleappregister.h"
+#include "caipspropertyobserver.h"
+
+class CNullEventHandler :
+    public CBase,
+    public MAiFwEventHandler
+    {
+public:
+    // from MAiFwEventHandler
+    void AppEnvReadyL()
+        {
+        };
+    void HandleUiReadyEventL(CAiUiController& /*aUiController*/)
+        {
+        };
+
+    void HandlePluginEvent(const TDesC& /*aParam*/)
+        {
+        };
+
+    TBool HasMenuItem(const TDesC& /*aPluginName*/, const TDesC& /*aMenuItem*/)
+        {
+        	return ETrue;
+        };
+
+    void HandleUiLayoutChangeL(CAiUiController& /*aUiController*/)
+        {
+        };
+
+    void HandleUiThemeChangeStartL(CAiUiController& /*aUiController*/)
+        {
+        };
+
+    void HandleUiShutdown(CAiUiController& /*aUiController*/)
+        {
+        };
+
+    void HandleAllPluginsLoaded()
+        {
+        };
+
+    TBool RefreshContent(const TDesC& /*aContentCid*/)
+        {
+        	return ETrue;
+        };    
+        
+    TBool RefreshContent( const THsPublisherInfo& /*aPublisherInfo*/, const TDesC& /*aContentCid*/ )
+    {
+    	return ETrue;
+    };
+    
+    TBool SuspendContent( const THsPublisherInfo& /*aPublisherInfo*/, const TDesC& /*aContentCid*/ )
+    {
+    	return ETrue;
+    };    
+
+		/*
+    void DestroyingPlugin( CAiContentPublisher& aPlugin )
+        {
+        };
+		*/
+		
+    void CriticalStartupPhaseOver( TInt /*aStageInteger*/ )
+        {
+        };
+    };
+    
+// CONSTRUCTION
+UT_IdleInt* UT_IdleInt::NewL()
+    {
+    UT_IdleInt* self = UT_IdleInt::NewLC();
+    CleanupStack::Pop();
+
+    return self;
+    }
+
+UT_IdleInt* UT_IdleInt::NewLC()
+    {
+    UT_IdleInt* self = new( ELeave ) UT_IdleInt();
+    CleanupStack::PushL( self );
+
+    self->ConstructL();
+
+    return self;
+    }
+
+// Destructor (virtual by CBase)
+UT_IdleInt::~UT_IdleInt()
+    {
+    }
+
+// Default constructor
+UT_IdleInt::UT_IdleInt()
+    {
+    iPhoneStatusOwned = ETrue;
+    iSystemStatusOwned = ETrue;
+    iUiStartupStatusOwned = ETrue;
+    }
+
+// Second phase construct
+void UT_IdleInt::ConstructL()
+    {
+    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
+    // It generates the test case table.
+    CEUnitTestSuiteClass::ConstructL();
+    }
+
+//  METHODS
+
+CPSPropertyObserver* UT_IdleInt::PSPropertyObserver( TUid aCategory, TInt aKey )
+    {
+    UT_IdleInt* self = reinterpret_cast<UT_IdleInt*>(Dll::Tls());
+            
+    if( aCategory == KPSUidCtsyCallInformation && aKey == KCTsyCallState )
+        {        
+        self->iPhoneStatusOwned = EFalse;
+        return self->iPhoneStatusObserver;
+        }
+    else if( aCategory == KPSUidTelInformation && aKey == KTelPhoneUid )
+        {        
+        self->iPhoneStatusOwned = EFalse;
+        return self->iPhoneStatusObserver;
+        }
+    else if( aCategory == KPSUidStartup && aKey == KPSGlobalSystemState )
+        {
+        self->iSystemStatusOwned = EFalse;
+        return self->iSystemStatusObserver;
+        }
+    else if( aCategory == KPSUidStartup && aKey == KPSStartupUiPhase )
+        {
+        self->iUiStartupStatusOwned = EFalse;
+        return self->iUiStartupStatusObserver;
+        }
+    else
+        {
+        return NULL;
+        }
+    }
+    
+void UT_IdleInt::KeySetTo( TInt aValue )
+    {
+    UT_IdleInt* self = reinterpret_cast<UT_IdleInt*>(Dll::Tls());
+    self->iIdleStatus = aValue;
+    }
+
+void UT_IdleInt::SetupL(  )
+    {
+    iPhoneStatusObserver = CPSPropertyObserver::NewL(KPSUidAiInformation,
+                                                     KActiveIdleUid);
+    iSystemStatusObserver = CPSPropertyObserver::NewL(KPSUidStartup,
+                                                      KPSGlobalSystemState);
+    iUiStartupStatusObserver = CPSPropertyObserver::NewL(KPSUidStartup,
+                                   KPSStartupUiPhase);
+
+    iPhoneStatusObserver->SetOtherObserver( iSystemStatusObserver );
+    iSystemStatusObserver->SetOtherObserver( iPhoneStatusObserver );
+    iUiStartupStatusObserver->SetOtherObserver( iSystemStatusObserver );
+    
+
+    Dll::SetTls( this );
+    TAiIdleKeySoundConfig config;
+    config.iKeySounds = &iSoundSystemStub;
+    iIdleInt = CAiUiIdleIntegrationImpl::NewL( *CEikonEnv::Static(), config, this );
+    iState = CActiveIdleState::NewL();
+    }
+
+void UT_IdleInt::Teardown(  )
+    {
+    delete iState;
+    delete iIdleInt;
+    if( iPhoneStatusOwned )
+        delete iPhoneStatusObserver;
+    if( iSystemStatusOwned )
+        delete iSystemStatusObserver;
+    if( iUiStartupStatusOwned )
+        delete iUiStartupStatusObserver;
+    }
+
+void UT_IdleInt::TestStartUpL()
+    { 
+    iIdleInt->ActivateUI();
+    iSystemStatusObserver->DoEvent();
+    TWsEvent event;
+    event.SetType( KAknFullOrPartialForegroundGained );
+    iIdleInt->HandleWsEventL( event, NULL );
+    CAOUserAfter::AfterLD( 1000*1000 ); // wait a second for ps to update
+//    EUNIT_ASSERT( iIdleStatus != 0 ); // assert we have foreground
+                                      // means that status updated correctly
+
+    event.SetType( KAknFullOrPartialForegroundGained );
+    iIdleInt->HandleWsEventL( event, NULL );
+    CAOUserAfter::AfterLD( 1000*1000 ); // wait a second for ps to update
+//    EUNIT_ASSERT( iIdleStatus != 0 ); // assert we have foreground
+                                      // means that status updated correctly
+    
+    event.SetType( KAknFullOrPartialForegroundLost );
+    iIdleInt->HandleWsEventL( event, NULL );
+    CAOUserAfter::AfterLD( 1000*1000 ); // wait a second for ps to update
+//    EUNIT_ASSERT( iIdleStatus == 0 ); // assert we dont have foreground
+                                      // means that status updated correctly
+
+    event.SetType( KAknFullOrPartialForegroundLost );
+    iIdleInt->HandleWsEventL( event, NULL );
+    CAOUserAfter::AfterLD( 1000*1000 ); // wait a second for ps to update
+//    EUNIT_ASSERT( iIdleStatus == 0 ); // assert we dont have foreground
+                                      // means that status updated correctly
+                
+    iAiWsPluginManagerImpl = CAiWsPluginManager::NewL( *CCoeEnv::Static() );
+      CAOUserAfter::AfterLD( 1000*1000 ); // wait a second for ps to update
+      
+    iAiIdleAppRegister = CAiIdleAppRegister::NewLC();
+      CAOUserAfter::AfterLD( 1000*1000 ); // wait a second for ps to update
+    
+    iAiIdleAppRegister->RegisterL();
+      CAOUserAfter::AfterLD( 1000*1000 ); // wait a second for ps to update
+
+      if (iAiIdleAppRegister)
+          {
+          delete iAiIdleAppRegister;    
+          iAiIdleAppRegister = NULL;    
+          }
+      
+      if (iAiWsPluginManagerImpl)
+          {
+          delete iAiWsPluginManagerImpl;    
+          iAiWsPluginManagerImpl = NULL;    
+          }
+
+
+    }    
+    
+void UT_IdleInt::TestIdleIntEventControlNullAndOthersL()
+    {
+    TWsEvent event;
+    iIdleInt->HandleWsEventL( event, NULL );
+
+    event.SetType( EEventWindowGroupsChanged );
+    iIdleInt->HandleWsEventL( event, NULL );
+
+    event.SetType( EEventFocusGroupChanged );
+    iIdleInt->HandleWsEventL( event, NULL );
+
+    event.SetType( EEventFocusGained );
+    iIdleInt->HandleWsEventL( event, NULL );
+    }
+//  TEST TABLE
+
+void UT_IdleInt::TestStateChangesL()
+    {
+    iState->SetIsIdleForeground( ETrue );
+    CAOUserAfter::AfterLD( 1 * 500000 );
+    iState->SetIsIdleForeground( EFalse );
+    CAOUserAfter::AfterLD( 1 * 500000 );
+    iState->SetIsIdleForeground( ETrue );
+    CAOUserAfter::AfterLD( 1 * 500000 );
+    iState->SetIsIdleForeground( EFalse );
+    iState->SetIsIdleForeground( ETrue );
+    iState->SetIsIdleForeground( EFalse );
+    iState->SetIsIdleForeground( ETrue ); 
+    iState->SetIsIdleForeground( EFalse );
+    }
+
+void UT_IdleInt::AppEnvReadyL()
+    {
+    }
+
+void UT_IdleInt::HandleUiReadyEventL( CAiUiController& /*aUiController*/ )
+    {
+    }
+
+void UT_IdleInt::HandlePluginEvent( const TDesC& /*aParam*/ )
+    {
+    }
+
+TBool UT_IdleInt::HasMenuItem(const TDesC& /*aPluginName*/, const TDesC& /*aMenuItem*/)
+    {
+    return ETrue;
+    }
+
+void UT_IdleInt::HandleUiLayoutChangeL( CAiUiController& /*aUiController*/ )
+    {
+    }
+
+void UT_IdleInt::HandleUiThemeChangeStartL( CAiUiController& /*aUiController*/ )
+    {
+    }
+
+void UT_IdleInt::HandleUiShutdown( CAiUiController& /*aUiController*/ )
+    {
+    }
+
+void UT_IdleInt::HandleAllPluginsLoaded()
+    {
+    }
+
+void UT_IdleInt::HandleEnterEditMode()
+    {
+    }
+
+void UT_IdleInt::HandleExitEditMode()
+    {
+    }
+
+void UT_IdleInt::HandleUIChangeEventL()
+    {
+    }
+
+void UT_IdleInt::HandleActivateUI()
+    {
+    }
+
+void UT_IdleInt::HandleLoadPluginL( const THsPublisherInfo& /*aPublisherInfo*/ )
+    {
+    }
+
+void UT_IdleInt::HandleDestroyPluginL( const THsPublisherInfo& /*aPublisherInfo*/ )
+    {
+    }
+
+void UT_IdleInt::HandlePluginEventL( const THsPublisherInfo& /*aPublisherInfo*/, const TDesC& /*aParam*/ )
+    {
+    }
+
+TBool UT_IdleInt::HasMenuItemL( const THsPublisherInfo& /*aPublisherInfo*/, const TDesC& /*aMenuItem*/ )
+    {
+    }
+
+TBool UT_IdleInt::IsPluginsOnline()
+    {
+    return ETrue;
+    }
+
+void UT_IdleInt::SetPluginsOnlineStatus(TBool /*aStatus*/)
+    {
+    }
+
+TBool UT_IdleInt::IsRoaming()
+    {
+    return ETrue;
+    }
+
+void UT_IdleInt::ShowRoamingNotificationL()
+    {
+    }
+
+TBool UT_IdleInt::RefreshContent( const TDesC& /*aContentCid*/ )
+    {
+    return ETrue;
+    }
+
+TBool UT_IdleInt::RefreshContent( const THsPublisherInfo& /*aPublisherInfo*/, const TDesC& /*aContentCid*/ )
+{
+	return ETrue;
+}
+    
+TBool UT_IdleInt::SuspendContent( const THsPublisherInfo& /*aPublisherInfo*/, const TDesC& /*aContentCid*/ )
+{
+	return ETrue;
+};   
+/*
+void UT_IdleInt::DestroyingPlugin( CAiContentPublisher& aPlugin )
+    {
+    }
+*/
+void UT_IdleInt::CriticalStartupPhaseOver( TInt /*aStageInteger*/ )
+    {
+    }
+
+TBool UT_IdleInt::QueryIsMenuOpen()
+    {
+    return ETrue;
+    }
+
+/*
+void UT_IdleInt::ProcessStateChange( TAifwStates aState )
+	{
+	}
+*/
+/*
+void UT_IdleInt::HandlePluginsOnlineStatus( 
+    const RAiPublisherInfoArray& aPlugins,TBool aStatus )
+    {
+    }
+*/
+void UT_IdleInt::SetPluginsVisibility( TBool /*aStatus*/ )
+    {
+    }
+
+void UT_IdleInt::ProcessOnlineState( TBool /*aOnline*/ )
+    {
+    }
+
+
+EUNIT_BEGIN_TEST_TABLE(
+    UT_IdleInt,
+    "Unit test suite for class Active Idle Framework",
+    "CAiFw" )
+
+EUNIT_TEST(
+    "Test IdleInt event control NULL",
+    "CAiUiIdleIntegrationImpl",
+    "",
+    "FUNCTIONALITY",
+    SetupL, TestIdleIntEventControlNullAndOthersL, Teardown)
+
+EUNIT_TEST(
+    "Test State changes",
+    "CActiveIdleState",
+    "",
+    "FUNCTIONALITY",
+    SetupL, TestStateChangesL, Teardown)
+
+    /*
+EUNIT_TEST(
+    "Test Start Up",
+    "CAiFwPhoneIdleSynchronizerImpl",
+    "",
+    "FUNCTIONALITY",
+    SetupL, TestStartUpL, Teardown)   
+*/
+
+EUNIT_END_TEST_TABLE
+
+//  END OF FILE