diff -r 000000000000 -r 2f259fa3e83a uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestmixmcl/src/bctestmixmclgeneralcase.cpp --- /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 +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#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( + 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 +