uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestmixmcl/src/bctestmixmclgeneralcase.cpp
changeset 0 2f259fa3e83a
child 4 8ca85d2f0db7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestmixmcl/src/bctestmixmclgeneralcase.cpp	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,457 @@
+/*
+* Copyright (c) 2007-2009 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:  Contains the test cases.
+*
+*/
+
+#include <avkon.hrh>
+#include <eikfrlb.h>
+#include <aknappui.h>
+#include <aknpointereventmodifier.h>
+#include <akntashook.h>
+#include <aknpreviewpopupcontroller.h>
+#include <eikmenub.h>
+#include <eikenv.h>
+#include <aknutils.h>
+#include <akntoolbar.h>
+
+#include <bctestmixmcl.rsg>
+#include <eikedwin.h>
+#include <aknphysics.h>
+
+#include "bctestmixmclgeneralcase.h"
+#include "bctestmixmclcontainer.h"
+#include "bctestmixmcl.hrh"
+
+// CONSTATNS
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// Symbian 2nd static Constructor
+// ---------------------------------------------------------------------------
+//
+CBCTestMixMCLGeneralCase* CBCTestMixMCLGeneralCase::NewL( CBCTestMixMCLContainer* 
+    aContainer, CBCTestMixMCLView* aView )
+    {
+    CBCTestMixMCLGeneralCase* self = new( ELeave ) CBCTestMixMCLGeneralCase( 
+        aContainer, aView );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+    
+// ---------------------------------------------------------------------------
+// C++ default constructor
+// ---------------------------------------------------------------------------
+//
+CBCTestMixMCLGeneralCase::CBCTestMixMCLGeneralCase( CBCTestMixMCLContainer* 
+    aContainer, CBCTestMixMCLView* aView )
+    : iView( aView ), iContainer( aContainer )
+    {    
+    }
+    
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CBCTestMixMCLGeneralCase::~CBCTestMixMCLGeneralCase()
+    {  
+    }
+    
+// ---------------------------------------------------------------------------
+// Symbian 2nd Constructor
+// ---------------------------------------------------------------------------
+//
+void CBCTestMixMCLGeneralCase::ConstructL()
+    {    
+    BuildScriptL();    
+    }
+    
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::BuildScriptL
+// ---------------------------------------------------------------------------
+//
+void CBCTestMixMCLGeneralCase::BuildScriptL()
+    { 
+    // Add script as your need.   
+    AddTestL( DELAY(1), LeftCBA, Down, KeyOK, TEND ); // outline02
+    }
+    
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::RunL
+// ---------------------------------------------------------------------------
+//
+void CBCTestMixMCLGeneralCase::RunL( TInt aCmd )
+    {
+    if ( aCmd != EBCTestCmdOutline2 )
+        {
+        return;
+        }
+    // Call release before prepare to let container has time to draw the 
+    // control created in PrepareCaseL.
+    ReleaseCaseL();
+    PrepareCaseL( aCmd ); 
+    
+    TestListBoxL();
+    TestOptionsMenuL();
+    TestTasObjectInfoAndTasHookL();
+    TestMiscApisFuncOneL();
+    TestAknToolbar();
+    TestAknPopupUtils();
+    TestEditorKineticScrollingL();
+    TestAknPhysicsSuspendPhysicsL();
+    TestAknPhysicsResumePhysicsL();
+    TestCba();
+    }
+
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::PrepareCaseL
+// ---------------------------------------------------------------------------
+//
+void CBCTestMixMCLGeneralCase::PrepareCaseL( TInt aCmd )
+    {        
+    switch ( aCmd )
+        {
+        case EBCTestCmdOutline2:
+            // Here is a simple demo. You should create your control 
+            // instead of this.
+            iControl = new( ELeave ) CCoeControl();
+            iControl->SetContainerWindowL( *iContainer );
+            iControl->MakeVisible( ETrue );
+            break;
+        default:
+            break;
+        }
+    // Pass the owner of iControl to iContainer.
+    iContainer->SetControlL( iControl );
+    }
+
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::ReleaseCaseL
+// ---------------------------------------------------------------------------
+//   
+void CBCTestMixMCLGeneralCase::ReleaseCaseL()
+    {
+    // let container delete the component control.
+    iContainer->ResetControl();
+    iControl = NULL;
+    }
+
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::HandleLongTapEventL
+// ---------------------------------------------------------------------------
+//   
+void CBCTestMixMCLGeneralCase::HandleLongTapEventL( 
+		const TPoint& /*aPenEventLocation*/, 
+		const TPoint& /*aPenEventScreenLocation*/ )
+	{
+	
+	}
+
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::TestListBoxL
+// ---------------------------------------------------------------------------
+//   
+void CBCTestMixMCLGeneralCase::TestListBoxL()
+	{
+	_LIT( KDisableScrolling, "CEikListBox::DisableScrolling() invoked" );
+	_LIT( KSetItemsInSingleLine, 
+	    "CEikListBox::SetItemsInSingleLine() invoked" );
+	_LIT( KBackgroundDrawingSuppressed, 
+	    "CEikListBox::BackgroundDrawingSuppressed() invoked" );
+	_LIT( KHandlePhysicsScrollEventL, 
+	    "CEikListBox::HandlePhysicsScrollEventL() invoked" );
+	_LIT( KSuspendEffectsL, "CEikListBox::SuspendEffects() invoked" );
+	_LIT( KScrollingDisabledL, "CEikListBox::ScrollingDisabled() invoked" );
+	_LIT( KItemIsPartiallyVisibleL, 
+	    "CListBoxView::ItemIsPartiallyVisible() invoked" );	
+	_LIT( KItemOffsetInPixels, 
+	    "CListBoxView::ItemOffsetInPixels() invoked" );
+	_LIT( KDisableItemSpecificMenu, 
+	    "CListBoxView::DisableItemSpecificMenu() invoked" );
+	
+	CEikFormattedCellListBox * listbox = new CEikFormattedCellListBox();
+	CleanupStack::PushL( listbox );
+	
+	listbox->ConstructL( iContainer, EAknListBoxSelectionList );
+	CDesCArrayFlat* text = new (ELeave) CDesCArrayFlat(1);
+	CleanupStack::PushL( text );
+	
+	text->AppendL( _L( "\tTextItem1\t" ) );
+	text->AppendL( _L( "\tTextItem2\t" ) );
+	text->AppendL( _L( "\tTextItem3\t" ) );
+	
+	listbox->Model()->SetItemTextArray( text );
+	listbox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray );
+	
+	listbox->DisableScrolling( ETrue );
+	AssertTrueL( ETrue, KDisableScrolling );
+	
+	listbox->SetItemsInSingleLine( 1 );
+	AssertTrueL( ETrue, KSetItemsInSingleLine );
+	
+	listbox->BackgroundDrawingSuppressed();
+	AssertTrueL( ETrue, KBackgroundDrawingSuppressed );
+	
+	listbox->HandlePhysicsScrollEventL( listbox->ItemHeight() );
+	AssertTrueL( ETrue, KHandlePhysicsScrollEventL );
+	
+	listbox->SuspendEffects( ETrue );
+    AssertTrueL( ETrue, KSuspendEffectsL );	
+    
+	listbox->ScrollingDisabled();
+    AssertTrueL( ETrue, KScrollingDisabledL );
+    
+	listbox->View()->ItemIsPartiallyVisible( 1 );
+    AssertTrueL( ETrue, KItemIsPartiallyVisibleL );
+	
+	listbox->View()->ItemOffsetInPixels();
+	AssertTrueL( ETrue, KItemOffsetInPixels );
+	
+	listbox->DisableItemSpecificMenu();
+	AssertTrueL( ETrue, KDisableItemSpecificMenu );
+	
+	CleanupStack::PopAndDestroy( text );
+	CleanupStack::PopAndDestroy( listbox );
+	}
+	
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::TestOptionsMenuL
+// ---------------------------------------------------------------------------
+//   
+void CBCTestMixMCLGeneralCase::TestOptionsMenuL()
+    {
+    _LIT( KGetMenuType, "CEikMenuBar::GetMenuType invoked" );
+    CEikMenuBar* menuBar = CEikonEnv::Static()->AppUiFactory()->MenuBar();            
+    if( menuBar )
+        {        
+        menuBar->GetMenuType();
+        AssertTrueL( ETrue, KGetMenuType );  
+        }
+    }	
+
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::TestTasObjectInfoAndTasHookL
+// ---------------------------------------------------------------------------
+//   
+void CBCTestMixMCLGeneralCase::TestTasObjectInfoAndTasHookL()
+	{
+	_LIT( KClassName, "CBCTestMixMCLGeneralCase" );
+	_LIT( KAddL, "CAknTasHook::AddL() tested" );
+	_LIT( KGet, "CAknTasHook::Get() tested" );
+	_LIT( KRemove, "CAknTasHook::Remove() tested" );
+	_LIT( KIsA, "CAknTasObjectInfo::IsA() tested" );
+	_LIT( KType, "CAknTasObjectInfo::Type() tested" );
+	_LIT( KGetClassNames, "CAknTasObjectInfo::GetClassNames() tested" );
+	_LIT( KGetControl, "CAknTasObjectInfo::GetControl() tested" );
+	
+	CAknTasHook::AddL( this, KClassName() );
+	AssertTrueL( ETrue, KAddL );
+	
+	CAknTasObjectInfo* info = CAknTasHook::Get( this );
+	AssertTrueL( ETrue, KGet );
+	
+	// info would be NULL if KTasHooking is not enabled.
+	if ( info )
+		{
+	    info->IsA( KClassName() );
+	    AssertTrueL( ETrue, KIsA );
+	    
+	    info->Type();
+	    AssertTrueL( ETrue, KType );
+	    
+	    info->GetClassNames();
+	    AssertTrueL( ETrue, KGetClassNames );
+	    
+	    info->GetControl();
+	    AssertTrueL( ETrue, KGetControl );
+		}
+	
+	CAknTasHook::Remove( this );
+	AssertTrueL( ETrue, KRemove );
+	}
+
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::TestMiscApisFuncOneL
+// ---------------------------------------------------------------------------
+//   
+void CBCTestMixMCLGeneralCase::TestMiscApisFuncOneL()
+	{
+	_LIT( KCancelAnimationL, 
+	    "CAknLongTapDetector::CancelAnimationL() invoked" );
+	_LIT( KHandlePointerEvent, 
+	    "CAknPointerEventModifier::CAknPointerEventModifier() tested");
+	_LIT( KResetTimer, "CAknPreviewPopUpController::ResetTimer() teseted");
+	
+	CAknLongTapDetector* detector = CAknLongTapDetector::NewL( this );
+	CleanupStack::PushL( detector );
+	
+	detector->After( TTimeIntervalMicroSeconds32( 1000000 ) );
+	detector->CancelAnimationL();
+	AssertTrueL( ETrue, KCancelAnimationL );
+	
+	CleanupStack::PopAndDestroy( detector );
+	
+	CAknPreviewPopUpController* popupController = 
+	        CAknPreviewPopUpController::NewL( *iControl );
+	CleanupStack::PushL( popupController );
+	
+	popupController->ResetTimer();
+	AssertTrueL( ETrue, KResetTimer );
+	
+	CleanupStack::PopAndDestroy( popupController );
+	
+	// simulate a pointer event for forcing the CAknAppUi::HandleWsEventL
+	// to call CAknPointerEventModifier::HandlePointerEventL().
+	TRawEvent eventDown;
+	eventDown.Set( TRawEvent::EButton1Down, 0, 0 );
+	UserSvr::AddEvent( eventDown );
+	
+	User::After( 1000000 );
+
+	TRawEvent eventUp;
+	eventUp.Set( TRawEvent::EButton1Up, 0, 0 );
+	UserSvr::AddEvent( eventUp );
+
+	AssertTrueL( ETrue, KHandlePointerEvent );
+	}
+
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::TestAknPopupUtils
+// ---------------------------------------------------------------------------
+//   
+void CBCTestMixMCLGeneralCase::TestAknPopupUtils()
+    {
+    TSize size( 10, 10 );
+    TPoint point( AknPopupUtils::Position( size, ETrue ) );
+    point = AknPopupUtils::Position( size, EFalse );
+    point = AknPopupUtils::Position( size, NULL );
+    _LIT( KAknPopupUtilsPosition, "AknPopupUtils::Position funcs are tested" );
+    AssertTrueL( ETrue, KAknPopupUtilsPosition );
+    }
+
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::TestAknToolbar
+// ---------------------------------------------------------------------------
+// 
+void CBCTestMixMCLGeneralCase::TestAknToolbar()
+	{
+	_LIT( KAknToolbarNew, "CAknToolbar::New toolbar is constructed" );
+	_LIT( KAknToolbarSetBgId, "CAknToolbar::New background skin theme ID is set" );
+	
+	CAknToolbar* toolbar = CAknToolbar::NewL( R_BCTESTMIXMCL_TOOLBAR_FIXED );
+	CleanupStack::PushL( toolbar );
+	AssertTrueL( ETrue, KAknToolbarNew );
+	
+	toolbar->SetSkinBackgroundId( KAknsIIDQsnBgAreaControlMp );
+	AssertTrueL( ETrue, KAknToolbarSetBgId );
+	CleanupStack::PopAndDestroy( toolbar );
+	}
+
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::TestEditorKineticScrollingL
+// ---------------------------------------------------------------------------
+//   
+void CBCTestMixMCLGeneralCase::TestEditorKineticScrollingL()
+    {
+    CEikEdwin* editor = new ( ELeave ) CEikEdwin;
+    CleanupStack::PushL( editor );
+    editor->EnableKineticScrollingL( ETrue );
+    CleanupStack::PopAndDestroy( editor );
+    _LIT( KEdwinEnableScrolling, "CEikEdwin::EnableKineticScrollingL tested" );
+    AssertTrueL( ETrue, KEdwinEnableScrolling );
+    }
+
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::TestAknPhysicsSuspendPhysicsL
+// ---------------------------------------------------------------------------
+//   
+void CBCTestMixMCLGeneralCase::TestAknPhysicsSuspendPhysicsL()
+    {
+    CCoeControl* testControl = new (ELeave) CCoeControl();
+    CleanupStack::PushL( testControl );
+    CAknPhysics* physics = CAknPhysics::NewL( *this, testControl );
+    CleanupStack::PushL( physics );
+    physics->SuspendPhysics();
+    CleanupStack::PopAndDestroy( physics );
+    CleanupStack::PopAndDestroy( testControl );
+    _LIT( KSuspendPhysics, "CAknPhysics::SuspendPhysics tested" );
+    AssertTrueL( ETrue, KSuspendPhysics );
+    }
+	
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::TestAknPhysicsResumePhysicsL
+// ---------------------------------------------------------------------------
+//   
+void CBCTestMixMCLGeneralCase::TestAknPhysicsResumePhysicsL()
+    {
+    CCoeControl* testControl = new (ELeave) CCoeControl();
+    CleanupStack::PushL( testControl );
+    CAknPhysics* physics = CAknPhysics::NewL( *this, testControl );
+    CleanupStack::PushL( physics );
+    physics->ResumePhysics();
+    CleanupStack::PopAndDestroy( physics );
+    CleanupStack::PopAndDestroy( testControl );
+    _LIT( KResumePhysics, "CAknPhysics::ResumePhysics tested" );
+    AssertTrueL( ETrue, KResumePhysics );
+    }
+
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::TestCba
+// ---------------------------------------------------------------------------
+//   
+void CBCTestMixMCLGeneralCase::TestCba()
+    {
+    CEikCba* cba = static_cast<CEikCba*>( 
+        iAvkonAppUi->Cba()->ButtonGroup()->AsControl() );
+    cba->EnableItemSpecificSoftkey( EFalse );
+    cba->EnableItemSpecificSoftkey( ETrue );
+    _LIT( CEikCbaEnableItemSpecificSoftkey, 
+        "CEikCba::EnableItemSpecificSoftkey tested" );
+    AssertTrueL( ETrue, CEikCbaEnableItemSpecificSoftkey );
+    }    
+
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::ViewPositionChanged
+// ---------------------------------------------------------------------------
+// 
+void CBCTestMixMCLGeneralCase::ViewPositionChanged(
+    const TPoint& /*aNewPosition*/,
+    TBool /*aDrawNow*/,
+    TUint /*aFlags*/ )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::PhysicEmulationEnded
+// ---------------------------------------------------------------------------
+// 
+void CBCTestMixMCLGeneralCase::PhysicEmulationEnded()
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::ViewPosition
+// ---------------------------------------------------------------------------
+// 
+TPoint CBCTestMixMCLGeneralCase::ViewPosition() const
+    {
+    return TPoint( 0, 0 );
+    }
+
+//end of file
+