diff -r aecbbf00d063 -r d48ab3b357f1 uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestbuttons/src/bctestbuttonscase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestbuttons/src/bctestbuttonscase.cpp Wed Sep 01 12:16:19 2010 +0100 @@ -0,0 +1,1317 @@ +/* +* Copyright (c) 2006 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: test case +* +*/ + + +#include +#include +#include +#include // + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "bctestbuttonscase.h" +#include "bctestbuttonscontainer.h" +#include "bctestbuttons.hrh" +#include "streamlogger.h" + +_LIT( KStreamName, "c:\\BCTestLog\\buttontest.txt" ); + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// Symbian 2nd static Constructor +// --------------------------------------------------------------------------- +// +CBCTestButtonsCase* CBCTestButtonsCase::NewL( + CBCTestButtonsContainer* aContainer ) + { + CBCTestButtonsCase* self = new( ELeave ) CBCTestButtonsCase( + aContainer ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// C++ default constructor +// --------------------------------------------------------------------------- +// +CBCTestButtonsCase::CBCTestButtonsCase( + CBCTestButtonsContainer* aContainer ) + : iContainer( aContainer ) + { + } + +// --------------------------------------------------------------------------- +// Destructor +// --------------------------------------------------------------------------- +// +CBCTestButtonsCase::~CBCTestButtonsCase() + { + } + +// --------------------------------------------------------------------------- +// Symbian 2nd Constructor +// --------------------------------------------------------------------------- +// +void CBCTestButtonsCase::ConstructL() + { + BuildScriptL(); + iEnv = CEikonEnv::Static(); + } + +// --------------------------------------------------------------------------- +// CBCTestButtonsCase::BuildScriptL +// --------------------------------------------------------------------------- +// +void CBCTestButtonsCase::BuildScriptL() + { + // Add script as your need. + AddTestL( DELAY(1), TEND); + TInt loop = EBCTestCmdMaxOutline - EBCTestCmdTestEikBgftyAndEikBtgpcL; + for ( TInt i = 0; i < loop; i++ ) + { + AddTestL( LeftCBA, REP( Down, i ), KeyOK, TEND ); + } + } + +// --------------------------------------------------------------------------- +// CBCTestButtonsCase::RunL +// --------------------------------------------------------------------------- +// +void CBCTestButtonsCase::RunL( TInt aCmd ) + { + if ( aCmd < EBCTestCmdTestEikBgftyAndEikBtgpcL || aCmd > EBCTestCmdMaxOutline ) + { + return; + } + // Call release before prepare to let container has time to draw the + // control created in PrepareCaseL. + switch ( aCmd ) + { + case EBCTestCmdTestEikBgftyAndEikBtgpcL: + TestEikBgftyAndEikBtgpcL(); + break; + case EBCTestCmdTestEikButbAndEikCbaL: + TestEikButbAndEikCbaL(); + break; + case EBCTestCEikCommandButtonL: + TestCEikCommandButtonL(); + break; + case EBCTestCEikTwoPictureCmdL: + TestCEikTwoPictureCmdL(); + break; + case EBCTestCEikInverterCmdL: + TestCEikInverterCmdL(); + break; + case EBCTestCEikTextBtnL: + TestCEikTextBtnL(); + break; + case EBCTestCEikBitmapBtnL: + TestCEikBitmapBtnL(); + break; + case EBCTestCEikLabeledBtnL: + TestCEikLabeledBtnL(); + break; + case EBCTestMnbutAndBtgpsAndBtgrpL: + TestMnbutAndBtgpsAndBtgrpL(); + break; + case EBCTestCba: + TestCbaButtonL(); + break; + default: + break; + } + } + +// --------------------------------------------------------------------------- +// CBCTestButtonsCase::TestEikBgftyAndEikBtgpcL +// --------------------------------------------------------------------------- +// +void CBCTestButtonsCase::TestEikBgftyAndEikBtgpcL() + { + // Test some API for class EikButtonGroupFactory + TBCTestCommandObserver commandObserver; + TInt resourceId = R_BCTESTBUTTONS_MENU; + + RWindowGroup& parentWg = iEnv->RootWin(); + TUint flags = 0; + + EikButtonGroupFactory::TCreationData creationData( + CEikButtonGroupContainer::EView, &commandObserver, + resourceId, &parentWg, flags, + CEikButtonGroupContainer::EVertical ); + _LIT( KTCreationData, "TCreationData test" ); + AssertTrueL( ETrue, KTCreationData ); + + // Test some API for class CEikButtonGroupFactoryArray + CEikButtonGroupFactoryArray::AppendFactoryFunctionL( + CEikCoCtlLibrary::ButtonGroupFactory() ); + _LIT( KAppendFactoryFunctionL, "AppendFactoryFunctionL test" ); + AssertTrueL( ETrue, KAppendFactoryFunctionL ); + + CEikButtonGroupFactoryArray::RemoveFactoryFunction( + CEikCoCtlLibrary::ButtonGroupFactory() ); + _LIT( KRemoveFactoryFunction, "RemoveFactoryFunction test" ); + AssertTrueL( ETrue, KRemoveFactoryFunction ); + + // Test some API for class CEikButtonGroupContainer + TInt resourceIdForToolbar = R_BCTESTBUTTONS_TOOLBAR; + CEikButtonGroupContainer* buttonGroupContainer1 = + CEikButtonGroupContainer::NewL( CEikButtonGroupContainer::EView, + CEikButtonGroupContainer::EVertical, &commandObserver, + resourceIdForToolbar, CEikButtonGroupContainer::EAddToStack ); + CleanupStack::PushL( buttonGroupContainer1 ); + _LIT( KNewL, "NewL test" ); + AssertTrueL( ETrue, KNewL ); + CleanupStack::PopAndDestroy( buttonGroupContainer1 ); + + CEikButtonGroupContainer* buttonGroupContainer2 = + CEikButtonGroupContainer::NewL( CEikButtonGroupContainer::EView, + CEikButtonGroupContainer::EVertical, &commandObserver, + resourceIdForToolbar, *iContainer, + CEikButtonGroupContainer::EAddToStack); + CleanupStack::PushL( buttonGroupContainer2 ); + _LIT( KNewLWithCCoeControl, "NewL WithCCoeControl test" ); + AssertTrueL( ETrue, KNewLWithCCoeControl ); + CleanupStack::PopAndDestroy( buttonGroupContainer2 ); + + + CEikButtonGroupContainer* buttonGroupContainer3 = + CEikButtonGroupContainer::NewL( CEikButtonGroupContainer::EView, + CEikButtonGroupContainer::EVertical, &commandObserver, + resourceIdForToolbar, parentWg, + CEikButtonGroupContainer::EAddToStack ); + CleanupStack::PushL( buttonGroupContainer3 ); + _LIT( KNewLWithRWindowGroup, "NewL With RWindowGroup test" ); + AssertTrueL( ETrue, KNewLWithRWindowGroup ); + CleanupStack::PopAndDestroy( buttonGroupContainer3 ); + + CEikButtonGroupContainer* buttonGroupContainer4 = + CEikButtonGroupContainer::Current(); + + _LIT( KCurrent, "Current test" ); + AssertTrueL( ETrue, KCurrent ); + + TInt resourceIdForCba = R_BCTESTBUTTONS_CBA_OPTIONS_NEXT; + buttonGroupContainer4->SetCommandSetL( resourceIdForCba ); + _LIT( KSetCommandSetL, "SetCommandSetL test" ); + AssertTrueL( ETrue, KSetCommandSetL ); + + buttonGroupContainer4->AddCommandSetToStackL( resourceIdForCba ); + _LIT( KAddCommandSetToStackL, "AddCommandSetToStackL test" ); + AssertTrueL( ETrue, KAddCommandSetToStackL ); + + TInt commandId = EAknSoftkeyOptions; + TInt position = buttonGroupContainer4->PositionById( commandId ); + _LIT( KPositionById, "PositionById test" ); + AssertTrueL( ETrue, KPositionById ); + + buttonGroupContainer4->RemoveCommandFromStack( position, commandId); + _LIT( KRemoveCommandFromStack, "RemoveCommandFromStack test" ); + AssertTrueL( ETrue, KRemoveCommandFromStack ); + + buttonGroupContainer4->SetDefaultCommand( commandId ); + _LIT( KSetDefaultCommand, "SetDefaultCommand test" ); + AssertTrueL( ETrue, KSetDefaultCommand ); + + TSize size1 = buttonGroupContainer4->CalcMinimumSizeL( resourceIdForCba ); + _LIT( KCalcMinimumSizeL, "CalcMinimumSizeL test" ); + AssertTrueL( ETrue, KCalcMinimumSizeL ); + + buttonGroupContainer4->CleanupCommandPushL( position ); + _LIT( KCleanupCommandPushL, "CleanupCommandPushL test" ); + AssertTrueL( ETrue, KCleanupCommandPushL ); + + TInt res( KErrNone ); + _LIT( KOfferCommandListL, "OfferCommandListL tested" ); + TRAP( res, buttonGroupContainer4->OfferCommandListL( resourceIdForCba ) ); + AssertTrueL( ETrue, KOfferCommandListL ); + + RArray arr; + arr.Append( commandId ); + _LIT( KOfferCommandListLOverload, "OfferCommandListL overload tested" ); + TRAP( res, buttonGroupContainer4->OfferCommandListL( arr ) ); + AssertTrueL( ETrue, KOfferCommandListLOverload ); + arr.Close(); + + TInt countForCleanupCommandPop = 1; + buttonGroupContainer4->CleanupCommandPop( countForCleanupCommandPop ); + _LIT( KCleanupCommandPop, "CleanupCommandPop test" ); + AssertTrueL( ETrue, KCleanupCommandPop ); + + TInt maxCommands = buttonGroupContainer4->MaxCommands(); + _LIT( KMaxCommands, "MaxCommands test" ); + AssertTrueL( ETrue, KMaxCommands ); + + TInt buttonCount = buttonGroupContainer4->ButtonCount(); + _LIT( KButtonCount, "ButtonCount test" ); + AssertTrueL( ETrue, KButtonCount ); + + TBool dimmed = ETrue; + buttonGroupContainer4->DimCommand( commandId, dimmed ); + _LIT( KDimCommand, "DimCommand test" ); + AssertTrueL( ETrue, KDimCommand ); + buttonGroupContainer4->DimCommand( commandId, EFalse ); + + TBool isCommandDimmed = buttonGroupContainer4->IsCommandDimmed( commandId ); + _LIT( KIsCommandDimmed, "IsCommandDimmed test" ); + AssertTrueL( ETrue, KIsCommandDimmed ); + + TBool visible = ETrue; + buttonGroupContainer4->MakeCommandVisible( commandId, visible ); + _LIT( KMakeCommandVisible, "MakeCommandVisible test" ); + AssertTrueL( ETrue, KMakeCommandVisible ); + + TBool isCommandVisible = buttonGroupContainer4->IsCommandVisible( commandId ); + _LIT( KIsCommandVisible, "IsCommandVisible test" ); + AssertTrueL( ETrue, KIsCommandVisible ); + + buttonGroupContainer4->AnimateCommand( commandId ); + _LIT( KAnimateCommand1, "AnimateCommand test" ); + AssertTrueL( ETrue, KAnimateCommand1 ); + + CEikButtonGroupContainer::TLocation location = + buttonGroupContainer4->Location(); + _LIT( KLocation, "Location test" ); + AssertTrueL( ETrue, KLocation ); + +#ifndef _DEBUG + CEikCommandButton* commandButton1 = + buttonGroupContainer4->CommandButtonOrNull( commandId ); + CleanupStack::PushL( commandButton1 ); + _LIT( KCommandButtonOrNull, "CommandButtonOrNull test" ); + AssertTrueL( ETrue, KCommandButtonOrNull ); + CleanupStack::PopAndDestroy( commandButton1 ); +#endif + + TRect rect = iContainer->Rect(); + buttonGroupContainer4->SetBoundingRect( rect ); + _LIT( KSetBoundingRect, "SetBoundingRect test" ); + AssertTrueL( ETrue, KSetBoundingRect ); + + buttonGroupContainer4->ReduceRect( rect ); + _LIT( KReduceRect, "ReduceRect test" ); + AssertTrueL( ETrue, KReduceRect ); + + CCoeControl* coeControl = + buttonGroupContainer4->ControlOrNull( commandId ); + _LIT( KControlOrNull, "ControlOrNull test" ); + AssertTrueL( ETrue, KControlOrNull ); + +#ifndef _DEBUG + CEikCommandButton* commandbutton2 = + buttonGroupContainer4->ButtonById( commandId ); + _LIT( KButtonById, "ButtonById test" ); + AssertTrueL( ETrue, KButtonById ); +#endif + + TInt keyId = 1; + buttonGroupContainer4->UpdateHotKey( commandId, + CEikButtonGroupContainer::EShowHotKey, keyId); + _LIT( KUpdateHotKey, "UpdateHotKey test" ); + AssertTrueL( ETrue, KUpdateHotKey ); + + TInt pos = 1; + buttonGroupContainer4->UpdateCommandObserverL( pos, commandObserver ); + _LIT( KUpdateCommandObserverL, "UpdateCommandObserverL test" ); + AssertTrueL( ETrue, KUpdateCommandObserverL ); + + buttonGroupContainer4->RemoveCommandObserver( pos ); + _LIT( KRemoveCommandObserver, "RemoveCommandObserver test" ); + AssertTrueL( ETrue, KRemoveCommandObserver ); + + TBool delayActivation = buttonGroupContainer4->DelayActivation(); + _LIT( KDelayActivation, "DelayActivation test" ); + AssertTrueL( ETrue, KDelayActivation ); + + TSize minimumSize1 = buttonGroupContainer4->MinimumSize(); + _LIT( KMinimumSize1, "MinimumSize test" ); + AssertTrueL( ETrue, KMinimumSize1 ); + + TKeyEvent keyEvent1 = { EKeyPause, EStdKeySpace, 0, 0 }; + TKeyResponse keyresponse = + buttonGroupContainer4->OfferKeyEventL( keyEvent1, EEventKey ); + _LIT( KOfferKeyEventL1, "OfferKeyEventL test" ); + AssertTrueL( ETrue, KOfferKeyEventL1 ); + + RFs& tempServer = iEnv->FsSession(); + tempServer.Delete( KStreamName ); + RFileWriteStream fWrite; + User::LeaveIfError( fWrite.Create( tempServer, + KStreamName, EFileWrite ) ); + CleanupClosePushL( fWrite ); + buttonGroupContainer4->WriteInternalStateL( fWrite ); + CleanupStack::PopAndDestroy( &fWrite ); + tempServer.Delete( KStreamName ); + _LIT( KWriteInternalStateL1, "WriteInternalStateLtest test" ); + AssertTrueL( ETrue, KWriteInternalStateL1); + + buttonGroupContainer4->Reserved_MtsmPosition(); + _LIT( KReserved_MtsmPosition, "Reserved_MtsmPosition" ); + AssertTrueL( ETrue, KReserved_MtsmPosition ); + + buttonGroupContainer4->Reserved_MtsmObject(); + _LIT( KReserved_MtsmObject, "Reserved_MtsmObject test" ); + AssertTrueL( ETrue, KReserved_MtsmObject ); + + TBool isCommandInGroup = buttonGroupContainer4->IsCommandInGroup( commandId ); + _LIT( KIsCommandInGroup, "IsCommandInGroup test" ); + AssertTrueL( ETrue, KIsCommandInGroup ); + + buttonGroupContainer4->ReplaceCommand( commandId, resourceIdForCba ); + _LIT( KReplaceCommand, "ReplaceCommand test" ); + AssertTrueL( ETrue, KReplaceCommand ); + } + +// -------------------------------------------------------------------------- +// TBCTestCommandObserver::ProcessCommandL +// --------------------------------------------------------------------------- +// +void TBCTestCommandObserver::ProcessCommandL( TInt ) + { + } + +// --------------------------------------------------------------------------- +// CBCTestButtonsCase::TestEikButbAndEikCbaL +// --------------------------------------------------------------------------- +// +void CBCTestButtonsCase::TestEikButbAndEikCbaL() + { + // Test some API for class TEikButtonCoordinator + TEikButtonCoordinator coordinator; + _LIT( KTEikButtonCoordinator, "TEikButtonCoordinator test" ); + AssertTrueL( ETrue, KTEikButtonCoordinator ); + + CEikButtonBase* chosenButton = new( ELeave ) CEikButtonBase(); + CleanupStack::PushL( chosenButton ); + coordinator.SetChosenButton( chosenButton ); + _LIT( KSetChosenButton, "SetChosenButton test" ); + AssertTrueL( ETrue, KSetChosenButton ); + CleanupStack::PopAndDestroy( chosenButton ); + } + +// --------------------------------------------------------------------------- +// CBCTestButtonsCase::SetupCommandBtnL +// --------------------------------------------------------------------------- +// +CEikCommandButton* CBCTestButtonsCase::SetupCommandBtnL() + { + //1. just new + CEikCommandButton* commandButton = new( ELeave )CEikCommandButton(); + CleanupStack::PushL( commandButton ); + + //2. construct from res + TResourceReader reader1; + iEnv->CreateResourceReaderLC( reader1, R_BCTESTBUTTONS_CMBUT ); + commandButton->ConstructFromResourceL( reader1 ); + _LIT( KConstructFromResourceL1, "ConstructFromResourceL test" ); + AssertTrueL( ETrue, KConstructFromResourceL1 ); + CleanupStack::PopAndDestroy(); //reader1 + + return commandButton; + } + +// --------------------------------------------------------------------------- +// CBCTestButtonsCase::TeardownCommandBtnL +// --------------------------------------------------------------------------- +// +void CBCTestButtonsCase::TeardownCommandBtnL(CEikCommandButton* aBtn) + { + CleanupStack::PopAndDestroy( aBtn ); + _LIT( KDesCommandButton, "~CommandButton() test" ); + AssertTrueL( ETrue, KDesCommandButton ); + } + +// --------------------------------------------------------------------------- +// CBCTestButtonsCase::TestSetBtnLayoutL +// --------------------------------------------------------------------------- +// +void CBCTestButtonsCase::TestSetBtnLayoutL() + { + CEikCommandButton* commandButton = SetupCommandBtnL(); + + commandButton->SetButtonLayout( CEikCommandButton::ETextRightPictureLeft ); + _LIT( KSetButtonLayout, "TSetButtonLayout test" ); + AssertTrueL( ETrue, KSetButtonLayout); + + TeardownCommandBtnL(commandButton); + } + +// --------------------------------------------------------------------------- +// CBCTestButtonsCase::TestExcessSpace +// --------------------------------------------------------------------------- +// +void CBCTestButtonsCase::TestExcessSpace() + { + CEikCommandButton* commandButton = SetupCommandBtnL(); + + commandButton->SetExcessSpace( CEikCommandButton::EShare ); + _LIT( KSetExcessSpace, "SetExcessSpace test" ); + AssertTrueL( ETrue, KSetExcessSpace ); + + TeardownCommandBtnL(commandButton); + } + +// --------------------------------------------------------------------------- +// CBCTestButtonsCase::TestStuff +// --------------------------------------------------------------------------- +// +void CBCTestButtonsCase::TestStuff() + { + CEikCommandButton* commandButton = SetupCommandBtnL(); + + _LIT( KText, "xxxxxxxxx" ); + commandButton->SetTextL( KText ); + _LIT( KSetTextL1, "SetTextL test" ); + AssertTrueL( ETrue, KSetTextL1 ); + + CEikLabel* label = commandButton->Label(); + _LIT( KLabel1, "Label test" ); + AssertTrueL( ETrue, KLabel1 ); + + commandButton->SetDisplayContent( CEikCommandButton::ETextOnly ); + _LIT( KSetDisplayContent, "SetDisplayContent test" ); + AssertTrueL( ETrue, KSetDisplayContent ); + + TeardownCommandBtnL(commandButton); + } + +// --------------------------------------------------------------------------- +// CBCTestButtonsCase::TestImgBtnL() +// --------------------------------------------------------------------------- +// +void CBCTestButtonsCase::TestImgBtnL() + { + CEikCommandButton* commandButton = SetupCommandBtnL(); + + _LIT( KButtonIconFile1, "z:\\resource\\apps\\BCTestButtons.mbm" ); + TInt normal1 = 1; + CFbsBitmap * normalBitmap1 = AknIconUtils::CreateIconL( KButtonIconFile1, normal1 ); + CleanupStack::PushL( normalBitmap1 ); + + commandButton->SetPictureL( normalBitmap1, NULL ); + _LIT( KSetPictureL1, "SetPictureL test" ); + AssertTrueL( ETrue, KSetPictureL1 ); + + CEikImage* image = commandButton->Picture(); + _LIT( KPicture, "Picture test" ); + AssertTrueL( ETrue, KPicture ); + + CleanupStack::Pop(normalBitmap1); + + TeardownCommandBtnL(commandButton); + } + +// --------------------------------------------------------------------------- +// CBCTestButtonsCase::TestStackRelatedL +// --------------------------------------------------------------------------- +// +void CBCTestButtonsCase::TestStackRelatedL() + { + // stack realated have issues + CEikCommandButton* commandButton = SetupCommandBtnL(); + + _LIT( KButtonIconFile2, "z:\\resource\\apps\\BCTestButtons.mbm" ); + TInt normal2 = 1; + CFbsBitmap * normalBitmap2 = AknIconUtils::CreateIconL( KButtonIconFile2, normal2 ); + CleanupStack::PushL( normalBitmap2 ); + + TInt commandId2 = EProgCmdAutoTest; + TBuf<10> buf2 = _L( "xxxxxxx" ); + commandButton->AddCommandToStackL( commandId2, &buf2, normalBitmap2, normalBitmap2 ); + _LIT( KAddCommandToStackL, "AddCommandToStackL test" ); + AssertTrueL( ETrue, KAddCommandToStackL ); + + CleanupStack::Pop( normalBitmap2 ); + + TBool removeCommandFromStack = commandButton->RemoveCommandFromStack( R_BCTESTBUTTONS_CBA_OPTIONS_NEXT ); + _LIT( KRemoveCommandFromStack, "RemoveCommandFromStack test" ); + AssertTrueL( ETrue, KRemoveCommandFromStack ); + + TInt popCommandFromStack = commandButton->PopCommandFromStack(); + _LIT( KPopCommandFromStack, "PopCommandFromStack test" ); + AssertTrueL( ETrue, KPopCommandFromStack ); + + TeardownCommandBtnL(commandButton); + } + +// --------------------------------------------------------------------------- +// CBCTestButtonsCase::TestCommandButtonBaseL +// --------------------------------------------------------------------------- +// +void CBCTestButtonsCase::TestCommandButtonBaseL() + { + CEikCommandButton* commandButton = SetupCommandBtnL(); + + commandButton->CCoeControl::DrawNow(); + _LIT( KDraw, "Draw for CEikCommandButtonBase test" ); + AssertTrueL( ETrue, KDraw ); + + commandButton->CEikCommandButtonBase::LayoutComponents(); + _LIT( KLayoutComponents, + "LayoutComponents for CEikCommandButtonBase test" ); + AssertTrueL( ETrue, KLayoutComponents ); + + commandButton->CEikCommandButtonBase::SetDefault( ETrue ); + _LIT( KSetDefault, "SetDefault for CEikCommandButtonBase test" ); + AssertTrueL( ETrue, KSetDefault ); + + /*iCmdBtnBase = new( ELeave )CBCTestCmdBtnBase(); + iContainer->SetControl( iCmdBtnBase ); + _LIT( KDraw, "Draw for CEikCommandButtonBase test" ); + AssertTrueL( ETrue, KDraw );*/ + + commandButton->CEikCommandButtonBase::FocusChanged( ENoDrawNow ); + _LIT( KFocusChanged, "FocusChanged for CEikCommandButtonBase test" ); + AssertTrueL( ETrue, KFocusChanged ); + + CArrayFixFlat* colorUseList2 = + new( ELeave ) CArrayFixFlat( 1 ); + TCoeColorUse colorUse2; + colorUseList2->AppendL( colorUse2 ); + commandButton->CEikCommandButtonBase::GetColorUseListL( *colorUseList2 ); + CleanupStack::PushL( colorUseList2 ); + _LIT( KGetColorUseListL2, + "GetColorUseListL for CEikCommandButtonBase test" ); + AssertTrueL( ETrue, KGetColorUseListL2 ); + CleanupStack::PopAndDestroy( colorUseList2 ); + + TKeyEvent keyEvent3 = { EKeyPause, EStdKeySpace, 0, 0 }; + TKeyResponse keyResponse = + commandButton->CEikCommandButtonBase::OfferKeyEventL( + keyEvent3, EEventNull ); + _LIT( KOfferKeyEventL3, "OfferKeyEventL for CEikCommandButtonBase test" ); + AssertTrueL( ETrue, KOfferKeyEventL3 ); + + commandButton->CEikCommandButtonBase::ActivateL(); + _LIT( KActivateL2, "ActivateL for CEikCommandButtonBase test" ); + AssertTrueL( ETrue, KActivateL2 ); + + commandButton->CEikCommandButtonBase::UpdateComponentAlignment(); + _LIT( KUpdateComponentAlignment, + "UpdateComponentAlignment for CEikCommandButtonBase test" ); + AssertTrueL( ETrue, KUpdateComponentAlignment ); + + + TeardownCommandBtnL(commandButton); + } + +// --------------------------------------------------------------------------- +// CBCTestButtonsCase::TestButtonBaseL +// --------------------------------------------------------------------------- +// +void CBCTestButtonsCase::TestButtonBaseL() + { + CEikCommandButton* commandButton = SetupCommandBtnL(); + + CBCTestBtnBase* btnBase = new( ELeave )CBCTestBtnBase(); + CleanupStack::PushL( btnBase ); + + CEikButtonBase* buttonBase = new( ELeave ) CEikButtonBase(); + CleanupStack::PushL( buttonBase ); + btnBase->CEikButtonBase::CopyDrawStateTo( buttonBase ); + CleanupStack::PopAndDestroy( buttonBase ); + _LIT( KCopyDrawStateTo, "CopyDrawStateTo for CEikButtonBase test" ); + AssertTrueL( ETrue, KCopyDrawStateTo ); + + TBool isPressed = btnBase->CEikButtonBase::IsPressed(); + _LIT( KIsPressed, "IsPressed for CEikButtonBase test" ); + AssertTrueL( ETrue, KIsPressed ); + + btnBase->CEikButtonBase::SetAllowTristate(); + _LIT( KSetAllowTristate, "SetAllowTristate for CEikButtonBase test" ); + AssertTrueL( ETrue, KSetAllowTristate ); + + CleanupStack::PopAndDestroy( btnBase ); + + CArrayFixFlat* colorUseList3 = + new( ELeave ) CArrayFixFlat( 1 ); + TCoeColorUse colorUse3; + colorUseList3->AppendL( colorUse3 ); + commandButton->CEikButtonBase::GetColorUseListL( *colorUseList3 ); + CleanupStack::PushL( colorUseList3 ); + _LIT( KGetColorUseListL3, + "GetColorUseListL for CEikButtonBase test" ); + AssertTrueL( ETrue, KGetColorUseListL3 ); + CleanupStack::PopAndDestroy( colorUseList3 ); + + TCoeInputCapabilities capabilities = + commandButton->CEikButtonBase::InputCapabilities(); + _LIT( KInputCapabilities, "InputCapabilities for CEikButtonBase test" ); + AssertTrueL( ETrue, KInputCapabilities ); + + TKeyEvent keyEvent4 = { EKeyPause, EStdKeySpace, 0, 0 }; + TKeyResponse keyResponse4 = + commandButton->CEikButtonBase::OfferKeyEventL( + keyEvent4, EEventNull ); + _LIT( KOfferKeyEventL4, "OfferKeyEventL for CEikButtonBase test" ); + AssertTrueL( ETrue, KOfferKeyEventL4 ); + + TEikButtonCoordinator butCoord; + commandButton->CEikButtonBase::SetCoordinator( &butCoord ); + _LIT( KSetCoordinator, "SetCoordinator for CEikButtonBase test" ); + AssertTrueL( ETrue, KSetCoordinator ); + + commandButton->CEikButtonBase::SetIgnoreNextPointerUp(); + _LIT( KSetIgnoreNextPointerUp, "SetIgnoreNextPointerUp for CEikButtonBase test" ); + AssertTrueL( ETrue, KSetIgnoreNextPointerUp ); + + TeardownCommandBtnL(commandButton); + } +// --------------------------------------------------------------------------- +// CBCTestButtonsCase::TestCEikCommandButton +// --------------------------------------------------------------------------- +// +void CBCTestButtonsCase::TestCEikCommandButtonL() + { + // Test some API for class CEikCommandButtonBase + TestSetBtnLayoutL(); + TestExcessSpace(); + TestStuff(); + TestImgBtnL(); + TestCommandButtonBaseL(); + TestButtonBaseL(); + + CEikCommandButton* commandButton = SetupCommandBtnL(); + + _LIT( KButtonIconFile1, "z:\\resource\\apps\\BCTestButtons.mbm" ); + TInt normal1 = 1; + CFbsBitmap * normalBitmap1 = AknIconUtils::CreateIconL( KButtonIconFile1, normal1 ); + CleanupStack::PushL( normalBitmap1 ); + + TInt commandId = R_BCTESTBUTTONS_CBA_OPTIONS_NEXT; + TBuf<10> buf = _L( "xxxxxxx" ); + commandButton->SetCommandL( commandId, &buf, normalBitmap1, normalBitmap1 ); + _LIT( KSetCommandL, "SetCommandL test" ); + AssertTrueL( ETrue, KSetCommandL ); + + CleanupStack::Pop(normalBitmap1); + + TPointerEvent pointerEvent1; + pointerEvent1.iType = TPointerEvent::EButton1Up; + commandButton->HandlePointerEventL( pointerEvent1 ); + _LIT( KHandlePointerEventL1, "HandlePointerEventL test" ); + AssertTrueL( ETrue, KHandlePointerEventL1 ); + + commandButton->UpdateComponentAlignment(); + _LIT( KUpdateComponentAlignment, "UpdateComponentAlignment test" ); + AssertTrueL( ETrue, KUpdateComponentAlignment ); + + commandButton->SetPictureFromFileL( AknIconUtils::AvkonIconFileName(), + EMbmAvkonQgn_indi_marked_add, EMbmAvkonQgn_indi_marked_add_mask ); + _LIT( KSetPictureFromFileL1, "SetPictureFromFileL test" ); + AssertTrueL( ETrue, KSetPictureFromFileL1 ); + + TestStackRelatedL(); + + TeardownCommandBtnL(commandButton); + } + +CEikTwoPictureCommandButton* CBCTestButtonsCase::SetupTwoPictureCmdL() + { + //1. just new + CEikTwoPictureCommandButton* twoPictureCommandButton = + new( ELeave ) CEikTwoPictureCommandButton(); + CleanupStack::PushL( twoPictureCommandButton ); + _LIT( KCEikTwoPictureCommandButton, "CEikTwoPictureCommandButton() test" ); + AssertTrueL( ETrue, KCEikTwoPictureCommandButton ); + + //2. construct from res + TResourceReader reader2; + iEnv->CreateResourceReaderLC( reader2, R_BCTESTBUTTONS_PICMBUT ); + twoPictureCommandButton->ConstructFromResourceL( reader2 ); + _LIT( KConstructFromResourceL2, + "ConstructFromResourceL For CEikTwoPictureCommandButton test" ); + AssertTrueL( ETrue, KConstructFromResourceL2 ); + CleanupStack::PopAndDestroy(); //reader2 + + return twoPictureCommandButton; + } + +void CBCTestButtonsCase::TeardownTwoPictureCmdL(CEikTwoPictureCommandButton* aBtn) + { + CleanupStack::PopAndDestroy( aBtn ); + _LIT( KDesCEikTwoPictureCommandButton, "~CEikTwoPictureCommandButton() test" ); + AssertTrueL( ETrue, KDesCEikTwoPictureCommandButton ); + } + +void CBCTestButtonsCase::TestSetTwoPicturesL() + { + CEikTwoPictureCommandButton* twoPictureCommandButton = SetupTwoPictureCmdL(); + + _LIT( KButtonIconFile2, "z:\\resource\\apps\\BCTestButtons.mbm" ); + TInt normal2 = 1; + CFbsBitmap * normalBitmap2 = AknIconUtils::CreateIconL( KButtonIconFile2, normal2 ); + CleanupStack::PushL( normalBitmap2 ); + + twoPictureCommandButton->SetTwoPicturesL( normalBitmap2, NULL, NULL, NULL); + _LIT( KSetTwoPicturesL, "SetTwoPicturesL test" ); + AssertTrueL( ETrue, KSetTwoPicturesL ); + + CleanupStack::Pop(normalBitmap2); + TeardownTwoPictureCmdL( twoPictureCommandButton ); + } + +// --------------------------------------------------------------------------- +// CBCTestButtonsCase::TestCEikTwoPictureCmd +// --------------------------------------------------------------------------- +// +void CBCTestButtonsCase::TestCEikTwoPictureCmdL() + { + // Test some API for class CEikTwoPictureCommandButton + CEikTwoPictureCommandButton* twoPictureCommandButton = SetupTwoPictureCmdL(); + + TestSetTwoPicturesL(); + + TBool isSecondPictureOwnedExternally = + twoPictureCommandButton->IsSecondPictureOwnedExternally(); + _LIT( KIsSecondPictureOwnedExternally, "IsSecondPictureOwnedExternally test" ); + AssertTrueL( ETrue, KIsSecondPictureOwnedExternally ); + + CEikImage* eikImage = twoPictureCommandButton->Picture(); + _LIT( KPicture2, "Picture test" ); + AssertTrueL( ETrue, KPicture2 ); + + _LIT( KText2,"xxxxxxxxxx" ); + twoPictureCommandButton->SetTextL( KText2 ); + _LIT( KSetTextL2, "SetTextL For CEikTwoPictureCommandButton test" ); + AssertTrueL( ETrue, KSetTextL2 ); + + _LIT( KButtonIconFile3, "z:\\resource\\apps\\BCTestButtons.mbm" ); + TInt normal3 = 1; + CFbsBitmap * normalBitmap3 = AknIconUtils::CreateIconL( KButtonIconFile3, normal3 ); + CleanupStack::PushL( normalBitmap3 ); + + twoPictureCommandButton->SetSecondPicture( normalBitmap3, NULL ); + _LIT( KSetSecondPicture3, "SetSecondPicture test" ); + AssertTrueL( ETrue, KSetSecondPicture3 ); + + CleanupStack::Pop(normalBitmap3); + + twoPictureCommandButton->SetSecondPictureOwnedExternally( EFalse ); + _LIT( KSetSecondPictureOwnedExternally, "SetSecondPictureOwnedExternally test" ); + AssertTrueL( ETrue, KSetSecondPictureOwnedExternally ); + + twoPictureCommandButton->ActivateL(); + _LIT( KActivateL1, "ActivateL test" ); + AssertTrueL( ETrue, KActivateL1 ); + + TPointerEvent pointerEvent2; + pointerEvent2.iType = TPointerEvent::EButton1Up; + twoPictureCommandButton->HandlePointerEventL( pointerEvent2 ); + _LIT( KHandlePointerEventL2, + "HandlePointerEventL For CEikTwoPictureCommandButton test" ); + AssertTrueL( ETrue, KHandlePointerEventL2 ); + + CBCTestTwoPicture* twoPicture = new( ELeave ) CBCTestTwoPicture(); + CleanupStack::PushL( twoPicture ); + TResourceReader reader; + iEnv->CreateResourceReaderLC( reader, R_BCTESTBUTTONS_PICMBUT ); + twoPicture->ConstructFromResourceL( reader ); + CleanupStack::PopAndDestroy(); // reader + + _LIT( KStreamName2, "c:\\BCTestLog\\buttontest.txt" ); + RFs& tempServer2 = iEnv->FsSession(); + tempServer2.Delete( KStreamName2 ); + RFileWriteStream fWrite2; + User::LeaveIfError( fWrite2.Create( tempServer2, + KStreamName2, EFileWrite ) ); + CleanupClosePushL( fWrite2 ); + twoPicture->WriteInternalStateL( fWrite2 ); + CleanupStack::PopAndDestroy( &fWrite2 ); + CleanupStack::PopAndDestroy( twoPicture ); + _LIT( KWriteInternalStateL2, "WriteInternalStateL test" ); + AssertTrueL( ETrue, KWriteInternalStateL2 ); + + TeardownTwoPictureCmdL( twoPictureCommandButton ); + + // Test private APIs + CCoeControl* test = new( ELeave ) CEikTwoPictureCommandButton(); + CleanupStack::PushL( test ); + test->DrawNow(); + _LIT( KDraw, "Draw for CEikTwoPictureCommandButton test" ); + AssertTrueL( ETrue, KDraw ); + CleanupStack::PopAndDestroy( test ); + + + } + +CEikInverterCommandButton* CBCTestButtonsCase::SetupInverterCmdL() + { + //1. just new + CEikInverterCommandButton* inverterCommandButton = new( ELeave ) CEikInverterCommandButton(); + CleanupStack::PushL( inverterCommandButton ); + _LIT( KCEikInverterCommandButton, "CEikInverterCommandButton test" ); + AssertTrueL( ETrue, KCEikInverterCommandButton ); + + return inverterCommandButton; + } + +void CBCTestButtonsCase::TeardownInverterCmdL(CEikInverterCommandButton* aBtn) + + { + CleanupStack::PopAndDestroy( aBtn ); + _LIT( KDesCEikInverterCommandButton, "~CEikInverterCommandButton() test" ); + AssertTrueL( ETrue, KDesCEikInverterCommandButton ); + } + +// --------------------------------------------------------------------------- +// CBCTestButtonsCase::TestCEikInverterCmdL +// --------------------------------------------------------------------------- +// +void CBCTestButtonsCase::TestCEikInverterCmdL() + { + // Test some API for class CEikInverterCommandButton + CEikInverterCommandButton* inverterCommandButton = SetupInverterCmdL(); + + TPointerEvent pointerEvent3; + pointerEvent3.iType = TPointerEvent::EButton1Up; + inverterCommandButton->HandlePointerEventL( pointerEvent3 ); + _LIT( KHandlePointerEventL3, "HandlePointerEventL For CEikInverterCommandButton test" ); + AssertTrueL( ETrue, KHandlePointerEventL3 ); + + CBCTestInverterCmdButton* inverterBtn = new( ELeave ) CBCTestInverterCmdButton(); + CleanupStack::PushL( inverterBtn ); + TResourceReader reader; + iEnv->CreateResourceReaderLC( reader, R_BCTESTBUTTONS_CMBUT ); + inverterBtn->ConstructFromResourceL( reader ); + CleanupStack::PopAndDestroy(); // reader + + _LIT( KStreamName2, "c:\\BCTestLog\\buttontest.txt" ); + RFs& tempServer2 = iEnv->FsSession(); + tempServer2.Delete( KStreamName2 ); + RFileWriteStream fWrite2; + User::LeaveIfError( fWrite2.Create( tempServer2, + KStreamName2, EFileWrite ) ); + CleanupClosePushL( fWrite2 ); + inverterBtn->WriteInternalStateL( fWrite2 ); + CleanupStack::PopAndDestroy( &fWrite2 ); + //WriteInternalStateL(RWriteStream& aWriteStream) + CleanupStack::PopAndDestroy( inverterBtn ); + _LIT( KWriteInternalStateL3, "WriteInternalStateL test" ); + AssertTrueL( ETrue, KWriteInternalStateL3 ); + + TeardownInverterCmdL( inverterCommandButton ); + } + +CEikTextButton* CBCTestButtonsCase::SetupTextBtnL() + { + //1. just new + CEikTextButton* textButton = new( ELeave ) CEikTextButton(); + CleanupStack::PushL( textButton ); + _LIT( KCEikTextButton, "CEikTextButton test" ); + AssertTrueL( ETrue, KCEikTextButton ); + //2. construct from res + TResourceReader reader3; + iEnv->CreateResourceReaderLC( reader3, R_BCTESTBUTTONS_TXTBUT ); + textButton->ConstructFromResourceL( reader3 ); + _LIT( KConstructFromResourceL3, "ConstructFromResourceL For CEikTextButton test" ); + AssertTrueL( ETrue, KConstructFromResourceL3 ); + CleanupStack::PopAndDestroy(); //reader3 + return textButton; + } + +void CBCTestButtonsCase::TeardownTextBtnL( CEikTextButton* aBtn ) + + { + CleanupStack::PopAndDestroy( aBtn ); + _LIT( KDesCEikTextButton, "~CEikTextButton() test" ); + AssertTrueL( ETrue, KDesCEikTextButton ); + } + +// --------------------------------------------------------------------------- +// CBCTestButtonsCase::TestCEikTextBtnL() +// --------------------------------------------------------------------------- +// +void CBCTestButtonsCase::TestCEikTextBtnL() + { + // Test some API for class CEikTextButton + CEikTextButton* textButton = SetupTextBtnL(); + + _LIT( KText3, "xxxxxxxxxxx" ); + textButton->SetTextL( KText3, CEikCommandButtonBase::EFirst ); + _LIT( KSetTextL3, "SetTextL For CEikTextButton test" ); + AssertTrueL( ETrue, KSetTextL3 ); + + CEikLabel* label2 = textButton->Label( CEikCommandButtonBase::EFirst ); + _LIT( KLabel2, "Label test" ); + AssertTrueL( ETrue, KLabel2 ); + + TPointerEvent pointerEvent4; + pointerEvent4.iType = TPointerEvent::EButton1Up; + textButton->HandlePointerEventL( pointerEvent4 ); + _LIT( KHandlePointerEventL4, "HandlePointerEventL For CEikTextButton test" ); + AssertTrueL( ETrue, KHandlePointerEventL4 ); + + TeardownTextBtnL( textButton ); + } + +CEikBitmapButton* CBCTestButtonsCase::SetupBitmapBtnL() + { + //1. just new + CEikBitmapButton* bitmapButton = new( ELeave ) CEikBitmapButton(); + CleanupStack::PushL( bitmapButton ); + _LIT( KCEikBitmapButton, "CEikBitmapButton test" ); + AssertTrueL( ETrue, KCEikBitmapButton ); + //2. construct from res + TResourceReader reader4; + iEnv->CreateResourceReaderLC( reader4, R_BCTESTBUTTONS_BMPBUT ); + bitmapButton->ConstructFromResourceL( reader4 ); + _LIT( KConstructFromResourceL4, "ConstructFromResourceL For CEikBitmapButton test" ); + AssertTrueL( ETrue, KConstructFromResourceL4 ); + CleanupStack::PopAndDestroy();//reader4 + + return bitmapButton; + } +void CBCTestButtonsCase::TeardownBitmapBtnL( CEikBitmapButton* aBtn ) + { + CleanupStack::PopAndDestroy( aBtn ); + _LIT( KDesCEikBitmapButton, "~CEikBitmapButton test" ); + AssertTrueL( ETrue, KDesCEikBitmapButton ); + } +// --------------------------------------------------------------------------- +// CBCTestButtonsCase::TestCEikBitmapBtnL +// --------------------------------------------------------------------------- +// +void CBCTestButtonsCase::TestCEikBitmapBtnL() + { + CEikBitmapButton* bitmapButton = SetupBitmapBtnL(); + + // Test some API for class CEikBitmapButton + _LIT( KButtonIconFile3, "z:\\resource\\apps\\BCTestButtons.mbm" ); + TInt normal3 = 1; + CFbsBitmap * normalBitmap3 = AknIconUtils::CreateIconL( + KButtonIconFile3, normal3 ); + CleanupStack::PushL( normalBitmap3 ); + + bitmapButton->SetPictureL( normalBitmap3, NULL, + CEikCommandButtonBase::EFirst ); + _LIT( KSetPictureL3, "SetPictureL for CEikBitmapButton test" ); + AssertTrueL( ETrue, KSetPictureL3 ); + + CleanupStack::Pop( normalBitmap3 ); + + bitmapButton->SetPictureFromFileL( KButtonIconFile3, + EMbmBctestbuttonsSampleicon, EMbmBctestbuttonsSampleiconmask, + CEikCommandButtonBase::ESecond ); + _LIT( KBitmapBtn1, "CEikBitmapButton::SetPictureFromFileL" ); + AssertTrueL( ETrue, KBitmapBtn1 ); + + CEikImage* picture = bitmapButton->Picture( CEikCommandButtonBase::EFirst ); + _LIT( KPicture1, "Picture For CEikTextButton test" ); + AssertTrueL( ETrue, KPicture1 ); + + + TPointerEvent pointerEvent5; + pointerEvent5.iType = TPointerEvent::EButton1Up; + bitmapButton->HandlePointerEventL( pointerEvent5 ); + _LIT( KHandlePointerEventL5, "HandlePointerEventL For CEikBitmapButton test" ); + AssertTrueL( ETrue, KHandlePointerEventL5 ); + + TeardownBitmapBtnL( bitmapButton ); + } + +CEikLabeledButton* CBCTestButtonsCase::SetupLabeledBtnLC() + { + //1. just new + CEikLabeledButton* labeledButton = new( ELeave ) CEikLabeledButton(); + CleanupStack::PushL( labeledButton ); + _LIT( KCEikLabeledButton, "CEikLabeledButton test" ); + AssertTrueL( ETrue, KCEikLabeledButton ); + + //2. construct from res + TInt hotKeyCode = 1; + TInt flags = 1; + CEikCommandButton* commandButton = new( ELeave )CEikCommandButton(); + CleanupStack::PushL( commandButton ); + labeledButton->ConstructL( commandButton, hotKeyCode, flags ); + _LIT( KConstructL, "ConstructL For CEikLabelButton test" ); + AssertTrueL( ETrue, KConstructL ); + CleanupStack::Pop( commandButton ); + CleanupStack::PopAndDestroy( labeledButton ); + + labeledButton = new( ELeave ) CEikLabeledButton(); + CleanupStack::PushL( labeledButton ); + TResourceReader reader5; + iEnv->CreateResourceReaderLC( reader5, R_BCTESTBUTTONS_LBBUT ); + labeledButton->ConstructFromResourceL( reader5 ); + _LIT( KConstructFromResourceL5, "ConstructFromResourceL For CEikLabeledButton test" ); + AssertTrueL( ETrue, KConstructFromResourceL5 ); + CleanupStack::PopAndDestroy(); //reader5 + + return labeledButton; + } + +void CBCTestButtonsCase::TeardownLabeledBtnL( CEikLabeledButton* aBtn ) + { + CleanupStack::PopAndDestroy( aBtn ); + _LIT( KDesCEikLabeledButton, "~CEikLabeledButton test" ); + AssertTrueL( ETrue, KDesCEikLabeledButton ); + } + +// --------------------------------------------------------------------------- +// CBCTestButtonsCase::TestCEikLabeledBtnL +// --------------------------------------------------------------------------- +// +void CBCTestButtonsCase::TestCEikLabeledBtnL() + { + // Test some API for class CEikLabeledButton + CEikLabeledButton* labeledButton = SetupLabeledBtnLC(); + + CEikCommandButtonBase* commandButtonBase = labeledButton->Button(); + _LIT( KButton, "Button test" ); + AssertTrueL( ETrue, KButton ); + + CEikLabel* label3 = labeledButton->Label(); + _LIT( KLabel3, "Label For CEikLabeledButton test" ); + AssertTrueL( ETrue, KLabel3 ); + + TInt hotKeyCode2 = labeledButton->HotKeyCode(); + _LIT( KHotKeyCode2, "HotKeyCode For CEikLabeledButton test" ); + AssertTrueL( ETrue, KHotKeyCode2 ); + + TBool showsHotKey = labeledButton->ShowsHotKey(); + _LIT( KShowsHotKey, "ShowsHotKey test" ); + AssertTrueL( ETrue, KShowsHotKey ); + + TBool plainHotKey = labeledButton->PlainHotKey(); + _LIT( KPlainHotKey, "PlainHotKey test" ); + AssertTrueL( ETrue, KPlainHotKey ); + + labeledButton->Animate(); + _LIT( KAnimate1, "Animate test" ); + AssertTrueL( ETrue, KAnimate1 ); + + labeledButton->UpdateHotKey( EAknSoftkeyOk, CEikLabeledButton::EShowHotKey ); + _LIT( KUpdateHotKey2, "UpdateHotKeytest" ); + AssertTrueL( ETrue, KUpdateHotKey2 ); + + TKeyEvent keyEvent2 = { EKeyPause, EStdKeySpace, 0, 0 }; + TKeyResponse keyResponse = labeledButton->OfferKeyEventL( keyEvent2, EEventNull ); + _LIT( KOfferKeyEventL2, "OfferKeyEventL For CeikLabeledButton test" ); + AssertTrueL( ETrue, KOfferKeyEventL2 ); + + TSize size2 = labeledButton->MinimumSize(); + _LIT( KMinimumSize2, "MinimumSize test" ); + AssertTrueL( ETrue, KMinimumSize2 ); + + labeledButton->SetContainerWindowL( *iContainer ); + _LIT( KSetContainerWindowL, "SetContainerWindowL test" ); + AssertTrueL( ETrue, KSetContainerWindowL ); + + labeledButton->SetDimmed( ETrue ); + _LIT( KSetDimmed, "SetDimmed test" ); + AssertTrueL( ETrue, KSetDimmed ); + + CArrayFixFlat* colorUseList = new( ELeave ) CArrayFixFlat( 1 ); + TCoeColorUse colorUse; + colorUseList->AppendL( colorUse ); + labeledButton->GetColorUseListL( *colorUseList ); + CleanupStack::PushL( colorUseList ); + _LIT( KGetColorUseListL, "GetColorUseListL test" ); + AssertTrueL( ETrue, KGetColorUseListL ); + CleanupStack::PopAndDestroy( colorUseList ); + + TInt type = 1; + labeledButton->HandleResourceChange( type ); + _LIT( KHandleResourceChange, "HandleResourceChange test" ); + AssertTrueL( ETrue, KHandleResourceChange ); + + TCoeInputCapabilities inputCapablilities = labeledButton->InputCapabilities(); + _LIT( KInputCapabilities, "InputCapabilities test" ); + AssertTrueL( ETrue, KInputCapabilities ); + + + TPointerEvent pointerEvent6; + pointerEvent6.iType = TPointerEvent::EButton1Up; + labeledButton->HandlePointerEventL( pointerEvent6 ); + _LIT( KHandlePointerEventL6, "HandlePointerEventL test" ); + AssertTrueL( ETrue, KHandlePointerEventL6 ); + + TeardownLabeledBtnL( labeledButton ); + } + + +// --------------------------------------------------------------------------- +// CBCTestButtonsCase::TestMnbutAndBtgpsAndBtgrpL +// --------------------------------------------------------------------------- +// +void CBCTestButtonsCase::TestMnbutAndBtgpsAndBtgrpL() + { + // Test some API for class CEikMenuButton + CBCTestMenuButton* menuButton = new( ELeave ) CBCTestMenuButton(); + CleanupStack::PushL( menuButton ); + _LIT( KCEikMenuButton, "CEikMenuButton test" ); + AssertTrueL( ETrue, KCEikMenuButton ); + + menuButton->SetContainerWindowL( *iContainer ); + + TResourceReader reader6; + iEnv->CreateResourceReaderLC( reader6, R_BCTESTBUTTONS_MNBUT ); + menuButton->ConstructFromResourceL( reader6 ); + _LIT( KConstructFromResourceL6, "ConstructFromResourceL For CEikMenuButton test" ); + AssertTrueL( ETrue, KConstructFromResourceL6 ); + CleanupStack::PopAndDestroy(); //reader6 + + menuButton->SetMenuPaneId( R_BCTESTBUTTONS_MENU ); + _LIT( KSetMenuPaneId, "SetMenuPaneId test" ); + AssertTrueL( ETrue, KSetMenuPaneId ); + + TBCTestMenuObserver menuObserver; + menuButton->LaunchPopupMenuL( &menuObserver ); + _LIT( KLaunchPopupMenuL, "LaunchPopupMenuL test" ); + AssertTrueL( ETrue, KLaunchPopupMenuL ); + + menuButton->Animate(); + _LIT( KAnimate2, "Animatet For CEikMenuButton test" ); + AssertTrueL( ETrue, KAnimate2 ); + + RFs& tempServer = iEnv->FsSession(); + tempServer.Delete( KStreamName ); + RFileWriteStream fWrite; + User::LeaveIfError( fWrite.Create( tempServer, + KStreamName, EFileWrite ) ); + CleanupClosePushL( fWrite ); + menuButton->WriteInternalStateL( fWrite ); + CleanupStack::PopAndDestroy( &fWrite ); + tempServer.Delete( KStreamName ); + _LIT( KMenuWriteInternal, "CEikMenuButton::WriteInternalStateL" ); + AssertTrueL( ETrue, KMenuWriteInternal ); + + TPointerEvent pointerEvent7; + pointerEvent7.iType = TPointerEvent::EButton1Up; + menuButton->HandlePointerEventL( pointerEvent7 ); + _LIT( KHandlePointerEventL7, "HandlePointerEventL For CEikMenuButton test" ); + AssertTrueL( ETrue, KHandlePointerEventL7 ); + + CleanupStack::PopAndDestroy( menuButton ); + _LIT( KDesCEikMenuButton, "~CEikMenuButton() test" ); + AssertTrueL( ETrue, KDesCEikMenuButton ); + + // Test some API for class CEikButtonGroupStack + TSize minimumSize3 = CEikButtonGroupStack::MinimumSize(); + _LIT( KMinimumSize, "MinimumSizetest For CEikMenuButton" ); + AssertTrueL( ETrue, KMinimumSize ); + } + +void CBCTestButtonsCase::TestCbaButtonL() + { + + _LIT( KSetButtonGroupFlags, " SetButtonGroupFlags " ); + _LIT( KSetSkinBackgroundId, " SetSkinBackgroundId " ); + _LIT( KOfferCommandListL, " OfferCommandListL( array )" ); + _LIT( KOfferCommandListResL, " OfferCommandListL( resource ) " ); + _LIT( KIsCommandInGroup, " IsCommandInGroup " ); + _LIT( KReplaceCommand, " ReplaceCommand " ); + _LIT( KHandlePointerEventL, "HandlePointerEventL" ); + + TInt resourceid = R_BCTESTBUTTONS_MENU; + TBCTestCommandObserver commandobserver; + + RWindowGroup& parentwg = iEnv->RootWin(); + TUint flags = 0; + + EikButtonGroupFactory::TCreationData creationData( + CEikButtonGroupContainer::EView, &commandobserver, + resourceid, &parentwg, flags, CEikButtonGroupContainer::EVertical ); + + TInt toolbarresid = R_BCTESTBUTTONS_TOOLBAR; + + CEikButtonGroupContainer* buttongroup1 = CEikButtonGroupContainer::NewL( + CEikButtonGroupContainer::EView, CEikButtonGroupContainer::EVertical, + &commandobserver, toolbarresid, parentwg, + CEikButtonGroupContainer::EAddToStack ); + CleanupStack::PushL( buttongroup1 ); + CleanupStack::PopAndDestroy( buttongroup1 ); + + CEikButtonGroupContainer* buttongroup = CEikButtonGroupContainer::Current(); + + CEikCba *eikcba = static_cast( buttongroup->ButtonGroup() ); + + eikcba->SetButtonGroupFlags( 0 ); + AssertTrueL( ETrue, KSetButtonGroupFlags ); + + eikcba->SetSkinBackgroundId( KAknsIIDQsnBgAreaControlIdle ); + AssertTrueL( ETrue, KSetSkinBackgroundId ); + + TInt toolbarresourceid = R_BCTESTBUTTONS_CBA_OPTIONS_NEXT; + TInt commandid = EAknSoftkeyOptions; + TInt res; + + RArray arr; + arr.Append( commandid ); + TRAP( res, eikcba->OfferCommandListL( arr ) ); + AssertTrueL( ETrue, KOfferCommandListL ); + arr.Close(); + + eikcba->IsCommandInGroup( commandid ); + AssertTrueL( ETrue, KIsCommandInGroup ); + eikcba->ReplaceCommand( commandid, toolbarresourceid ); + AssertTrueL( ETrue, KReplaceCommand ); + + TRAP( res, eikcba->OfferCommandListL( commandid ) ); + AssertTrueL( ETrue, KOfferCommandListResL ); + + CEikCbaButton* cbabutton = (CEikCbaButton*) buttongroup->ControlOrNull(commandid); + TPointerEvent pevent; + pevent.iType = TPointerEvent::EButton1Up; + TRAP( res, cbabutton->HandlePointerEventL( pevent ) ); + AssertTrueL( ETrue, KHandlePointerEventL ); + } +// -------------------------------------------------------------------------- +// TBCTestMenuObserver::SetEmphasis +// --------------------------------------------------------------------------- +// +void TBCTestMenuObserver::SetEmphasis( CCoeControl*, TBool ) + { + } +// -------------------------------------------------------------------------- +// TBCTestMenuObserver::ProcessCommandL +// --------------------------------------------------------------------------- +// +void TBCTestMenuObserver::ProcessCommandL( TInt ) + { + + } + + + + + + +