classicui_pub/buttons_api/tsrc/src/testsdkbuttonsblockseikcmbut.cpp
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/classicui_pub/buttons_api/tsrc/src/testsdkbuttonsblockseikcmbut.cpp	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,1345 @@
+/*
+* 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:  Test api in eikcmbut.h
+*
+*/
+
+
+
+// [INCLUDE FILES]
+#include <e32svr.h>
+#include <stifparser.h>
+#include <stiftestinterface.h>
+#include <testsdkbuttons.rsg>
+#include <akniconutils.h>
+#include <avkon.mbg>
+#include <s32mem.h>
+#include <s32file.h>
+#include <eikcmbut.h>
+#include <eikalign.h>
+#include <eiklabel.h>
+
+#include "testsdkbuttons.h"
+#include "testsdkbuttons.hrh"
+
+// CONSTANTS
+const TInt KArraySize = 10;
+const TInt KHBufSize = 20000;
+const TInt KBufSize = 64;
+_LIT( KBitmapFile, "Z:\\resource\\apps\\avkon2.mbm" );
+
+// FORWARD DECLARATIONS
+// This class is used for testing functions in CEikCommandButtonBase
+// because it's constructor is protected.
+class CTestCmdBtBase : public CEikCommandButtonBase
+    {
+public:
+    /*
+     * constructor
+     * */
+    CTestCmdBtBase();
+    /*
+     * deconstructor
+     * */
+    ~CTestCmdBtBase();
+    
+    // test protect functon 
+    // test StateChanged
+    void DoStateChanged();
+    
+    // test Draw
+    void DoDraw(const TRect& aRect);
+    
+    // test WriteInternalStateL
+    void DoWriteInternalStateL( RWriteStream& aStream );
+    
+    // test SetTextL
+    void DoSetTextL( const TDesC& aText );
+    
+    // test SetPictureL
+    void DoSetPictureL( const CFbsBitmap* aMain,const CFbsBitmap* aMask );
+    
+    // test SetPictureFromFileL
+    void DoSetPictureFromFileL( const TDesC& aFilename,TInt aMain,TInt aMask );
+    
+    // set components, aIndex is a number in array. The value is 0 or 1.
+    TInt SetComponentsL( TInt aIndex );
+    
+    };
+// -----------------------------------------------------------------------------
+// CTestCmdBtBase::CTestCmdBtBase
+// -----------------------------------------------------------------------------
+//
+CTestCmdBtBase::CTestCmdBtBase(){}
+
+// -----------------------------------------------------------------------------
+// CTestCmdBtBase::~CTestCmdBtBase
+// -----------------------------------------------------------------------------
+//
+CTestCmdBtBase::~CTestCmdBtBase(){}
+
+// -----------------------------------------------------------------------------
+// CTestCmdBtBase::DoStateChanged
+// -----------------------------------------------------------------------------
+//
+void CTestCmdBtBase::DoStateChanged()
+    {
+    StateChanged();
+    }
+// -----------------------------------------------------------------------------
+// CTestCmdBtBase::DoWriteInternalStateL
+// -----------------------------------------------------------------------------
+//
+void CTestCmdBtBase::DoWriteInternalStateL( RWriteStream& aStream )
+    {
+    WriteInternalStateL( aStream );
+    }
+
+// -----------------------------------------------------------------------------
+// CTestCmdBtBase::DoSetTextL
+// -----------------------------------------------------------------------------
+//
+void CTestCmdBtBase::DoSetTextL( const TDesC& aText )
+    {
+    SetTextL( aText, iComponents[0] );
+    }
+
+// -----------------------------------------------------------------------------
+// CTestCmdBtBase::DoSetPictureL
+// -----------------------------------------------------------------------------
+//
+void CTestCmdBtBase::DoSetPictureL( const CFbsBitmap* aMain,const CFbsBitmap* aMask )
+    {
+    SetPictureL( aMain, aMask, iComponents[0] );
+    }
+
+// -----------------------------------------------------------------------------
+// CTestCmdBtBase::DoSetPictureFromFileL
+// -----------------------------------------------------------------------------
+//
+void CTestCmdBtBase::DoSetPictureFromFileL( const TDesC& aFilename,TInt aMain,TInt aMask )
+    {
+    SetPictureFromFileL( aFilename, aMain, aMask, iComponents[0] );
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTestCmdBtBase::DoDraw
+// -----------------------------------------------------------------------------
+//
+void CTestCmdBtBase::DoDraw(const TRect& aRect)
+    {
+    Draw( aRect );
+    }
+
+// -----------------------------------------------------------------------------
+// CTestCmdBtBase::SetComponentsL
+// -----------------------------------------------------------------------------
+//
+TInt CTestCmdBtBase::SetComponentsL( TInt aIndex )
+    {
+    const TInt marginsize = 2;
+    switch ( aIndex )
+        {
+        case 0:
+            {
+            CEikAlignedControl* component = new ( ELeave ) CEikAlignedControl;
+            component->SetAllMarginsTo( marginsize );
+            component->SetAlignment( EHLeftVCenter );
+            iComponents[0] = component;
+            break;
+            }
+        case 1:
+            {
+            CEikAlignedControl* component = new ( ELeave ) CEikAlignedControl;
+            component->SetAllMarginsTo( marginsize );
+            component->SetAlignment( EHLeftVCenter );
+            iComponents[1] = component;
+            break;
+            }
+        default:
+            return -1;
+        }
+    return 0;
+    }
+    
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseConstrutorL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseConstrutorL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    STIF_ASSERT_NOT_NULL( cmdbtbase );
+    CleanupStack::PopAndDestroy( cmdbtbase );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseSetButtonLayoutL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseSetButtonLayoutL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    CEikCommandButtonBase::TLayout layout = CEikCommandButtonBase::EFirstRightSecondLeft;
+    cmdbtbase->SetButtonLayout( layout );
+    CleanupStack::PopAndDestroy();
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseSetExcessSpaceL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseSetExcessSpaceL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    CEikCommandButtonBase::TExcess excess = CEikCommandButtonBase::EToFirst;
+    cmdbtbase->SetExcessSpace( excess );
+    CleanupStack::PopAndDestroy();
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseSetDisplayContentL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseSetDisplayContentL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    CEikCommandButtonBase::TDisplayContent content = CEikCommandButtonBase::EFirstOnly;
+    cmdbtbase->SetDisplayContent( content );
+    CleanupStack::PopAndDestroy();
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseLayoutComponentsL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseLayoutComponentsL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMDBUTTON);
+    cmdbtbase->StartConstructFromResourceL( reader );
+    cmdbtbase->SetComponentsL( 0 );
+    cmdbtbase->LayoutComponents();
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseStartConstructFromResourceL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseStartConstructFromResourceL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMDBUTTON);
+    cmdbtbase->StartConstructFromResourceL( reader );
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseConstructLabelAndImageFromResourceL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseConstructLabelAndImageFromResourceL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMDBUTTON );
+    cmdbtbase->ConstructLabelFromResourceL( reader, CEikCommandButtonBase::EFirst );
+    CleanupStack::PopAndDestroy();
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMDBUTTON );
+    cmdbtbase->ConstructImageFromResourceL( reader, CEikCommandButtonBase::EFirst );
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseUpdateComponentAlignmentL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseUpdateComponentAlignmentL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMDBUTTON );
+    cmdbtbase->ConstructFromResourceL( reader );
+    cmdbtbase->SetComponentsL( 0 );
+    cmdbtbase->UpdateComponentAlignment();
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseSetDefaultL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseSetDefaultL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMDBUTTON );
+    cmdbtbase->ConstructFromResourceL( reader );
+    cmdbtbase->SetDefault( EFalse );
+    cmdbtbase->SetDefault( ETrue );
+    
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseSetDimmedL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseSetDimmedL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMDBUTTON );
+    cmdbtbase->ConstructFromResourceL( reader );
+    cmdbtbase->SetDimmed( EFalse );
+    cmdbtbase->SetDimmed( ETrue );
+    
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseMinimumSizeL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseMinimumSizeL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMDBUTTON );
+    cmdbtbase->ConstructFromResourceL( reader );
+    TSize size( 0, 0 );
+    size = cmdbtbase->MinimumSize();
+    if ( size.iHeight == 0 || size.iWidth == 0 )
+        {
+        CleanupStack::PopAndDestroy( 2 );
+        return KErrCorrupt;
+        }
+    
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseCountComponentControlsL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseCountComponentControlsL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMDBUTTON );
+    cmdbtbase->ConstructFromResourceL( reader );
+    cmdbtbase->SetComponentsL( 0 );
+    TInt num = cmdbtbase->CountComponentControls();
+    CleanupStack::PopAndDestroy( 2 );
+    const TInt controlnum = 1;
+    STIF_ASSERT_EQUALS( controlnum, num );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseComponentControlL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseComponentControlL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    
+    cmdbtbase->SetComponentsL( 0 );
+    CCoeControl* control = cmdbtbase->ComponentControl( 0 );
+    STIF_ASSERT_NOT_NULL( control );
+    
+    CleanupStack::PopAndDestroy( cmdbtbase );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseSetContainerWindowLAndActivateL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseSetContainerWindowLAndActivateL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMDBUTTON );
+    cmdbtbase->ConstructFromResourceL( reader );
+    cmdbtbase->SetContainerWindowL( *iContainer );
+    cmdbtbase->SetComponentsL( 0 );
+    cmdbtbase->ActivateL();
+    
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseFocusChangedL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseFocusChangedL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMDBUTTON );
+    cmdbtbase->ConstructFromResourceL( reader );
+    cmdbtbase->SetContainerWindowL( *iContainer );
+    cmdbtbase->SetComponentsL( 0 );
+    cmdbtbase->ActivateL();
+    
+    cmdbtbase->FocusChanged( ENoDrawNow );
+    cmdbtbase->FocusChanged( EDrawNow );
+    
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseOfferKeyEventL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseOfferKeyEventL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMDBUTTON );
+    cmdbtbase->ConstructFromResourceL( reader );
+    cmdbtbase->SetContainerWindowL( *iContainer );
+    
+    cmdbtbase->SetComponentsL( 0 );
+    cmdbtbase->ActivateL();
+    TKeyEvent keyevent;
+    keyevent.iCode = EKeyDevice3;
+    cmdbtbase->OfferKeyEventL( keyevent, EEventKey );
+    TPointerEvent event;
+    cmdbtbase->HandlePointerEventL( event );
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseGetColorUseListL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseGetColorUseListL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMDBUTTON );
+    cmdbtbase->ConstructFromResourceL( reader );
+    cmdbtbase->SetContainerWindowL( *iContainer );
+    cmdbtbase->SetComponentsL( 0 );
+    cmdbtbase->ActivateL();
+    CArrayFixFlat<TCoeColorUse>* array = new (ELeave) CArrayFixFlat<TCoeColorUse>( KArraySize );
+    CleanupStack::PushL( array );
+    cmdbtbase->GetColorUseListL( *array );
+    CleanupStack::PopAndDestroy( 3 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseHandleResourceChangeL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseHandleResourceChangeL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMDBUTTON );
+    cmdbtbase->ConstructFromResourceL( reader );
+    cmdbtbase->SetContainerWindowL( *iContainer );
+    cmdbtbase->SetComponentsL( 0 );
+    cmdbtbase->ActivateL();
+    cmdbtbase->HandleResourceChange( 0 );
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseStateChangedL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseStateChangedL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMDBUTTON );
+    cmdbtbase->ConstructFromResourceL( reader );
+    cmdbtbase->SetContainerWindowL( *iContainer );
+    cmdbtbase->SetComponentsL( 0 );
+    cmdbtbase->ActivateL();
+    cmdbtbase->DoStateChanged();
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseSetTextL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseSetTextL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMDBUTTON );
+    cmdbtbase->ConstructFromResourceL( reader );
+    cmdbtbase->SetContainerWindowL( *iContainer );
+    _LIT( KBtText, "testcommondbutton" );
+    TBuf<KBufSize> buf( KBtText );
+    cmdbtbase->DoSetTextL( buf );
+    
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseSetPictureL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseSetPictureL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMDBUTTON );
+    cmdbtbase->ConstructFromResourceL( reader );
+    cmdbtbase->SetContainerWindowL( *iContainer );
+    cmdbtbase->SetComponentsL( 0 );
+    cmdbtbase->ActivateL();
+    CFbsBitmap* bitmap = NULL;
+    CFbsBitmap* mask = NULL;
+    AknIconUtils::CreateIconL( bitmap, mask, KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+    CleanupStack::PushL( bitmap );
+    CleanupStack::PushL( mask );
+    cmdbtbase->DoSetPictureL( bitmap, mask );
+    CleanupStack::Pop( mask );
+    CleanupStack::Pop( bitmap );
+    
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseSetPictureFromFileL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseSetPictureFromFileL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMDBUTTON );
+    cmdbtbase->ConstructFromResourceL( reader );
+    CleanupStack::PopAndDestroy(); //reader
+    cmdbtbase->SetContainerWindowL( *iContainer );
+    cmdbtbase->SetComponentsL( 0 );
+    cmdbtbase->ActivateL();
+    TRect rect( 0, 0, 1, 1 );
+    cmdbtbase->DoSetPictureFromFileL( KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+    iContainer->ActivateGc();
+    cmdbtbase->DoDraw( rect );
+    iContainer->DeactivateGc();
+    CleanupStack::PopAndDestroy( cmdbtbase );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseDrawL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseDrawL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMDBUTTON );
+    cmdbtbase->ConstructFromResourceL( reader );
+    cmdbtbase->SetButtonLayout( CEikCommandButtonBase::EFirstRightSecondLeft );
+    cmdbtbase->SetExcessSpace( CEikCommandButtonBase::EShare );
+    cmdbtbase->SetDisplayContent( CEikCommandButtonBase::EFirstOnly );
+    cmdbtbase->SetContainerWindowL( *iContainer );
+    iContainer->ActivateL();
+    cmdbtbase->SetComponentsL( 0 );
+    cmdbtbase->ActivateL();
+    iContainer->DrawNow();
+    
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtBaseWriteInternalStateL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtBaseWriteInternalStateL( CStifItemParser& /*aItem*/ )
+    {
+    CTestCmdBtBase* cmdbtbase = new ( ELeave ) CTestCmdBtBase;
+    CleanupStack::PushL( cmdbtbase );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMDBUTTON );
+    cmdbtbase->ConstructFromResourceL( reader );
+    cmdbtbase->SetContainerWindowL( *iContainer );
+    cmdbtbase->SetComponentsL( 0 );
+    cmdbtbase->ActivateL();
+    
+    RDesWriteStream stream;
+    CleanupClosePushL( stream );
+    HBufC8* hbuf = HBufC8::NewL( KHBufSize );
+    CleanupStack::PushL( hbuf );
+    TPtr8 ptr = hbuf->Des();
+    stream.Open( ptr );
+    cmdbtbase->DoWriteInternalStateL( stream );
+    stream.CommitL();
+    stream.Close();
+    
+    CleanupStack::PopAndDestroy( 4 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtConstructorL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtConstructorL( CStifItemParser& /*aItem*/ )
+    {
+    CEikCommandButton* cmdbt = new ( ELeave ) CEikCommandButton;
+    CleanupStack::PushL( cmdbt );
+    STIF_ASSERT_NOT_NULL( cmdbt );
+    CleanupStack::PopAndDestroy( cmdbt );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtConstructFromResourceL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtConstructFromResourceL( CStifItemParser& /*aItem*/ )
+    {
+    CEikCommandButton* cmdbt = new ( ELeave ) CEikCommandButton;
+    CleanupStack::PushL( cmdbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMBUT_BUTTON );
+    cmdbt->ConstructFromResourceL( reader );
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtSetPictureL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtSetPictureL( CStifItemParser& aItem )
+    {
+    TInt num = 0;
+    TInt err = aItem.GetNextInt( num );
+    if ( err != KErrNone )
+        {
+        return err;
+        }
+    CEikCommandButton* cmdbt = new ( ELeave ) CEikCommandButton;
+    CleanupStack::PushL( cmdbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMBUT_BUTTON );
+    cmdbt->ConstructFromResourceL( reader );
+    CEikImage* image = NULL;
+    switch ( num )
+        {
+        case 1:
+            {
+            CFbsBitmap* main = NULL;
+            CFbsBitmap* mask = NULL;
+            AknIconUtils::CreateIconL( main, mask, KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+            cmdbt->SetPictureL( main, mask );
+            image = cmdbt->Picture();
+            STIF_ASSERT_NOT_NULL( image );
+            CleanupStack::PopAndDestroy();
+            break;
+            }
+        case 2:
+            {
+            cmdbt->SetPictureFromFileL( KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+            image = cmdbt->Picture();
+            STIF_ASSERT_NOT_NULL( image );
+            CleanupStack::PopAndDestroy();
+            break;
+            }
+        default:
+            CleanupStack::PopAndDestroy( cmdbt );
+            return KErrNotSupported;
+        }
+    
+    CleanupStack::PopAndDestroy( cmdbt );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtSetThreeEnumL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtSetThreeEnumL( CStifItemParser& /*aItem*/ )
+    {
+    CEikCommandButton* cmdbt = new ( ELeave ) CEikCommandButton;
+    CleanupStack::PushL( cmdbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMBUT_BUTTON );
+    cmdbt->ConstructFromResourceL( reader );
+    cmdbt->SetButtonLayout( CEikCommandButton::ETextRightPictureLeft );
+    cmdbt->SetButtonLayout( CEikCommandButton::ETextBottomPictureTop );
+    cmdbt->SetButtonLayout( CEikCommandButton::ETextTopPictureBottom );
+    cmdbt->SetButtonLayout( CEikCommandButton::ETextLeftPictureRight );
+    cmdbt->SetExcessSpace( CEikCommandButton::EShare );
+    cmdbt->SetExcessSpace( CEikCommandButton::EToText );
+    cmdbt->SetExcessSpace( CEikCommandButton::EToPicture );
+    cmdbt->SetDisplayContent( CEikCommandButton::ETextOnly );
+    cmdbt->SetDisplayContent( CEikCommandButton::ETextOnly );
+    cmdbt->SetDisplayContent( CEikCommandButton::ETextAndPicture );
+    
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtSetTextL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtSetTextL( CStifItemParser& /*aItem*/ )
+    {
+    CEikCommandButton* cmdbt = new ( ELeave ) CEikCommandButton;
+    CleanupStack::PushL( cmdbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMBUT_BUTTON );
+    cmdbt->ConstructFromResourceL( reader );
+    _LIT( KText, "settext" );
+    cmdbt->SetTextL( KText );
+    
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtLabelL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtLabelL( CStifItemParser& /*aItem*/ )
+    {
+    CEikCommandButton* cmdbt = new ( ELeave ) CEikCommandButton;
+    CleanupStack::PushL( cmdbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMBUT_BUTTON );
+    cmdbt->ConstructFromResourceL( reader );
+    CEikLabel* label = NULL;
+    label = cmdbt->Label();
+    STIF_ASSERT_NOT_NULL( label );
+    
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtCmdSetL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtCmdSetL( CStifItemParser& /*aItem*/ )
+    {
+    CEikCommandButton* cmdbt = new ( ELeave ) CEikCommandButton;
+    CleanupStack::PushL( cmdbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMBUT_BUTTON );
+    cmdbt->ConstructFromResourceL( reader );
+    CFbsBitmap* main = NULL;
+    CFbsBitmap* mask = NULL;
+    _LIT( KText, "settext" );
+    AknIconUtils::CreateIconL( main, mask, KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+    CleanupStack::PushL( main );
+    CleanupStack::PushL( mask );
+    cmdbt->SetCommandL( ELeftBt, &KText, main, mask );
+    CleanupStack::Pop( mask );
+    CleanupStack::Pop( main );
+    
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtUpdateComponentAlignmentL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtUpdateComponentAlignmentL( CStifItemParser& /*aItem*/ )
+    {
+    CEikCommandButton* cmdbt = new ( ELeave ) CEikCommandButton;
+    CleanupStack::PushL( cmdbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMBUT_BUTTON );
+    cmdbt->ConstructFromResourceL( reader );
+    cmdbt->UpdateComponentAlignment();
+    
+    TPointerEvent event;
+    cmdbt->HandlePointerEventL( event );
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikTwoPicCmdBtConstructorL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikTwoPicCmdBtConstructorL( CStifItemParser& /*aItem*/ )
+    {
+    CEikTwoPictureCommandButton* piccmdbt = new ( ELeave ) CEikTwoPictureCommandButton;
+    CleanupStack::PushL( piccmdbt );
+    STIF_ASSERT_NOT_NULL( piccmdbt );
+    CleanupStack::PopAndDestroy( piccmdbt );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikTwoPicCmdBtConstructFromResourceL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikTwoPicCmdBtConstructFromResourceL( CStifItemParser& /*aItem*/ )
+    {
+    CEikTwoPictureCommandButton* piccmdbt = new ( ELeave ) CEikTwoPictureCommandButton;
+    CleanupStack::PushL( piccmdbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_TWOPICBT_BUTTON );
+    piccmdbt->ConstructFromResourceL( reader );
+    
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikTwoPicCmdBtIsSecondPictureOwnedExternallyL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikTwoPicCmdBtIsSecondPictureOwnedExternallyL( CStifItemParser& /*aItem*/ )
+    {
+    CEikTwoPictureCommandButton* piccmdbt = new ( ELeave ) CEikTwoPictureCommandButton;
+    CleanupStack::PushL( piccmdbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_TWOPICBT_BUTTON );
+    piccmdbt->ConstructFromResourceL( reader );
+    CFbsBitmap* main = NULL;
+    CFbsBitmap* mask = NULL;
+    CFbsBitmap* secondmain = NULL;
+    CFbsBitmap* secondmask = NULL;
+    AknIconUtils::CreateIconL( main, mask, KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+    AknIconUtils::CreateIconL( secondmain, secondmask, KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+    piccmdbt->SetTwoPicturesL( main, mask, secondmain, secondmask );
+    piccmdbt->IsSecondPictureOwnedExternally();
+    
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikTwoPicCmdBtPictureL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikTwoPicCmdBtPictureL( CStifItemParser& /*aItem*/ )
+    {
+    CEikTwoPictureCommandButton* piccmdbt = new ( ELeave ) CEikTwoPictureCommandButton;
+    CleanupStack::PushL( piccmdbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_TWOPICBT_BUTTON );
+    piccmdbt->ConstructFromResourceL( reader );
+    CFbsBitmap* main = NULL;
+    CFbsBitmap* mask = NULL;
+    CFbsBitmap* secondmain = NULL;
+    CFbsBitmap* secondmask = NULL;
+    AknIconUtils::CreateIconL( main, mask, KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+    AknIconUtils::CreateIconL( secondmain, secondmask, KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+    piccmdbt->SetTwoPicturesL( main, mask, secondmain, secondmask );
+    CEikImage* image = NULL;
+    image = piccmdbt->Picture();
+    STIF_ASSERT_NOT_NULL( image );
+    
+    TPointerEvent event;
+    piccmdbt->HandlePointerEventL( event );
+    
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikTwoPicCmdBtSetTextL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikTwoPicCmdBtSetTextL( CStifItemParser& /*aItem*/ )
+    {
+    CEikTwoPictureCommandButton* piccmdbt = new ( ELeave ) CEikTwoPictureCommandButton;
+    CleanupStack::PushL( piccmdbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_TWOPICBT_BUTTON );
+    piccmdbt->ConstructFromResourceL( reader );
+    _LIT( KText, "settext" );
+    piccmdbt->SetTextL( KText );
+    
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikTwoPicCmdBtPictureSetL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikTwoPicCmdBtPictureSetL( CStifItemParser& /*aItem*/ )
+    {
+    CEikTwoPictureCommandButton* piccmdbt = new ( ELeave ) CEikTwoPictureCommandButton;
+    CleanupStack::PushL( piccmdbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_TWOPICBT_BUTTON );
+    piccmdbt->ConstructFromResourceL( reader );
+    piccmdbt->SetContainerWindowL( *iContainer );
+    CFbsBitmap* main = NULL;
+    CFbsBitmap* mask = NULL;
+    CFbsBitmap* secondmain = NULL;
+    CFbsBitmap* secondmask = NULL;
+    AknIconUtils::CreateIconL( main, mask, KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+    AknIconUtils::CreateIconL( secondmain, secondmask, KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+    piccmdbt->SetTwoPicturesL( main, mask, secondmain, secondmask );
+    secondmain = NULL;
+    secondmask = NULL;
+    AknIconUtils::CreateIconL( secondmain, secondmask, KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+    piccmdbt->SetSecondPicture( secondmain, secondmain );
+    piccmdbt->SetPictureFromFileL( KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+    TRAPD( err, piccmdbt->SetSecondPictureFromFileL( KBitmapFile, EMbmAvkonQgn_graf_tab_21, EMbmAvkonQgn_graf_tab_21_mask ) );
+    CleanupStack::PopAndDestroy( 2 );
+    if ( err != KErrNone )
+        {
+        err = KErrNone;
+        }
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikTwoPicCmdBtConstructImagesFromResourceL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikTwoPicCmdBtConstructImagesFromResourceL( CStifItemParser& /*aItem*/ )
+    {
+    CEikTwoPictureCommandButton* piccmdbt = new ( ELeave ) CEikTwoPictureCommandButton;
+    CleanupStack::PushL( piccmdbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_TWOPICBT_BUTTON );
+//    TRAPD( err, piccmdbt->ConstructImagesFromResourceL( reader, CEikCommandButtonBase::ESecond ) );
+//    if ( err != KErrNone )
+//        {
+//        return KErrNone;
+//        }
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikTwoPicCmdBtSetSecondPictureOwnedExternallyL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikTwoPicCmdBtSetSecondPictureOwnedExternallyL( CStifItemParser& /*aItem*/ )
+    {
+    CEikTwoPictureCommandButton* piccmdbt = new ( ELeave ) CEikTwoPictureCommandButton;
+    CleanupStack::PushL( piccmdbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_TWOPICBT_BUTTON );
+    piccmdbt->ConstructFromResourceL( reader );
+    piccmdbt->SetContainerWindowL( *iContainer );
+    piccmdbt->SetSecondPictureOwnedExternally( ETrue );
+    
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikTwoPicCmdBtActivateL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikTwoPicCmdBtActivateL( CStifItemParser& /*aItem*/ )
+    {
+    CEikTwoPictureCommandButton* piccmdbt = new ( ELeave ) CEikTwoPictureCommandButton;
+    CleanupStack::PushL( piccmdbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_TWOPICBT_BUTTON );
+    piccmdbt->ConstructFromResourceL( reader );
+    CFbsBitmap* main = NULL;
+    CFbsBitmap* mask = NULL;
+    CFbsBitmap* secondmain = NULL;
+    CFbsBitmap* secondmask = NULL;
+    AknIconUtils::CreateIconL( main, mask, KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+    AknIconUtils::CreateIconL( secondmain, secondmask, KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+    piccmdbt->SetTwoPicturesL( main, mask, secondmain, secondmask );
+    iContainer->ActivateGc();
+    piccmdbt->ActivateL();
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikTwoPicCmdBtWriteInternalStateL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikTwoPicCmdBtWriteInternalStateL( CStifItemParser& /*aItem*/ )
+    {
+    //new a class for test only one protected function
+    class CTestTwoPicBt : public CEikTwoPictureCommandButton
+        {
+    public:
+        CTestTwoPicBt(){}
+        ~CTestTwoPicBt(){}
+        void DoWriteInternalStateL( RWriteStream& aStream ){ WriteInternalStateL( aStream ); }
+        TInt SetComponents( TInt aIndex )
+            {
+            const TInt marginsize = 2;
+            switch ( aIndex )
+                {
+                case 0:
+                    {
+                    CEikAlignedControl* component = new ( ELeave ) CEikAlignedControl;
+                    component->SetAllMarginsTo( marginsize );
+                    component->SetAlignment( EHLeftVCenter );
+                    iComponents[0] = component;
+                    break;
+                    }
+                case 1:
+                    {
+                    CEikAlignedControl* component = new ( ELeave ) CEikAlignedControl;
+                    component->SetAllMarginsTo( marginsize );
+                    component->SetAlignment( EHLeftVCenter );
+                    iComponents[1] = component;
+                    break;
+                    }
+                default:
+                    return -1;
+                }
+            return 0;
+            }
+        };
+    CTestTwoPicBt* piccmdbt = new ( ELeave ) CTestTwoPicBt;
+    CleanupStack::PushL( piccmdbt );
+    piccmdbt->SetComponents( 0 );
+    piccmdbt->SetComponents( 1 );
+    CFbsBitmap* main = NULL;
+    CFbsBitmap* mask = NULL;
+    CFbsBitmap* secondmain = NULL;
+    CFbsBitmap* secondmask = NULL;
+    AknIconUtils::CreateIconL( main, mask, KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+    AknIconUtils::CreateIconL( secondmain, secondmask, KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+    piccmdbt->SetTwoPicturesL( main, mask, secondmain, secondmask );
+    HBufC8* buf = HBufC8::NewL( KHBufSize );
+    CleanupStack::PushL( buf );
+    TPtr8 ptr = buf->Des();
+    
+    RDesWriteStream stream;
+    CleanupClosePushL( stream );
+    stream.Open( ptr );
+    // crash when reading bitmap data
+    TRAPD( err, piccmdbt->DoWriteInternalStateL( stream ) );
+    stream.CommitL();
+    stream.Close();
+    CleanupStack::PopAndDestroy( 3 );//piccmdbt, buf, stream
+    if ( err != KErrNone )
+        {
+        err = KErrNone;
+        }
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikInverterCmdBtConstructorL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikInverterCmdBtConstructorL( CStifItemParser& /*aItem*/ )
+    {
+    CEikInverterCommandButton* invertcmdbt = new ( ELeave ) CEikInverterCommandButton;
+    CleanupStack::PushL( invertcmdbt );
+    STIF_ASSERT_NOT_NULL( invertcmdbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMBUT_BUTTON );
+    invertcmdbt->ConstructFromResourceL( reader );
+    TPointerEvent event;
+    invertcmdbt->HandlePointerEventL( event );
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikInverterCmdBtWriteInternalStateL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikInverterCmdBtWriteInternalStateL( CStifItemParser& /*aItem*/ )
+    {
+    //new a class for test only one protected function
+    class CTestInvertCmdBt : public CEikInverterCommandButton
+        {
+    public:
+        CTestInvertCmdBt(){}
+        ~CTestInvertCmdBt(){}
+        void DoWriteInternalStateL( RWriteStream& aStream ){ WriteInternalStateL( aStream ); }
+        };
+    CTestInvertCmdBt* invertcmdbt = new ( ELeave ) CTestInvertCmdBt;
+    CleanupStack::PushL( invertcmdbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMBUT_BUTTON );
+    invertcmdbt->ConstructFromResourceL( reader );
+    HBufC8* buf = HBufC8::NewL( KHBufSize );
+    TPtr8 ptr = buf->Des();
+    CleanupStack::PushL( buf );
+    RDesWriteStream stream;
+    CleanupClosePushL( stream );
+    stream.Open( ptr );
+    invertcmdbt->DoWriteInternalStateL( stream );
+    stream.CommitL();
+    stream.Close();
+    CleanupStack::PopAndDestroy( 4 );//invertcmdbt, reader, buf, stream
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikTxtBtConstructorL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikTxtBtConstructorL( CStifItemParser& /*aItem*/ )
+    {
+    CEikTextButton* txtbt = new ( ELeave ) CEikTextButton;
+    CleanupStack::PushL( txtbt );
+    STIF_ASSERT_NOT_NULL( txtbt );
+    CleanupStack::PopAndDestroy( txtbt );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikTxtBtConstructFromResourceL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikTxtBtConstructFromResourceL( CStifItemParser& /*aItem*/ )
+    {
+    CEikTextButton* txtbt = new ( ELeave ) CEikTextButton;
+    CleanupStack::PushL( txtbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_TXTBT_BUTTON );
+    txtbt->ConstructFromResourceL( reader );
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikTxtBtSetTextL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikTxtBtSetTextL( CStifItemParser& /*aItem*/ )
+    {
+    CEikTextButton* txtbt = new ( ELeave ) CEikTextButton;
+    CleanupStack::PushL( txtbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_TXTBT_BUTTON );
+    txtbt->ConstructFromResourceL( reader );
+    _LIT( KText, "test" );
+    txtbt->SetTextL( KText );
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikTxtBtSetTextL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikTxtBtLabelL( CStifItemParser& /*aItem*/ )
+    {
+    CEikTextButton* txtbt = new ( ELeave ) CEikTextButton;
+    CleanupStack::PushL( txtbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_TXTBT_BUTTON );
+    txtbt->ConstructFromResourceL( reader );
+    CEikLabel* label = NULL;
+    label = txtbt->Label();
+    STIF_ASSERT_NOT_NULL( label );
+    TPointerEvent event;
+    txtbt->HandlePointerEventL( event );
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikBmpBtConstructorL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikBmpBtConstructorL( CStifItemParser& /*aItem*/ )
+    {
+    CEikBitmapButton* bmpbt = new ( ELeave ) CEikBitmapButton;
+    CleanupStack::PushL( bmpbt );
+    STIF_ASSERT_NOT_NULL( bmpbt );
+    CleanupStack::PopAndDestroy( bmpbt );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikBmpBtConstructFromResourceL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikBmpBtConstructFromResourceL( CStifItemParser& /*aItem*/ )
+    {
+    CEikBitmapButton* bmpbt = new ( ELeave ) CEikBitmapButton;
+    CleanupStack::PushL( bmpbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_BITMAPBT_BUTTON );
+    bmpbt->ConstructFromResourceL( reader );
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikBmpBtPictureSetL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikBmpBtPictureSetL( CStifItemParser& /*aItem*/ )
+    {
+    CEikBitmapButton* bmpbt = new ( ELeave ) CEikBitmapButton;
+    CleanupStack::PushL( bmpbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_BITMAPBT_BUTTON );
+    bmpbt->ConstructFromResourceL( reader );
+    CFbsBitmap* main = NULL;
+    CFbsBitmap* mask = NULL;
+    AknIconUtils::CreateIconL( main, mask, KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+    bmpbt->SetPictureL( main, mask );
+    bmpbt->SetPictureFromFileL( KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+    CEikImage* image = NULL;
+    image = bmpbt->Picture();
+    STIF_ASSERT_NOT_NULL( image );
+    
+    TPointerEvent event;
+    bmpbt->HandlePointerEventL( event );
+    
+    CleanupStack::PopAndDestroy( 2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CTestSDKButtons::TestCEikCmdBtProcessCmdStackL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKButtons::TestCEikCmdBtProcessCmdStackL( CStifItemParser& /*aItem*/ )
+    {
+    CEikCommandButton* cmdbt = new ( ELeave ) CEikCommandButton;
+    CleanupStack::PushL( cmdbt );
+    TResourceReader reader;
+    CCoeEnv::Static()->CreateResourceReaderLC( reader, R_CMBUT_BUTTON );
+    cmdbt->ConstructFromResourceL( reader );
+    CleanupStack::PopAndDestroy();
+    CFbsBitmap* main = NULL;
+    CFbsBitmap* mask = NULL;
+    AknIconUtils::CreateIconL( main, mask, KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+    CleanupStack::PushL( main );
+    CleanupStack::PushL( mask );
+    _LIT( KText, "settext" );
+    cmdbt->AddCommandToStackL( ESingle, &KText, main, mask );
+    cmdbt->PopCommandFromStack();
+    CleanupStack::Pop( mask );
+    CleanupStack::Pop( main );
+    AknIconUtils::CreateIconL( main, mask, KBitmapFile, EMbmAvkonQgn_indi_mic, EMbmAvkonQgn_indi_mic_mask );
+    CleanupStack::PushL( main );
+    CleanupStack::PushL( mask );
+    cmdbt->AddCommandToStackL( EBckBt, &KText, main, mask );
+    cmdbt->RemoveCommandFromStack( EBckBt );
+    CleanupStack::Pop( mask );
+    CleanupStack::Pop( main );
+    
+    CleanupStack::PopAndDestroy( cmdbt );
+    
+    return KErrNone;
+    }
+// End of file