mmshplugins/mmshaiwplugin/tsrc/ut_aiwplugin/src/ut_musaiwprovider.cpp
branchRCL_3
changeset 33 bc78a40cd63c
parent 32 73a1feb507fb
equal deleted inserted replaced
32:73a1feb507fb 33:bc78a40cd63c
    13 *
    13 *
    14 * Description: 
    14 * Description: 
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 
    18 #include <eikmenup.h>
    19 #include "ut_musaiwprovider.h"
    19 #include "ut_musaiwprovider.h"
    20 #include "musaiwprovider.h"
    20 #include "musaiwprovider.h"
    21 #include "musaiwprovider.hrh"
    21 #include "musaiwprovider.hrh"
    22 #include "musmanagerstub.h"
    22 #include "musmanagerstub.h"
    23 #include "musmanagercommon.h"
    23 #include "musmanagercommon.h"
    25 
    25 
    26 #include <musresourceproperties.h>
    26 #include <musresourceproperties.h>
    27 #include "mussesseioninformationapi.h"
    27 #include "mussesseioninformationapi.h"
    28 #include "mussettings.h"
    28 #include "mussettings.h"
    29 #include "mustesthelp.h"
    29 #include "mustesthelp.h"
    30 #include "mussessionproperties.h"
       
    31 #define MUS_MEMORY_LEAVE_CHECKING_ON
    30 #define MUS_MEMORY_LEAVE_CHECKING_ON
    32 
    31 
    33 #include <e32property.h>
    32 #include <e32property.h>
    34 #include <FeatMgr.h>
    33 #include <FeatMgr.h>
    35 #include <aiwmenu.h>
    34 #include <aiwmenu.h>
    37 #include <alwaysonlinemanagerclient.h>
    36 #include <alwaysonlinemanagerclient.h>
    38 #include <bautils.h>
    37 #include <bautils.h>
    39 #include <digia/eunit/eunitmacros.h>
    38 #include <digia/eunit/eunitmacros.h>
    40 #include <aknglobalnote.h>
    39 #include <aknglobalnote.h>
    41 #include <apgtask.h>
    40 #include <apgtask.h>
    42 #include <eikmenup.h>
       
    43 #include <uikoninternalpskeys.h>
       
    44 
    41 
    45 
    42 
    46 // Next row is to disable warning emerging from EUnit code.
    43 // Next row is to disable warning emerging from EUnit code.
    47 // Placement is due to a fact that most test case files
    44 // Placement is due to a fact that most test case files
    48 // include this file. Directive can be removed when
    45 // include this file. Directive can be removed when
    49 // EUnit is fixed.
    46 // EUnit is fixed.
    50 #pragma warn_illtokenpasting off
    47 #pragma warn_illtokenpasting off
    51 
    48 
    52 _LIT( KMusAiwProviderResource, "c:\\sys\\bin\\musaiwproviderui.rsc" );
    49 _LIT( KMusAiwProviderResource, "c:\\sys\\bin\\musaiwproviderui.rsc" );
    53 _LIT( KResourceFilenameRom,"z:\\sys\\bin\\musaiwproviderui.rsc" );
    50 _LIT( KResourceFilenameRom,"z:\\sys\\bin\\musaiwproviderui.rsc" );
    54 
       
    55 _LIT( KMusOnHold, "On hold" );
       
    56 
    51 
    57 _LIT8( KMusOnHold8, "On hold" );
    52 _LIT8( KMusOnHold8, "On hold" );
    58 _LIT8( KMusNetworkIncompatible8, "Network incompatible" );
    53 _LIT8( KMusNetworkIncompatible8, "Network incompatible" );
    59 _LIT8( KMusConferenceCall8, "Conference call" );
    54 _LIT8( KMusConferenceCall8, "Conference call" );
    60 _LIT8( KMusRecipientIncapable8, "Recipient incapable" );
    55 _LIT8( KMusRecipientIncapable8, "Recipient incapable" );
   162     {
   157     {
   163     iProvider = CMusAiwProvider::NewL();
   158     iProvider = CMusAiwProvider::NewL();
   164     CMusManager::SetUseCase( MultimediaSharing::EMusContinue );
   159     CMusManager::SetUseCase( MultimediaSharing::EMusContinue );
   165     CMusManager::SetStartError( KErrNone );
   160     CMusManager::SetStartError( KErrNone );
   166     CMusManager::SetAvailability( KErrNone );
   161     CMusManager::SetAvailability( KErrNone );
   167     MultimediaSharingSettings::SetPropertyValueL( 
       
   168                   MusSettingsKeys::KFastStartupMode, MusSettingsKeys::EFastModeOff );
       
   169     
   162     
   170     }
   163     }
   171 
   164 
   172 
   165 
   173 // -----------------------------------------------------------------------------
   166 // -----------------------------------------------------------------------------
   175 // -----------------------------------------------------------------------------
   168 // -----------------------------------------------------------------------------
   176 //
   169 //
   177 void UT_CMusAiwProvider::Teardown(  )
   170 void UT_CMusAiwProvider::Teardown(  )
   178     {
   171     {
   179     delete iProvider;
   172     delete iProvider;
   180     PropertyHelper::Close();
       
   181     }
   173     }
   182 
   174 
   183 
   175 
   184 // -----------------------------------------------------------------------------
   176 // -----------------------------------------------------------------------------
   185 // -----------------------------------------------------------------------------
   177 // -----------------------------------------------------------------------------
   279 //
   271 //
   280 // -----------------------------------------------------------------------------
   272 // -----------------------------------------------------------------------------
   281 //
   273 //
   282 void UT_CMusAiwProvider::UT_CMusAiwProvider_InitializeMenuPaneLL()
   274 void UT_CMusAiwProvider::UT_CMusAiwProvider_InitializeMenuPaneLL()
   283     {    
   275     {    
       
   276 
       
   277     
   284     RFs fs;
   278     RFs fs;
   285     User::LeaveIfError( fs.Connect() );
   279     User::LeaveIfError( fs.Connect() );
       
   280 
   286     CleanupClosePushL( fs );
   281     CleanupClosePushL( fs );
   287     
   282 
   288     BaflUtils::CopyFile( fs, KMusAiwProviderResource(),
   283     BaflUtils::CopyFile( fs, KMusAiwProviderResource(),
   289                          KResourceFilenameRom() );
   284                          KResourceFilenameRom() );
   290 
   285 
   291     CAiwGenericParamList* list = CAiwGenericParamList::NewLC();
   286     CAiwGenericParamList* list = CAiwGenericParamList::NewLC();
   292 
   287 
   293     CEikMenuPane* eikPane = NULL;
   288     CEikMenuPane* eikPane = new( ELeave ) CEikMenuPane( this );
   294     CAiwMenuPane* aiwPane = CreateAiwMenuPaneLC( &eikPane );
   289     CleanupStack::PushL( eikPane );
       
   290 
       
   291     // Constructing eikPane is not compulsory for testing and leads to a memory
       
   292     // leak.
       
   293     //eikPane->ConstructL( NULL, this );
       
   294 
       
   295     CAiwMenuPane* aiwPane = new( ELeave ) CAiwMenuPane( *eikPane, 0 ); //Takes ownership
       
   296     CleanupStack::Pop( eikPane );
       
   297     CleanupStack::PushL( aiwPane );
   295 
   298 
   296     // ResourceFile is empty 
   299     // ResourceFile is empty 
   297     delete iProvider->iResourceFileName;
   300     delete iProvider->iResourceFileName;
   298     
   301     
   299     iProvider->iResourceFileName = NULL ;
   302     iProvider->iResourceFileName = NULL ;
   367     CleanupStack::PopAndDestroy(); //  
   370     CleanupStack::PopAndDestroy(); //  
   368     }
   371     }
   369 
   372 
   370 void UT_CMusAiwProvider::UT_CMusAiwProvider_InitializeMenuPaneL2L()
   373 void UT_CMusAiwProvider::UT_CMusAiwProvider_InitializeMenuPaneL2L()
   371     {    
   374     {    
       
   375 
   372     RFs fs;
   376     RFs fs;
   373     User::LeaveIfError( fs.Connect() );
   377     User::LeaveIfError( fs.Connect() );
       
   378 
   374     CleanupClosePushL( fs );
   379     CleanupClosePushL( fs );
   375     
   380 
   376     BaflUtils::CopyFile( fs, KMusAiwProviderResource(),
   381     BaflUtils::CopyFile( fs, KMusAiwProviderResource(),
   377                          KResourceFilenameRom() );
   382                          KResourceFilenameRom() );
   378 
   383 
   379     CAiwGenericParamList* list = CAiwGenericParamList::NewLC();
   384     CAiwGenericParamList* list = CAiwGenericParamList::NewLC();
   380 
   385 
   381     CEikMenuPane* eikPane = NULL;
   386     CEikMenuPane* eikPane = new( ELeave ) CEikMenuPane( this );
   382     CAiwMenuPane* aiwPane = CreateAiwMenuPaneLC( &eikPane );
   387     CleanupStack::PushL( eikPane );
   383     
   388 
       
   389     // Constructing eikPane is not compulsory for testing and leads to a memory
       
   390     // leak.
       
   391     //eikPane->ConstructL( NULL, this );
       
   392 
       
   393     CAiwMenuPane* aiwPane = new( ELeave ) CAiwMenuPane( *eikPane, 0 ); //Takes ownership
       
   394     CleanupStack::Pop( eikPane );
       
   395     CleanupStack::PushL( aiwPane );
       
   396 
   384     // ResourceFile is empty 
   397     // ResourceFile is empty 
   385     delete iProvider->iResourceFileName;
   398     delete iProvider->iResourceFileName;
   386     
   399     
   387     iProvider->iResourceFileName = NULL ;
   400     iProvider->iResourceFileName = NULL ;
   388 
   401 
   426     }
   439     }
   427 
   440 
   428 
   441 
   429 void UT_CMusAiwProvider::UT_CMusAiwProvider_InitializeMenuPaneL3L()
   442 void UT_CMusAiwProvider::UT_CMusAiwProvider_InitializeMenuPaneL3L()
   430     {    
   443     {    
       
   444 
   431     RFs fs;
   445     RFs fs;
   432     User::LeaveIfError( fs.Connect() );
   446     User::LeaveIfError( fs.Connect() );
       
   447 
   433     CleanupClosePushL( fs );
   448     CleanupClosePushL( fs );
   434     
   449 
   435     BaflUtils::CopyFile( fs, KMusAiwProviderResource(),
   450     BaflUtils::CopyFile( fs, KMusAiwProviderResource(),
   436                          KResourceFilenameRom() );
   451                          KResourceFilenameRom() );
   437 
   452 
   438     CAiwGenericParamList* list = CAiwGenericParamList::NewLC();
   453     CAiwGenericParamList* list = CAiwGenericParamList::NewLC();
   439 
   454 
   440     CEikMenuPane* eikPane = NULL;
   455     CEikMenuPane* eikPane = new( ELeave ) CEikMenuPane( this );
   441     CAiwMenuPane* aiwPane = CreateAiwMenuPaneLC( &eikPane );
   456     CleanupStack::PushL( eikPane );
       
   457 
       
   458     // Constructing eikPane is not compulsory for testing and leads to a memory
       
   459     // leak.
       
   460     //eikPane->ConstructL( NULL, this );
       
   461 
       
   462     CAiwMenuPane* aiwPane = new( ELeave ) CAiwMenuPane( *eikPane, 0 ); //Takes ownership
       
   463     CleanupStack::Pop( eikPane );
       
   464     CleanupStack::PushL( aiwPane );
   442 
   465 
   443     // ResourceFile is empty 
   466     // ResourceFile is empty 
   444     delete iProvider->iResourceFileName;
   467     delete iProvider->iResourceFileName;
   445     
   468     
   446     iProvider->iResourceFileName = NULL ;
   469     iProvider->iResourceFileName = NULL ;
   483     }
   506     }
   484 
   507 
   485 
   508 
   486 void UT_CMusAiwProvider::UT_CMusAiwProvider_InitializeMenuPaneL4L()
   509 void UT_CMusAiwProvider::UT_CMusAiwProvider_InitializeMenuPaneL4L()
   487     {    
   510     {    
       
   511 
   488     RFs fs;
   512     RFs fs;
   489     User::LeaveIfError( fs.Connect() );
   513     User::LeaveIfError( fs.Connect() );
       
   514 
   490     CleanupClosePushL( fs );
   515     CleanupClosePushL( fs );
   491     
   516 
   492     BaflUtils::CopyFile( fs, KMusAiwProviderResource(),
   517     BaflUtils::CopyFile( fs, KMusAiwProviderResource(),
   493                          KResourceFilenameRom() );
   518                          KResourceFilenameRom() );
   494 
   519 
   495     CAiwGenericParamList* list = CAiwGenericParamList::NewLC();
   520     CAiwGenericParamList* list = CAiwGenericParamList::NewLC();
   496 
   521 
   497     CEikMenuPane* eikPane = NULL;
   522     CEikMenuPane* eikPane = new( ELeave ) CEikMenuPane( this );
   498     CAiwMenuPane* aiwPane = CreateAiwMenuPaneLC( &eikPane );
   523     CleanupStack::PushL( eikPane );
       
   524 
       
   525     // Constructing eikPane is not compulsory for testing and leads to a memory
       
   526     // leak.
       
   527     //eikPane->ConstructL( NULL, this );
       
   528 
       
   529     CAiwMenuPane* aiwPane = new( ELeave ) CAiwMenuPane( *eikPane, 0 ); //Takes ownership
       
   530     CleanupStack::Pop( eikPane );
       
   531     CleanupStack::PushL( aiwPane );
   499 
   532 
   500     // ResourceFile is empty 
   533     // ResourceFile is empty 
   501     delete iProvider->iResourceFileName;
   534     delete iProvider->iResourceFileName;
   502     
   535     
   503     iProvider->iResourceFileName = NULL ;
   536     iProvider->iResourceFileName = NULL ;
   540     
   573     
   541     }
   574     }
   542 
   575 
   543 void UT_CMusAiwProvider::UT_CMusAiwProvider_InitializeMenuPaneL5L()
   576 void UT_CMusAiwProvider::UT_CMusAiwProvider_InitializeMenuPaneL5L()
   544     {    
   577     {    
       
   578 
   545     RFs fs;
   579     RFs fs;
   546     User::LeaveIfError( fs.Connect() );
   580     User::LeaveIfError( fs.Connect() );
       
   581 
   547     CleanupClosePushL( fs );
   582     CleanupClosePushL( fs );
   548     
   583 
   549     BaflUtils::CopyFile( fs, KMusAiwProviderResource(),
   584     BaflUtils::CopyFile( fs, KMusAiwProviderResource(),
   550                          KResourceFilenameRom() );
   585                          KResourceFilenameRom() );
   551 
   586 
   552     CAiwGenericParamList* list = CAiwGenericParamList::NewLC();
   587     CAiwGenericParamList* list = CAiwGenericParamList::NewLC();
   553 
   588 
   554     CEikMenuPane* eikPane = NULL;
   589     CEikMenuPane* eikPane = new( ELeave ) CEikMenuPane( this );
   555     CAiwMenuPane* aiwPane = CreateAiwMenuPaneLC( &eikPane );
   590     CleanupStack::PushL( eikPane );
       
   591 
       
   592     // Constructing eikPane is not compulsory for testing and leads to a memory
       
   593     // leak.
       
   594     //eikPane->ConstructL( NULL, this );
       
   595 
       
   596     CAiwMenuPane* aiwPane = new( ELeave ) CAiwMenuPane( *eikPane, 0 ); //Takes ownership
       
   597     CleanupStack::Pop( eikPane );
       
   598     CleanupStack::PushL( aiwPane );
   556 
   599 
   557     // ResourceFile is empty 
   600     // ResourceFile is empty 
   558     delete iProvider->iResourceFileName;
   601     delete iProvider->iResourceFileName;
   559     
   602     
   560     iProvider->iResourceFileName = NULL ;
   603     iProvider->iResourceFileName = NULL ;
   599     
   642     
   600     }
   643     }
   601 
   644 
   602 void UT_CMusAiwProvider::UT_CMusAiwProvider_InitializeMenuPaneL6L()
   645 void UT_CMusAiwProvider::UT_CMusAiwProvider_InitializeMenuPaneL6L()
   603     {    
   646     {    
       
   647 
   604     RFs fs;
   648     RFs fs;
   605     User::LeaveIfError( fs.Connect() );
   649     User::LeaveIfError( fs.Connect() );
       
   650 
   606     CleanupClosePushL( fs );
   651     CleanupClosePushL( fs );
   607     
   652 
   608     BaflUtils::CopyFile( fs, KMusAiwProviderResource(),
   653     BaflUtils::CopyFile( fs, KMusAiwProviderResource(),
   609                          KResourceFilenameRom() );
   654                          KResourceFilenameRom() );
   610 
   655 
   611     CAiwGenericParamList* list = CAiwGenericParamList::NewLC();
   656     CAiwGenericParamList* list = CAiwGenericParamList::NewLC();
   612 
   657 
   613     CEikMenuPane* eikPane = NULL;
   658     CEikMenuPane* eikPane = new( ELeave ) CEikMenuPane( this );
   614     CAiwMenuPane* aiwPane = CreateAiwMenuPaneLC( &eikPane );
   659     CleanupStack::PushL( eikPane );
       
   660 
       
   661     // Constructing eikPane is not compulsory for testing and leads to a memory
       
   662     // leak.
       
   663     //eikPane->ConstructL( NULL, this );
       
   664 
       
   665     CAiwMenuPane* aiwPane = new( ELeave ) CAiwMenuPane( *eikPane, 0 ); //Takes ownership
       
   666     CleanupStack::Pop( eikPane );
       
   667     CleanupStack::PushL( aiwPane );
   615 
   668 
   616     // ResourceFile is empty 
   669     // ResourceFile is empty 
   617     delete iProvider->iResourceFileName;
   670     delete iProvider->iResourceFileName;
   618     
   671     
   619     iProvider->iResourceFileName = NULL ;
   672     iProvider->iResourceFileName = NULL ;
   655 
   708 
   656     CleanupStack::PopAndDestroy(); // fs
   709     CleanupStack::PopAndDestroy(); // fs
   657     
   710     
   658     }
   711     }
   659 
   712 
   660 void UT_CMusAiwProvider::UT_CMusAiwProvider_InitializeMenuPaneLFastModeL()
   713 
       
   714 void UT_CMusAiwProvider::UT_CMusAiwProvider_InitializeMenuPaneL7L()
   661     {    
   715     {    
       
   716 
   662     RFs fs;
   717     RFs fs;
   663     User::LeaveIfError( fs.Connect() );
   718     User::LeaveIfError( fs.Connect() );
       
   719 
   664     CleanupClosePushL( fs );
   720     CleanupClosePushL( fs );
   665     
   721 
   666     BaflUtils::CopyFile( fs, KMusAiwProviderResource(),
   722     BaflUtils::CopyFile( fs, KMusAiwProviderResource(),
   667                          KResourceFilenameRom() );
   723                          KResourceFilenameRom() );
   668 
   724 
   669     CAiwGenericParamList* list = CAiwGenericParamList::NewLC();
   725     CAiwGenericParamList* list = CAiwGenericParamList::NewLC();
   670 
   726 
   671     CEikMenuPane* eikPane = NULL;
   727     CEikMenuPane* eikPane = new( ELeave ) CEikMenuPane( this );
   672     CAiwMenuPane* aiwPane = CreateAiwMenuPaneLC( &eikPane );
   728     CleanupStack::PushL( eikPane );
       
   729 
       
   730     // Constructing eikPane is not compulsory for testing and leads to a memory
       
   731     // leak.
       
   732     //eikPane->ConstructL( NULL, this );
       
   733 
       
   734     CAiwMenuPane* aiwPane = new( ELeave ) CAiwMenuPane( *eikPane, 0 ); //Takes ownership
       
   735     CleanupStack::Pop( eikPane );
       
   736     CleanupStack::PushL( aiwPane );
   673 
   737 
   674     // ResourceFile is empty 
   738     // ResourceFile is empty 
   675     delete iProvider->iResourceFileName;
   739     delete iProvider->iResourceFileName;
   676     
   740     
   677     iProvider->iResourceFileName = NULL ;
   741     iProvider->iResourceFileName = NULL ;
   678     iProvider->InitializeMenuPaneL( *aiwPane, 0, 0, *list );
   742     iProvider->InitializeMenuPaneL( *aiwPane, 0, 0, *list );
   679     EUNIT_ASSERT( iProvider->iResourceFileName != NULL )
   743     EUNIT_ASSERT( iProvider->iResourceFileName != NULL )
   680     // Menu item counter
   744     // Menu item counter
   681     TInt menuPaneCount = eikPane->NumberOfItemsInPane();
   745     TInt menuPaneCount = eikPane->NumberOfItemsInPane();
       
   746 
       
   747     // test "forbidden" feature: mus NOT allowed, operator variant set to operator
       
   748     MultimediaSharingSettings::SetOperatorVariantSettingL(
       
   749                      MusSettingsKeys::EOperatorSpecific );
       
   750     RProperty::Set( NMusSessionInformationApi::KCategoryUid,
       
   751                     NMusSessionInformationApi::KMUSForbidden,
       
   752                     NMusSessionInformationApi::EMUSForbidden );    
       
   753     EUNIT_ASSERT( eikPane->NumberOfItemsInPane() == menuPaneCount )
   682 
   754 
   683     // set operator back to standard and allow mus
   755     // set operator back to standard and allow mus
   684     RProperty::Set( NMusSessionInformationApi::KCategoryUid ,
   756     RProperty::Set( NMusSessionInformationApi::KCategoryUid ,
   685                     NMusSessionInformationApi::KMUSForbidden ,
   757                     NMusSessionInformationApi::KMUSForbidden ,
   686                     NMusSessionInformationApi::EMUSAllowed );
   758                     NMusSessionInformationApi::EMUSAllowed );
   687     MultimediaSharingSettings::SetOperatorVariantSettingL(
   759     MultimediaSharingSettings::SetOperatorVariantSettingL(
   688                      MusSettingsKeys::EStandard );
   760                      MusSettingsKeys::EStandard );
   689     MultimediaSharingSettings::SetPropertyValueL( 
   761 
   690               MusSettingsKeys::KFastStartupMode, MusSettingsKeys::EFastModeOn );
   762     // Cases for "Mush not supported"
   691  
   763     FeatureManager::MultimediaSharingNotSupported();
   692     // Options not enabled, mus shown in menu
   764     CMusManager::SetAvailability( MultimediaSharing::EMultimediaSharingAvailable );
   693     //
       
   694     MultimediaSharingSettings::SetCapabilityQuerySettingL(
       
   695               MusSettingsKeys::ENoOptions );
       
   696     CMusManager::SetAvailability(MultimediaSharing::EMultimediaSharingAvailable);
       
   697     menuPaneCount = eikPane->NumberOfItemsInPane();
   765     menuPaneCount = eikPane->NumberOfItemsInPane();
   698     iProvider->InitializeMenuPaneL( *aiwPane, 0, 0, *list );
   766     iProvider->InitializeMenuPaneL( *aiwPane, 0, 0, *list );
   699     
       
   700     MUS_CHECK_MEMORY_LEAVE( eikPane->NumberOfItemsInPane() == menuPaneCount + 3 )
       
   701 
       
   702     // Options supported, not yet available, mus not shown in menu
       
   703     //
       
   704     MultimediaSharingSettings::SetCapabilityQuerySettingL(
       
   705                   MusSettingsKeys::EParallel );
       
   706     CMusManager::SetAvailability(MultimediaSharing::ESipOptionsSent);
       
   707     menuPaneCount = eikPane->NumberOfItemsInPane();
       
   708     iProvider->InitializeMenuPaneL( *aiwPane, 0, 0, *list );
       
   709    
       
   710     MUS_CHECK_MEMORY_LEAVE( eikPane->NumberOfItemsInPane() == menuPaneCount )
   767     MUS_CHECK_MEMORY_LEAVE( eikPane->NumberOfItemsInPane() == menuPaneCount )
   711     
   768     FeatureManager::MultimediaSharingSupported();
       
   769 
       
   770     // set camera support on
       
   771     FeatureManager::CameraSupported();
   712     CleanupStack::PopAndDestroy( aiwPane );
   772     CleanupStack::PopAndDestroy( aiwPane );
   713     CleanupStack::PopAndDestroy( list );
   773     CleanupStack::PopAndDestroy( list );
   714     BaflUtils::DeleteFile( fs, KResourceFilenameRom() );
   774     BaflUtils::DeleteFile( fs, KResourceFilenameRom() );
   715 
   775 
   716     CleanupStack::PopAndDestroy(); // fs
   776     CleanupStack::PopAndDestroy(); // fs
   717     
   777     
   718     }
   778     }
   719 
   779 	
   720 // -----------------------------------------------------------------------------
   780 	
   721 //
       
   722 // -----------------------------------------------------------------------------
       
   723 //
       
   724 void UT_CMusAiwProvider::UT_CMusAiwProvider_InitializeMenuPaneLFastMode2L()
       
   725     {
       
   726     RFs fs;
       
   727     User::LeaveIfError( fs.Connect() );
       
   728     CleanupClosePushL( fs );
       
   729     
       
   730     BaflUtils::CopyFile( fs, KMusAiwProviderResource(),
       
   731                          KResourceFilenameRom() );
       
   732 
       
   733     CAiwGenericParamList* list = CAiwGenericParamList::NewLC();
       
   734 
       
   735     CEikMenuPane* eikPane = NULL;
       
   736     CAiwMenuPane* aiwPane = CreateAiwMenuPaneLC( &eikPane );
       
   737    
       
   738     // ResourceFile is empty 
       
   739     delete iProvider->iResourceFileName;
       
   740     
       
   741     iProvider->iResourceFileName = NULL ;
       
   742     iProvider->InitializeMenuPaneL( *aiwPane, 0, 0, *list );
       
   743     EUNIT_ASSERT( iProvider->iResourceFileName != NULL )
       
   744 
       
   745     // Options supported, available, mus shown in menu
       
   746     //
       
   747     MultimediaSharingSettings::SetPropertyValueL( 
       
   748               MusSettingsKeys::KFastStartupMode, MusSettingsKeys::EFastModeOn );
       
   749 
       
   750     MultimediaSharingSettings::SetCapabilityQuerySettingL(
       
   751                   MusSettingsKeys::EParallel );
       
   752 
       
   753     CMusManager::SetAvailability(MultimediaSharing::EMultimediaSharingAvailable);
       
   754     TInt menuPaneCount = eikPane->NumberOfItemsInPane();
       
   755     iProvider->InitializeMenuPaneL( *aiwPane, 0, 0, *list );
       
   756 
       
   757     MUS_CHECK_MEMORY_LEAVE( eikPane->NumberOfItemsInPane() == menuPaneCount + 3 )
       
   758     
       
   759     CleanupStack::PopAndDestroy( aiwPane );
       
   760     CleanupStack::PopAndDestroy( list );
       
   761     BaflUtils::DeleteFile( fs, KResourceFilenameRom() );
       
   762 
       
   763     CleanupStack::PopAndDestroy(); // fs
       
   764     }
       
   765 
       
   766 // -----------------------------------------------------------------------------
   781 // -----------------------------------------------------------------------------
   767 //
   782 //
   768 // -----------------------------------------------------------------------------
   783 // -----------------------------------------------------------------------------
   769 //
   784 //
   770 void UT_CMusAiwProvider::UT_CMusAiwProvider_HandleMenuCmdLL()
   785 void UT_CMusAiwProvider::UT_CMusAiwProvider_HandleMenuCmdLL()
   775 
   790 
   776     iProvider->HandleMenuCmdL( EMusCommandLiveShare, *pl, *pl, 0, this );
   791     iProvider->HandleMenuCmdL( EMusCommandLiveShare, *pl, *pl, 0, this );
   777     EUNIT_ASSERT( CMusManager::UseCase() == MultimediaSharing::EMusLiveVideo )
   792     EUNIT_ASSERT( CMusManager::UseCase() == MultimediaSharing::EMusLiveVideo )
   778 
   793 
   779     iProvider->HandleMenuCmdL( EMusCommandClipShare, *pl, *pl, 0, this );
   794     iProvider->HandleMenuCmdL( EMusCommandClipShare, *pl, *pl, 0, this );
   780     MUS_CHECK_MEMORY_LEAVE( CMusManager::UseCase() == MultimediaSharing::EMusClipVideo  )
       
   781     EUNIT_ASSERT( CMusManager::UseCase() == MultimediaSharing::EMusClipVideo )
   795     EUNIT_ASSERT( CMusManager::UseCase() == MultimediaSharing::EMusClipVideo )
   782 
   796 
   783     iProvider->HandleMenuCmdL( EMusCommandImageShare, *pl, *pl, 0, this );
   797     iProvider->HandleMenuCmdL( EMusCommandImageShare, *pl, *pl, 0, this );
   784     MUS_CHECK_MEMORY_LEAVE( CMusManager::UseCase() == MultimediaSharing::EMusStillImage  )
       
   785     EUNIT_ASSERT( CMusManager::UseCase() == MultimediaSharing::EMusStillImage )
   798     EUNIT_ASSERT( CMusManager::UseCase() == MultimediaSharing::EMusStillImage )
   786 
   799 
   787     iProvider->HandleMenuCmdL( EMusCommandContinue, *pl, *pl, 0, this );
   800     iProvider->HandleMenuCmdL( EMusCommandContinue, *pl, *pl, 0, this );
   788     MUS_CHECK_MEMORY_LEAVE( CMusManager::UseCase() == MultimediaSharing::EMusContinue  )
       
   789     EUNIT_ASSERT( CMusManager::UseCase() == MultimediaSharing::EMusContinue )
   801     EUNIT_ASSERT( CMusManager::UseCase() == MultimediaSharing::EMusContinue )
   790 
   802 
   791     CMusManager::SetStartError(
   803     CMusManager::SetStartError(
   792             ( MultimediaSharing::TMusAvailabilityStatus ) KErrNotFound );
   804             ( MultimediaSharing::TMusAvailabilityStatus ) KErrNotFound );
   793 
   805 
   824 
   836 
   825 // -----------------------------------------------------------------------------
   837 // -----------------------------------------------------------------------------
   826 //
   838 //
   827 // -----------------------------------------------------------------------------
   839 // -----------------------------------------------------------------------------
   828 //
   840 //
   829 void UT_CMusAiwProvider::UT_CMusAiwProvider_HandleMenuCmdLFastModeL()
       
   830     {
       
   831     CAiwGenericParamList* pl = CAiwGenericParamList::NewLC();
       
   832     
       
   833     MultimediaSharingSettings::SetPropertyValueL( 
       
   834                MusSettingsKeys::KFastStartupMode, MusSettingsKeys::EFastModeOn );
       
   835     
       
   836     // Fast mode, start live sharing (handle normally)
       
   837     CMusManager::SetUseCase( MultimediaSharing::EMusContinue );
       
   838     iProvider->HandleMenuCmdL( EMusCommandLiveShare, *pl, *pl, 0, this );
       
   839     MUS_CHECK_MEMORY_LEAVE( CMusManager::UseCase() == MultimediaSharing::EMusLiveVideo  )
       
   840     EUNIT_ASSERT( CMusManager::UseCase() == MultimediaSharing::EMusLiveVideo )
       
   841 
       
   842     // Fast mode, start clip sharing, app not running nor hidden (handle normally)
       
   843     CMusManager::SetUseCase( MultimediaSharing::EMusContinue );
       
   844     iProvider->HandleMenuCmdL( EMusCommandClipShare, *pl, *pl, 0, this );
       
   845     MUS_CHECK_MEMORY_LEAVE( CMusManager::UseCase() == MultimediaSharing::EMusClipVideo  )
       
   846     EUNIT_ASSERT( CMusManager::UseCase() == MultimediaSharing::EMusClipVideo )
       
   847         
       
   848     // Fast mode, start clip sharing, app running and hidden (mus mgr is not
       
   849     // used for starting application, only usecase P&S value is changed)
       
   850     CMusManager::SetUseCase( MultimediaSharing::EMusContinue );
       
   851     
       
   852     TApaTask::iApplicationExist = ETrue;
       
   853     
       
   854     TBuf16< 10 > listOkMus; 
       
   855     TUint16 upperBits = KMusUiUid >> 16;  
       
   856     listOkMus.Append( upperBits );
       
   857     listOkMus.Append( KMusUiUid );
       
   858     listOkMus.Append( 0 );
       
   859     listOkMus.Append( 0 );
       
   860     RProperty::Set( KPSUidUikon, KUikAppHiddenList, listOkMus );  
       
   861     
       
   862     RProperty::Set( NMusSessionApi::KCategoryUid, NMusSessionApi::KUseCase, MultimediaSharing::EMusContinue );
       
   863     
       
   864     iProvider->HandleMenuCmdL( EMusCommandClipShare, *pl, *pl, 0, this );
       
   865     EUNIT_ASSERT( CMusManager::UseCase() == MultimediaSharing::EMusContinue )
       
   866     
       
   867     TInt usecaseAfterFakeStart( 0 );
       
   868     RProperty::Get( NMusSessionApi::KCategoryUid, NMusSessionApi::KUseCase, usecaseAfterFakeStart );
       
   869     EUNIT_ASSERT( usecaseAfterFakeStart == MultimediaSharing::EMusClipVideo );
       
   870     
       
   871     CleanupStack::PopAndDestroy( pl );
       
   872 
       
   873     }
       
   874 
       
   875 // -----------------------------------------------------------------------------
       
   876 //
       
   877 // -----------------------------------------------------------------------------
       
   878 //
       
   879 void UT_CMusAiwProvider::UT_CMusAiwProvider_ApplicationRunningLL()
   841 void UT_CMusAiwProvider::UT_CMusAiwProvider_ApplicationRunningLL()
   880     {
   842     {
   881     TApaTask::iApplicationExist = EFalse;
   843     // Stub returns EFalse as default
   882     EUNIT_ASSERT( !iProvider->ApplicationRunningL() )
   844     EUNIT_ASSERT( !iProvider->ApplicationRunningL() )
   883 
   845 
   884     // Use stub to mimic the existence of application
   846     // Use stub to mimic the existence of application
   885     TApaTask::iApplicationExist = ETrue;
   847     TApaTask::iApplicationExist = ETrue;
   886 
   848 
  1007     // Dummy test just to raise coverage
   969     // Dummy test just to raise coverage
  1008     TInt tableCount;
   970     TInt tableCount;
  1009     ImplementationGroupProxy( tableCount );
   971     ImplementationGroupProxy( tableCount );
  1010     }
   972     }
  1011 
   973 
  1012 // -----------------------------------------------------------------------------
   974 
  1013 //
   975 
  1014 // -----------------------------------------------------------------------------
       
  1015 //
       
  1016 void UT_CMusAiwProvider::UT_HiddenFromFastSwapL()
       
  1017     {
       
  1018     // Normal mode
       
  1019     MultimediaSharingSettings::SetPropertyValueL( 
       
  1020                 MusSettingsKeys::KFastStartupMode, MusSettingsKeys::EFastModeOff );
       
  1021     EUNIT_ASSERT( !iProvider->HiddenFromFastSwapL() )
       
  1022     
       
  1023     // Fast mode
       
  1024     //
       
  1025     MultimediaSharingSettings::SetPropertyValueL( 
       
  1026                MusSettingsKeys::KFastStartupMode, MusSettingsKeys::EFastModeOn );
       
  1027     
       
  1028     // Key not found
       
  1029     PropertyHelper::SetErrorCode( KErrNotFound );
       
  1030     EUNIT_ASSERT( !iProvider->HiddenFromFastSwapL() )
       
  1031     
       
  1032     // Malformed key value
       
  1033     PropertyHelper::SetErrorCode( KErrNone );
       
  1034     TBuf16< 5 > listMalformed;
       
  1035     listMalformed.Copy( _L("05645") );
       
  1036     RProperty::Set( KPSUidUikon, KUikAppHiddenList, listMalformed );   
       
  1037     MUS_EUNIT_ASSERT_SPECIFIC_LEAVE( iProvider->HiddenFromFastSwapL(), KErrEof );
       
  1038     
       
  1039     // No musuid in value list
       
  1040     TBuf16< 6 > listOkNoMus;
       
  1041     TUint32 uid1 = 10002000;
       
  1042     TUint32 uid2 = 20003000;
       
  1043     // avkoncapserver publishes values in following manner
       
  1044     TUint16 upperBits = uid1 >> 16;
       
  1045     listOkNoMus.Append( upperBits );
       
  1046     listOkNoMus.Append( uid1 );
       
  1047     upperBits = uid2 >> 16;
       
  1048     listOkNoMus.Append( upperBits );
       
  1049     listOkNoMus.Append( uid2 );
       
  1050     listOkNoMus.Append( 0 );
       
  1051     listOkNoMus.Append( 0 );
       
  1052     RProperty::Set( KPSUidUikon, KUikAppHiddenList, listOkNoMus );  
       
  1053     EUNIT_ASSERT( !iProvider->HiddenFromFastSwapL() )
       
  1054     
       
  1055     // Musuid in value list
       
  1056     TBuf16< 10 > listOkMus;
       
  1057     TUint32 uid3 = 30005000;
       
  1058     upperBits = uid1 >> 16;
       
  1059     listOkMus.Append( upperBits );
       
  1060     listOkMus.Append( uid1 );
       
  1061     upperBits = uid2 >> 16;
       
  1062     listOkMus.Append( upperBits );
       
  1063     listOkMus.Append( uid2 );
       
  1064     
       
  1065     upperBits = KMusUiUid >> 16;  
       
  1066     listOkMus.Append( upperBits );
       
  1067     listOkMus.Append( KMusUiUid );
       
  1068     
       
  1069     upperBits = uid3 >> 16;
       
  1070     listOkMus.Append( upperBits );
       
  1071     listOkMus.Append( uid3 );
       
  1072     
       
  1073     listOkMus.Append( 0 );
       
  1074     listOkMus.Append( 0 );
       
  1075     RProperty::Set( KPSUidUikon, KUikAppHiddenList, listOkMus );  
       
  1076     EUNIT_ASSERT( iProvider->HiddenFromFastSwapL() )
       
  1077     }
       
  1078 
       
  1079 // HELPERS
       
  1080 
       
  1081 CAiwMenuPane* UT_CMusAiwProvider::CreateAiwMenuPaneLC( CEikMenuPane** aEikPane )
       
  1082     {
       
  1083     CEikMenuPane* eikPane = new( ELeave ) CEikMenuPane( this );
       
  1084     CleanupStack::PushL( eikPane );
       
  1085 
       
  1086     // Constructing eikPane is not compulsory for testing and leads to a memory
       
  1087     // leak.
       
  1088     //eikPane->ConstructL( NULL, this );
       
  1089 
       
  1090     CAiwMenuPane* aiwPane = new( ELeave ) CAiwMenuPane( *eikPane, 0 ); //Takes ownership
       
  1091     CleanupStack::Pop( eikPane );
       
  1092     CleanupStack::PushL( aiwPane );
       
  1093     *aEikPane = eikPane;
       
  1094     return aiwPane;
       
  1095     }
       
  1096 
   976 
  1097 //  TEST TABLE
   977 //  TEST TABLE
  1098 
   978 
  1099 EUNIT_BEGIN_TEST_TABLE(
   979 EUNIT_BEGIN_TEST_TABLE(
  1100     UT_CMusAiwProvider,
   980     UT_CMusAiwProvider,
  1151     "InitializeMenuPaneL - test6",
  1031     "InitializeMenuPaneL - test6",
  1152     "CMusAiwProvider",
  1032     "CMusAiwProvider",
  1153     "InitializeMenuPaneL",
  1033     "InitializeMenuPaneL",
  1154     "FUNCTIONALITY",
  1034     "FUNCTIONALITY",
  1155     SetupL, UT_CMusAiwProvider_InitializeMenuPaneL6L, Teardown)
  1035     SetupL, UT_CMusAiwProvider_InitializeMenuPaneL6L, Teardown)
  1156 
  1036     
  1157 EUNIT_TEST(
  1037 EUNIT_TEST(
  1158     "InitializeMenuPaneL - fast mode",
  1038     "InitializeMenuPaneL - test7",
  1159     "CMusAiwProvider",
  1039     "CMusAiwProvider",
  1160     "InitializeMenuPaneL",
  1040     "InitializeMenuPaneL",
  1161     "FUNCTIONALITY",
  1041     "FUNCTIONALITY",
  1162     SetupL, UT_CMusAiwProvider_InitializeMenuPaneLFastModeL, Teardown)
  1042     SetupL, UT_CMusAiwProvider_InitializeMenuPaneL7L, Teardown)
  1163 
  1043 	     
  1164 EUNIT_TEST(
       
  1165     "InitializeMenuPaneL - fast mode 2",
       
  1166     "CMusAiwProvider",
       
  1167     "InitializeMenuPaneL",
       
  1168     "FUNCTIONALITY",
       
  1169     SetupL, UT_CMusAiwProvider_InitializeMenuPaneLFastMode2L, Teardown)
       
  1170 
       
  1171 EUNIT_TEST(
  1044 EUNIT_TEST(
  1172     "HandleMenuCmdL - test",
  1045     "HandleMenuCmdL - test",
  1173     "CMusAiwProvider",
  1046     "CMusAiwProvider",
  1174     "HandleMenuCmdL",
  1047     "HandleMenuCmdL",
  1175     "FUNCTIONALITY",
  1048     "FUNCTIONALITY",
  1176     SetupL, UT_CMusAiwProvider_HandleMenuCmdLL, Teardown)
  1049     SetupL, UT_CMusAiwProvider_HandleMenuCmdLL, Teardown)
  1177 
  1050 
  1178 EUNIT_TEST(
  1051 EUNIT_TEST(
  1179     "HandleMenuCmdL - fastmode test",
       
  1180     "CMusAiwProvider",
       
  1181     "HandleMenuCmdL",
       
  1182     "FUNCTIONALITY",
       
  1183     SetupL, UT_CMusAiwProvider_HandleMenuCmdLFastModeL, Teardown)   
       
  1184 
       
  1185 EUNIT_TEST(
       
  1186     "ApplicationRunningL - test",
  1052     "ApplicationRunningL - test",
  1187     "CMusAiwProvider",
  1053     "CMusAiwProvider",
  1188     "ApplicationRunningL",
  1054     "ApplicationRunningL",
  1189     "FUNCTIONALITY",
  1055     "FUNCTIONALITY",
  1190     SetupL, UT_CMusAiwProvider_ApplicationRunningLL, Teardown)
  1056     SetupL, UT_CMusAiwProvider_ApplicationRunningLL, Teardown)
  1214     "ImplementationGroupProxy",
  1080     "ImplementationGroupProxy",
  1215     "CMusAiwProvider",
  1081     "CMusAiwProvider",
  1216     "ImplementationGroupProxy",
  1082     "ImplementationGroupProxy",
  1217     "FUNCTIONALITY",
  1083     "FUNCTIONALITY",
  1218     SetupL, UT_ImplementationGroupProxyL, Teardown)
  1084     SetupL, UT_ImplementationGroupProxyL, Teardown)
  1219     
       
  1220 EUNIT_TEST(
       
  1221     "HiddenFromFastSwapL",
       
  1222     "CMusAiwProvider",
       
  1223     "HiddenFromFastSwapL",
       
  1224     "FUNCTIONALITY",
       
  1225     SetupL, UT_HiddenFromFastSwapL, Teardown)
       
  1226 
  1085 
  1227 EUNIT_END_TEST_TABLE
  1086 EUNIT_END_TEST_TABLE
  1228 
  1087