appinstall_plat/sifui_api/tsrc/src/sifuitestcases.cpp
changeset 25 98b66e4fb0be
child 42 d17dc5398051
equal deleted inserted replaced
24:84a16765cd86 25:98b66e4fb0be
       
     1 /*
       
     2 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: This file contains hardcoded module implementation.
       
    15 *
       
    16 */
       
    17 
       
    18 #include <badesca.h>                    // CDesCArray
       
    19 #include <sifui.h>                      // CSifUi
       
    20 #include "SifUiTest.h"                  // CSifUiTest
       
    21 
       
    22 _LIT( KEnter, "Enter" );
       
    23 _LIT( KStepFormat, "Step %d" );
       
    24 _LIT( KExit, "Exit" );
       
    25 
       
    26 // Internal structure containing test case name and pointer to test function
       
    27 class TCaseInfoInternal
       
    28     {
       
    29     public:
       
    30         const TText*    iCaseName;
       
    31         TestFunction    iMethod;
       
    32         TBool           iIsOOMTest;
       
    33         TInt            iFirstMemoryAllocation;
       
    34         TInt            iLastMemoryAllocation;
       
    35     };
       
    36 
       
    37 const TInt KOneSecond = 1000000;
       
    38 const TInt KThreeSeconds = 3 * KOneSecond;
       
    39 const TInt KFiveSeconds = 5 * KOneSecond;
       
    40 const TInt KHalfSecond = KOneSecond / 2;
       
    41 const TKeyEvent KRightSoftkey = { EKeyDevice1, 0, 0, EStdKeyDevice1 };  // EKeyCBA2
       
    42 
       
    43 
       
    44 // ======== MEMBER FUNCTIONS ========
       
    45 
       
    46 // -----------------------------------------------------------------------------
       
    47 // CSifUiTest::Case
       
    48 // Returns a test case by number.
       
    49 //
       
    50 // This function contains an array of all available test cases
       
    51 // i.e pair of case name and test function. If case specified by parameter
       
    52 // aCaseNumber is found from array, then that item is returned.
       
    53 // -----------------------------------------------------------------------------
       
    54 //
       
    55 const TCaseInfo CSifUiTest::Case ( const TInt aCaseNumber ) const
       
    56      {
       
    57     /**
       
    58     * When adding new test cases, implement new test case function and add new
       
    59     * line to KCases array specifing the name of the case and the function.
       
    60     *
       
    61     * ENTRY macro takes two parameters: test case name and test case
       
    62     * function name.
       
    63     *
       
    64     * FUNCENTRY macro takes only test case function name as a parameter and
       
    65     * uses that as a test case name and test case function name.
       
    66     *
       
    67     */
       
    68 
       
    69     static TCaseInfoInternal const KCases[] =
       
    70         {
       
    71         ENTRY( "CreateLowMemTest", CSifUiTest::CreateLowMemTest ),
       
    72         ENTRY( "InformationNoteTest", CSifUiTest::InformationNoteTest ),
       
    73         ENTRY( "WarningNoteTest", CSifUiTest::WarningNoteTest ),
       
    74         ENTRY( "ErrorNoteTest", CSifUiTest::ErrorNoteTest ),
       
    75         ENTRY( "PermanentNoteTest", CSifUiTest::PermanentNoteTest ),
       
    76         ENTRY( "ProgressNoteTest", CSifUiTest::ProgressNoteTest ),
       
    77         ENTRY( "WaitNoteTest", CSifUiTest::WaitNoteTest ),
       
    78         ENTRY( "LaunchHelpTest", CSifUiTest::LaunchHelpTest )
       
    79         };
       
    80 
       
    81     if( (TUint) aCaseNumber >= sizeof( KCases ) / sizeof( TCaseInfoInternal ) )
       
    82         {
       
    83         TCaseInfo emptyObject( KNullDesC );
       
    84         emptyObject.iMethod = NULL;
       
    85         emptyObject.iIsOOMTest = EFalse;
       
    86         emptyObject.iFirstMemoryAllocation = 0;
       
    87         emptyObject.iLastMemoryAllocation = 0;
       
    88         return emptyObject;
       
    89         }
       
    90 
       
    91     TPtrC caseName( static_cast<const TUint16*>( KCases[ aCaseNumber ].iCaseName ) );
       
    92     TCaseInfo caseInfo( caseName );
       
    93     caseInfo.iMethod = KCases[ aCaseNumber ].iMethod;
       
    94     caseInfo.iIsOOMTest = KCases[ aCaseNumber ].iIsOOMTest;
       
    95     caseInfo.iFirstMemoryAllocation = KCases[ aCaseNumber ].iFirstMemoryAllocation;
       
    96     caseInfo.iLastMemoryAllocation = KCases[ aCaseNumber ].iLastMemoryAllocation;
       
    97     return caseInfo;
       
    98     }
       
    99 
       
   100 // -----------------------------------------------------------------------------
       
   101 // CSifUiTest::CreateSifUi()
       
   102 // -----------------------------------------------------------------------------
       
   103 //
       
   104 TInt CSifUiTest::CreateSifUi()
       
   105     {
       
   106     if( iSifUi )
       
   107         {
       
   108         delete iSifUi;
       
   109         iSifUi = NULL;
       
   110         }
       
   111 
       
   112     TRAPD( err, iSifUi = CSifUi::NewL() );
       
   113     return err;
       
   114     }
       
   115 
       
   116 // -----------------------------------------------------------------------------
       
   117 // CSifUiTest::CreateTest()
       
   118 // -----------------------------------------------------------------------------
       
   119 //
       
   120 TInt CSifUiTest::CreateLowMemTest( TTestResult& aResult )
       
   121     {
       
   122     _LIT( KTestName, "CreateLowMemTest" );
       
   123     TestModuleIf().Printf( 0, KTestName, KEnter );
       
   124 
       
   125     TInt count = 0;
       
   126     TInt error = KErrNoMemory;
       
   127     while( error == KErrNoMemory )
       
   128         {
       
   129         User::__DbgSetAllocFail( EFalse, RHeap::EDeterministic, ++count );
       
   130         __UHEAP_MARK;
       
   131         error = CreateSifUi();
       
   132         __UHEAP_MARKEND;
       
   133         User::__DbgSetAllocFail( EFalse, RHeap::ENone, count );
       
   134         }
       
   135     TestModuleIf().Printf( 1, KTestName, _L("count %d, last error %d"), count, error );
       
   136     SetResult( aResult, error );
       
   137     delete iSifUi;
       
   138     iSifUi = NULL;
       
   139 
       
   140     TestModuleIf().Printf( 0, KTestName, KExit );
       
   141     return KErrNone;
       
   142     }
       
   143 
       
   144 // -----------------------------------------------------------------------------
       
   145 // CSifUiTest::InformationNoteTest()
       
   146 // -----------------------------------------------------------------------------
       
   147 //
       
   148 TInt CSifUiTest::InformationNoteTest( TTestResult& aResult )
       
   149     {
       
   150     _LIT( KTestName, "InformationNoteTest" );
       
   151     TestModuleIf().Printf( 0, KTestName, KEnter );
       
   152 
       
   153     enum TTestSteps
       
   154         {
       
   155         EFirstStep,
       
   156         EChangeText,
       
   157         EWaitSomeTime,
       
   158         EAllDone
       
   159         };
       
   160     _LIT( KInfoNoteText, "This is information note" );
       
   161     _LIT( KChangedInfoNoteText, "Changed information note text" );
       
   162 
       
   163     TInt result = CreateSifUi();
       
   164     for( TInt step = EFirstStep; step < EAllDone && result == KErrNone; ++step )
       
   165         {
       
   166         TestModuleIf().Printf( 1, KTestName, KStepFormat, step );
       
   167         switch( step )
       
   168             {
       
   169             case EFirstStep:
       
   170                 TRAP( result, iSifUi->DisplayInformationNoteL( KInfoNoteText ) );
       
   171                 break;
       
   172             case EChangeText:
       
   173                 User::After( KOneSecond );
       
   174                 TRAP( result, iSifUi->DisplayInformationNoteL( KChangedInfoNoteText ) );
       
   175                 break;
       
   176             case EWaitSomeTime:
       
   177                 User::After( KOneSecond );
       
   178                 break;
       
   179             default:
       
   180                 User::Leave( KErrGeneral );
       
   181                 break;
       
   182             }
       
   183         }
       
   184 
       
   185     delete iSifUi;
       
   186     iSifUi = NULL;
       
   187 
       
   188     SetResult( aResult, result );
       
   189 
       
   190     TestModuleIf().Printf( 0, KTestName, KExit );
       
   191     return KErrNone;
       
   192     }
       
   193 
       
   194 // -----------------------------------------------------------------------------
       
   195 // CSifUiTest::WarningNoteTest()
       
   196 // -----------------------------------------------------------------------------
       
   197 //
       
   198 TInt CSifUiTest::WarningNoteTest( TTestResult& aResult )
       
   199     {
       
   200     _LIT( KTestName, "WarningNoteTest" );
       
   201     TestModuleIf().Printf( 0, KTestName, KEnter );
       
   202 
       
   203     enum TTestSteps
       
   204         {
       
   205         EFirstStep,
       
   206         EChangeText,
       
   207         EWaitSomeTime,
       
   208         EAllDone
       
   209         };
       
   210     _LIT( KWarningNoteText, "This is warning note" );
       
   211     _LIT( KChangedWarningNoteText, "Changed warning note text" );
       
   212 
       
   213     TInt result = CreateSifUi();
       
   214     for( TInt step = EFirstStep; step < EAllDone && result == KErrNone; ++step )
       
   215         {
       
   216         TestModuleIf().Printf( 1, KTestName, KStepFormat, step );
       
   217         switch( step )
       
   218             {
       
   219             case EFirstStep:
       
   220                 TRAP( result, iSifUi->DisplayInformationNoteL( KWarningNoteText ) );
       
   221                 break;
       
   222             case EChangeText:
       
   223                 User::After( KOneSecond );
       
   224                 TRAP( result, iSifUi->DisplayInformationNoteL( KChangedWarningNoteText ) );
       
   225                 break;
       
   226             case EWaitSomeTime:
       
   227                 User::After( KOneSecond );
       
   228                 break;
       
   229             default:
       
   230                 User::Leave( KErrGeneral );
       
   231                 break;
       
   232             }
       
   233         }
       
   234 
       
   235     delete iSifUi;
       
   236     iSifUi = NULL;
       
   237 
       
   238     SetResult( aResult, result );
       
   239 
       
   240     TestModuleIf().Printf( 0, KTestName, KExit );
       
   241     return KErrNone;
       
   242     }
       
   243 
       
   244 // -----------------------------------------------------------------------------
       
   245 // CSifUiTest::ErrorNoteTest()
       
   246 // -----------------------------------------------------------------------------
       
   247 //
       
   248 TInt CSifUiTest::ErrorNoteTest( TTestResult& aResult )
       
   249     {
       
   250     _LIT( KTestName, "ErrorNoteTest" );
       
   251     TestModuleIf().Printf( 0, KTestName, KEnter );
       
   252 
       
   253     enum TTestSteps
       
   254         {
       
   255         EFirstStep,
       
   256         EChangeText,
       
   257         EAllDone
       
   258         };
       
   259     _LIT( KErrorNoteText, "This is error note" );
       
   260     _LIT( KChangedErrorNoteText, "Changed error note text" );
       
   261 
       
   262     TInt result = CreateSifUi();
       
   263     for( TInt step = EFirstStep; step < EAllDone && result == KErrNone; ++step )
       
   264         {
       
   265         TestModuleIf().Printf( 1, KTestName, KStepFormat, step );
       
   266         switch( step )
       
   267             {
       
   268             case EFirstStep:
       
   269                 TRAP( result, iSifUi->DisplayErrorNoteL( KErrorNoteText ) );
       
   270                 break;
       
   271             case EChangeText:
       
   272                 User::After( KOneSecond );
       
   273                 TRAP( result, iSifUi->DisplayErrorNoteL( KChangedErrorNoteText ) );
       
   274                 break;
       
   275             default:
       
   276                 User::Leave( KErrGeneral );
       
   277                 break;
       
   278             }
       
   279         }
       
   280 
       
   281     delete iSifUi;
       
   282     iSifUi = NULL;
       
   283 
       
   284     SetResult( aResult, result );
       
   285 
       
   286     TestModuleIf().Printf( 0, KTestName, KExit );
       
   287     return KErrNone;
       
   288     }
       
   289 
       
   290 // -----------------------------------------------------------------------------
       
   291 // CSifUiTest::PermanentNoteTest()
       
   292 // -----------------------------------------------------------------------------
       
   293 //
       
   294 TInt CSifUiTest::PermanentNoteTest( TTestResult& aResult )
       
   295     {
       
   296     _LIT( KTestName, "PermanentNoteTest" );
       
   297     TestModuleIf().Printf( 0, KTestName, KEnter );
       
   298 
       
   299     enum TTestSteps
       
   300         {
       
   301         EFirstStep,
       
   302         EDisplayNote,
       
   303         EChangeText,
       
   304         ECloseNote,
       
   305         EDisplayDelayedNote,
       
   306         EChangeDelayedNoteText,
       
   307         ECloseSecondNote,
       
   308         EAllDone
       
   309         };
       
   310 
       
   311     _LIT( KPermanentNoteText, "This is permanent note" );
       
   312     _LIT( KChangedNoteText, "Changed permanent note text" );
       
   313     _LIT( KDelayedNoteText, "This is delayed permanent note" );
       
   314     _LIT( KChangedDelayedNoteText, "Changed delayed permanent note text" );
       
   315 
       
   316     TInt result = CreateSifUi();
       
   317     for( TInt step = EFirstStep; step < EAllDone && result == KErrNone; ++step )
       
   318         {
       
   319         TestModuleIf().Printf( 1, KTestName, KStepFormat, step );
       
   320         switch( step )
       
   321             {
       
   322             case EFirstStep:
       
   323                 TRAP( result, iSifUi->ClosePermanentNote() );
       
   324                 break;
       
   325             case EDisplayNote:
       
   326                 TRAP( result, iSifUi->DisplayPermanentNoteL( KPermanentNoteText ) );
       
   327                 break;
       
   328             case EChangeText:
       
   329                 User::After( KThreeSeconds );
       
   330                 TRAP( result, iSifUi->DisplayPermanentNoteL( KChangedNoteText ) );
       
   331                 break;
       
   332             case ECloseNote:
       
   333                 TRAP( result, iSifUi->ClosePermanentNote() );
       
   334                 break;
       
   335             case EDisplayDelayedNote:
       
   336                 User::After( KThreeSeconds );
       
   337                 TRAP( result, iSifUi->DisplayPermanentNoteL( KDelayedNoteText ) );
       
   338                 break;
       
   339             case EChangeDelayedNoteText:
       
   340                 User::After( KFiveSeconds );
       
   341                 TRAP( result, iSifUi->DisplayPermanentNoteL( KChangedDelayedNoteText ) );
       
   342                 break;
       
   343             case ECloseSecondNote:
       
   344                 User::After( KOneSecond );
       
   345                 TRAP( result, iSifUi->ClosePermanentNote() );
       
   346                 break;
       
   347             default:
       
   348                 User::Leave( KErrGeneral );
       
   349                 break;
       
   350             }
       
   351         }
       
   352 
       
   353     delete iSifUi;
       
   354     iSifUi = NULL;
       
   355 
       
   356     SetResult( aResult, result );
       
   357 
       
   358     TestModuleIf().Printf( 0, KTestName, KExit );
       
   359     return KErrNone;
       
   360     }
       
   361 
       
   362 // -----------------------------------------------------------------------------
       
   363 // CSifUiTest::ProgressNoteTest()
       
   364 // -----------------------------------------------------------------------------
       
   365 //
       
   366 TInt CSifUiTest::ProgressNoteTest( TTestResult& aResult )
       
   367     {
       
   368     _LIT( KTestName, "ProgressNoteTest" );
       
   369     TestModuleIf().Printf( 0, KTestName, KEnter );
       
   370 
       
   371     enum TTestSteps
       
   372         {
       
   373         EDisplayProgressNote,
       
   374         EIncreaseBar1,
       
   375         EIncreaseBar2,
       
   376         EChangeProgressText,
       
   377         EIncreaseBar3,
       
   378         EIncreaseBar4,
       
   379         EIncreaseBar5,
       
   380         ECloseProgressNote,
       
   381         EDelayedProgressNote,
       
   382         EAllDone
       
   383         };
       
   384     _LIT( KProgressNoteText, "This is progress note" );
       
   385     _LIT( KChangedProgressNoteText, "Changed progress note text" );
       
   386 
       
   387     const TInt KProgressBarFinalValue = 6;
       
   388     TInt progressBarValue = -1;
       
   389     TRequestStatus reqStatus;       // ignored now, not monitoring if user cancels the note
       
   390     TRequestStatus reqUpdate;
       
   391     TInt result = CreateSifUi();
       
   392     for( TInt step = EDisplayProgressNote; step < EAllDone && result == KErrNone; ++step )
       
   393         {
       
   394         TestModuleIf().Printf( 1, KTestName, KStepFormat, step );
       
   395         switch( step )
       
   396             {
       
   397             case EDisplayProgressNote:
       
   398                 TRAP( result, iSifUi->DisplayProgressNoteL( KProgressNoteText, reqStatus ) );
       
   399                 if( result == KErrNone )
       
   400                     {
       
   401                     TRAP( result, iSifUi->SetProgressNoteFinalValueL( KProgressBarFinalValue ) );
       
   402                     }
       
   403                 break;
       
   404 
       
   405             case EIncreaseBar1:
       
   406             case EIncreaseBar2:
       
   407             case EIncreaseBar3:
       
   408             case EIncreaseBar4:
       
   409             case EIncreaseBar5:
       
   410                 User::After( KOneSecond );
       
   411                 TRAP( result, iSifUi->UpdateProgressNoteValueL( progressBarValue ) );
       
   412                 progressBarValue += 2;
       
   413                 break;
       
   414 
       
   415             case EChangeProgressText:
       
   416                 User::After( KOneSecond );
       
   417                 TRAP( result, iSifUi->DisplayProgressNoteL( KChangedProgressNoteText, reqUpdate ) );
       
   418                 if( result == KErrNone )
       
   419                     {
       
   420                     User::WaitForRequest( reqUpdate );
       
   421                     result = reqUpdate.Int();
       
   422                     }
       
   423                 break;
       
   424 
       
   425             case ECloseProgressNote:
       
   426                 User::After( KOneSecond );
       
   427                 TRAP( result, iSifUi->CloseProgressNoteL() );
       
   428                 if( result == KErrNone )
       
   429                     {
       
   430                     User::WaitForRequest( reqStatus );
       
   431                     result = reqStatus.Int();
       
   432                     }
       
   433                 break;
       
   434 
       
   435             case EDelayedProgressNote:
       
   436                 TRAP( result, iSifUi->DisplayProgressNoteL( KProgressNoteText, reqStatus ) );
       
   437                 if( result == KErrNone )
       
   438                     {
       
   439                     User::After( KHalfSecond );
       
   440                     TRAP( result, iSifUi->CloseProgressNoteL() );
       
   441                     }
       
   442                 break;
       
   443 
       
   444             default:
       
   445                 User::Leave( KErrGeneral );
       
   446                 break;
       
   447             }
       
   448         }
       
   449 
       
   450     delete iSifUi;
       
   451     iSifUi = NULL;
       
   452 
       
   453     SetResult( aResult, result );
       
   454 
       
   455     TestModuleIf().Printf( 0, KTestName, KExit );
       
   456     return KErrNone;
       
   457     }
       
   458 
       
   459 // -----------------------------------------------------------------------------
       
   460 // CSifUiTest::WaitNoteTest()
       
   461 // -----------------------------------------------------------------------------
       
   462 //
       
   463 TInt CSifUiTest::WaitNoteTest( TTestResult& aResult )
       
   464     {
       
   465     _LIT( KTestName, "WaitNoteTest" );
       
   466     TestModuleIf().Printf( 0, KTestName, KEnter );
       
   467 
       
   468     enum TTestSteps
       
   469         {
       
   470         ECloseWaitNoteBeforeItsOpened,
       
   471         EDisplayWaitNote,
       
   472         EChangeDisplayedText,
       
   473         ECloseFirstWaitNote,
       
   474         EDisplayDelayedWaitNote,
       
   475         EChangeDelayedWaitNoteText,
       
   476         ECloseWaitNote,
       
   477         EAllDone
       
   478         };
       
   479     _LIT( KWaitNoteText, "This is wait note" );
       
   480     _LIT( KChangedWaitNoteText, "Changed wait note text" );
       
   481     _LIT( KDelayedWaitNoteText, "This is delayed wait note" );
       
   482     _LIT( KChangedDelayedWaitNoteText, "Changed delayed wait note text" );
       
   483 
       
   484     TInt result = CreateSifUi();
       
   485     TRequestStatus reqStatus;       // ignored now, not monitoring if user cancels the note
       
   486     for( TInt step = EDisplayWaitNote; step < EAllDone && result == KErrNone; ++step )
       
   487         {
       
   488         TestModuleIf().Printf( 1, KTestName, KStepFormat, step );
       
   489         switch( step )
       
   490             {
       
   491             case ECloseWaitNoteBeforeItsOpened:
       
   492                 TRAP( result, iSifUi->CloseWaitNote() );
       
   493                 break;
       
   494             case EDisplayWaitNote:
       
   495                 TRAP( result, iSifUi->DisplayWaitNoteL( KWaitNoteText, reqStatus ) );
       
   496                 if( result == KErrNone && reqStatus != KRequestPending )
       
   497                     {
       
   498                     User::WaitForRequest( reqStatus );
       
   499                     result = reqStatus.Int();
       
   500                     }
       
   501                 break;
       
   502             case EChangeDisplayedText:
       
   503                 User::After( KThreeSeconds );
       
   504                 TRAP( result, iSifUi->DisplayWaitNoteL( KChangedWaitNoteText, reqStatus ) );
       
   505                 if( result == KErrNone && reqStatus != KRequestPending )
       
   506                     {
       
   507                     User::WaitForRequest( reqStatus );
       
   508                     result = reqStatus.Int();
       
   509                     }
       
   510                 break;
       
   511             case ECloseFirstWaitNote:
       
   512                 TRAP( result, iSifUi->CloseWaitNote() );
       
   513                 if( result == KErrNone )
       
   514                     {
       
   515                     User::WaitForRequest( reqStatus );
       
   516                     result = reqStatus.Int();
       
   517                     }
       
   518                 break;
       
   519             case EDisplayDelayedWaitNote:
       
   520                 User::After( KOneSecond );
       
   521                 TRAP( result, iSifUi->DisplayWaitNoteL( KDelayedWaitNoteText, reqStatus ) );
       
   522                 if( result == KErrNone && reqStatus != KRequestPending )
       
   523                     {
       
   524                     User::WaitForRequest( reqStatus );
       
   525                     result = reqStatus.Int();
       
   526                     }
       
   527                 break;
       
   528             case EChangeDelayedWaitNoteText:
       
   529                 User::After( KThreeSeconds );
       
   530                 TRAP( result, iSifUi->DisplayWaitNoteL( KChangedDelayedWaitNoteText, reqStatus ) );
       
   531                 if( result == KErrNone && reqStatus != KRequestPending )
       
   532                     {
       
   533                     User::WaitForRequest( reqStatus );
       
   534                     result = reqStatus.Int();
       
   535                     }
       
   536                 break;
       
   537             case ECloseWaitNote:
       
   538                 User::After( KOneSecond );
       
   539                 TRAP( result, iSifUi->CloseWaitNote() );
       
   540                 if( result == KErrNone )
       
   541                     {
       
   542                     User::WaitForRequest( reqStatus );
       
   543                     result = reqStatus.Int();
       
   544                     }
       
   545                 break;
       
   546             default:
       
   547                 User::Leave( KErrGeneral );
       
   548                 break;
       
   549             }
       
   550         }
       
   551 
       
   552     delete iSifUi;
       
   553     iSifUi = NULL;
       
   554 
       
   555     SetResult( aResult, result );
       
   556 
       
   557     TestModuleIf().Printf( 0, KTestName, KExit );
       
   558     return KErrNone;
       
   559     }
       
   560 
       
   561 // -----------------------------------------------------------------------------
       
   562 // CSifUiTest::LaunchHelpTest()
       
   563 // -----------------------------------------------------------------------------
       
   564 //
       
   565 TInt CSifUiTest::LaunchHelpTest( TTestResult& aResult )
       
   566     {
       
   567     _LIT( KTestName, "LaunchHelpTest" );
       
   568     TestModuleIf().Printf( 0, KTestName, KEnter );
       
   569 
       
   570     TInt result = CreateSifUi();
       
   571     if( result == KErrNone )
       
   572         {
       
   573         AsyncWaitAndSendKeyEventL( KFiveSeconds, KRightSoftkey );
       
   574 
       
   575         _LIT( KAM_HLP_INSTALL_CAPAB, "AM_HLP_INSTALL_CAPAB" );
       
   576         TRAP( result, iSifUi->LaunchHelpL( KAM_HLP_INSTALL_CAPAB ) );
       
   577 
       
   578         delete iSifUi;
       
   579         iSifUi = NULL;
       
   580         }
       
   581     SetResult( aResult, result );
       
   582 
       
   583     TestModuleIf().Printf( 0, KTestName, KExit );
       
   584     return KErrNone;
       
   585     }
       
   586