mmsharing/mmshmanagersrv/tsrc/ut_managersrv/src/UT_CMusApplicationManager.cpp
branchRCL_3
changeset 22 73a1feb507fb
parent 0 f0cf47e981f9
child 23 bc78a40cd63c
equal deleted inserted replaced
21:33a5d2bbf6fc 22:73a1feb507fb
    22 #include "mussessionproperties.h"
    22 #include "mussessionproperties.h"
    23 #include "musunittesting.h"
    23 #include "musunittesting.h"
    24 #include "musmanagerservercommon.h"
    24 #include "musmanagerservercommon.h"
    25 #include "mussessionproperties.h"
    25 #include "mussessionproperties.h"
    26 #include "mustesthelp.h"
    26 #include "mustesthelp.h"
       
    27 #include "mussettings.h"
       
    28 #include "mussesseioninformationapi.h"
    27 #include <apgcli.h>
    29 #include <apgcli.h>
    28 #include <apgtask.h>
    30 #include <apgtask.h>
    29 #include <e32std.h>
    31 #include <e32std.h>
    30 #include <e32property.h>
    32 #include <e32property.h>
    31 #include <digia/eunit/eunitmacros.h>
    33 #include <digia/eunit/eunitmacros.h>
    90 //
    92 //
    91 void UT_CMusApplicationManager::Teardown()
    93 void UT_CMusApplicationManager::Teardown()
    92     {
    94     {
    93     delete iManager;
    95     delete iManager;
    94     iManager = NULL;
    96     iManager = NULL;
    95     PropertyHelper::Close(); 
    97     PropertyHelper::Close();
       
    98     Dll::FreeTls(); // Used by the RProcess and TFindProcess stubs
    96     }
    99     }
    97 
   100 
    98 
   101 
    99 // ======== TEST METHODS ========
   102 // ======== TEST METHODS ========
   100 
   103 
   104 // ---------------------------------------------------------------------------
   107 // ---------------------------------------------------------------------------
   105 //
   108 //
   106 void UT_CMusApplicationManager::UT_CMusApplicationManager_NewLL()
   109 void UT_CMusApplicationManager::UT_CMusApplicationManager_NewLL()
   107     {
   110     {
   108     EUNIT_ASSERT( iManager );
   111     EUNIT_ASSERT( iManager );
   109     EUNIT_ASSERT( iManager->iApaSession.iConnected );
   112     TInt fastMode;
       
   113     User::LeaveIfError( RProperty::Get( NMusSessionApi::KCategoryUid, 
       
   114                                         NMusSessionApi::KFastMode, 
       
   115                                         fastMode ) );
       
   116     EUNIT_ASSERT_EQUALS( TInt( MusSettingsKeys::EFastModeOff ), fastMode );
   110     }
   117     }
   111 
   118 
   112 
   119 
   113 // ---------------------------------------------------------------------------
   120 // ---------------------------------------------------------------------------
   114 // Asserts that instantiation is successful.
   121 // Asserts that instantiation is successful.
   116 //
   123 //
   117 void UT_CMusApplicationManager::UT_CMusApplicationManager_NewLCL()
   124 void UT_CMusApplicationManager::UT_CMusApplicationManager_NewLCL()
   118     {
   125     {
   119     CMusApplicationManager* manager = CMusApplicationManager::NewLC();
   126     CMusApplicationManager* manager = CMusApplicationManager::NewLC();
   120     EUNIT_ASSERT( manager );
   127     EUNIT_ASSERT( manager );
   121     EUNIT_ASSERT( manager->iApaSession.iConnected );
       
   122     CleanupStack::PopAndDestroy( manager );
   128     CleanupStack::PopAndDestroy( manager );
   123     }
   129     }
   124 
   130 
   125 
   131 
   126 // ---------------------------------------------------------------------------
   132 // ---------------------------------------------------------------------------
   127 // Asserts that correct functions from TApaTask are called.
   133 // Asserts that correct functions from TApaTask are called.
   128 // ---------------------------------------------------------------------------
   134 // ---------------------------------------------------------------------------
   129 //
   135 //
   130 void UT_CMusApplicationManager::UT_CMusApplicationManager_ApplicationRunningL()
   136 void UT_CMusApplicationManager::UT_CMusApplicationManager_ApplicationRunningL()
   131     {
   137     {
   132     TApaTask::iApplicationExist = EFalse;
   138     EUNIT_ASSERT( !iManager->ApplicationRunning() )
   133     EUNIT_ASSERT( !iManager->ApplicationRunning() );
   139    
   134     EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists )
   140     iManager->StartApplicationL();
   135     TApaTask::iApplicationExist = ETrue;
   141     EUNIT_ASSERT( iManager->ApplicationRunning() )
   136     EUNIT_ASSERT( iManager->ApplicationRunning() );
       
   137     EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists )
       
   138     }
   142     }
   139 
   143 
   140 
   144 
   141 // ---------------------------------------------------------------------------
   145 // ---------------------------------------------------------------------------
   142 // Else branch of tested method can't be tested since it tries to start real
   146 // Else branch of tested method can't be tested since it tries to start real
   143 // application.
   147 // application.
   144 // ---------------------------------------------------------------------------
   148 // ---------------------------------------------------------------------------
   145 //
   149 //
   146 void UT_CMusApplicationManager::UT_CMusApplicationManager_StartApplicationLL()
   150 void UT_CMusApplicationManager::UT_CMusApplicationManager_StartApplicationLL()
   147     {
   151     {
   148     TApaTask::iApplicationExist = EFalse;
   152     EUNIT_ASSERT( !iManager->ApplicationRunning() )
   149     iManager->StartApplicationL();
   153     iManager->StartApplicationL();
   150     EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists )
   154     EUNIT_ASSERT_EQUALS( PropertyHelper::GetCalledFunction(), RProperty::EDefine )
   151     EUNIT_ASSERT_EQUALS( PropertyHelper::GetCalledFunction(), RProperty::ENone ) 
   155     EUNIT_ASSERT( iManager->ApplicationRunning() )
   152 
   156     
   153     TApaTask::iApplicationExist = ETrue;
       
   154     iManager->StartApplicationL();
   157     iManager->StartApplicationL();
   155     EUNIT_ASSERT_EQUALS( PropertyHelper::GetCalledFunction(), RProperty::ENone ) 
   158     EUNIT_ASSERT( iManager->ApplicationRunning() )
   156 
       
   157     }
   159     }
   158 
   160 
   159 
   161 
   160 // ---------------------------------------------------------------------------
   162 // ---------------------------------------------------------------------------
   161 // Asserts that tested method calls TApaTask::Exists and if task exists it
   163 // Asserts that tested method calls TApaTask::Exists and if task exists it
   162 // should also call TApaTask::KillTask.
   164 // should also call TApaTask::KillTask.
   163 // ---------------------------------------------------------------------------
   165 // ---------------------------------------------------------------------------
   164 //
   166 //
   165 void UT_CMusApplicationManager::UT_CMusApplicationManager_StopApplicationLL()
   167 void UT_CMusApplicationManager::UT_CMusApplicationManager_StopApplicationLL()
   166     {
   168     {
   167     TApaTask::iApplicationExist = EFalse;
   169     // MuS not running
   168     iManager->StopApplicationL();
   170     iManager->StopApplicationL(); 
   169     EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists )    
   171     
   170     
   172     // MuS running
   171     
   173     User::LeaveIfError( 
   172     TApaTask::iApplicationExist = ETrue;
   174         Dll::SetTls( reinterpret_cast< TAny* >( 1 ) ) );     
       
   175     // TLS is used by TFindProcess stub
   173     iManager->StopApplicationL();
   176     iManager->StopApplicationL();
   174     TInt availability = MultimediaSharing::EMultimediaSharingAvailable;
   177     TInt availability = MultimediaSharing::EMultimediaSharingAvailable;
   175     TUint key(NMusSessionApi::KStatus);
   178     TUint key( NMusSessionApi::KStatus );
   176     RProperty::Get( key,availability);
   179     RProperty::Get( key, availability );
   177     EUNIT_ASSERT_EQUALS( PropertyHelper::GetCalledFunction(), RProperty::EDefine ) 
   180     EUNIT_ASSERT_EQUALS( PropertyHelper::GetCalledFunction(), RProperty::EDefine ) 
   178     EUNIT_ASSERT_EQUALS( availability, 
   181     EUNIT_ASSERT_EQUALS( availability, 
   179                          MultimediaSharing::EMultimediaSharingNotAvailable )
   182                          MultimediaSharing::EMultimediaSharingNotAvailable )
   180     }
   183     }
   181 
   184 
   182 
   185 
   183 // ---------------------------------------------------------------------------
   186 // ---------------------------------------------------------------------------
   184 // Asserts that tested method calls TApaTask::Exists and if task exists it
   187 //
   185 // calls TApaTask::BringToForeground.
       
   186 // ---------------------------------------------------------------------------
   188 // ---------------------------------------------------------------------------
   187 //
   189 //
   188 void UT_CMusApplicationManager::UT_CMusApplicationManager_ShowApplicationLL()
   190 void UT_CMusApplicationManager::UT_CMusApplicationManager_ShowApplicationLL()
   189     {
   191     {
   190     TApaTask::iApplicationExist = EFalse;
       
   191     iManager->ShowApplicationL();
       
   192     EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists )
       
   193     TApaTask::iApplicationExist = ETrue;
       
   194     iManager->ShowApplicationL();
       
   195     EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EBringToForeground )
       
   196     }
   192     }
   197 
   193 
   198 
   194 
   199 // ---------------------------------------------------------------------------
   195 // ---------------------------------------------------------------------------
   200 // Writes session properties. Asserts that RProperty leaves are passed
   196 // Writes session properties. Asserts that RProperty leaves are passed
   211     array->AppendL( _L( "c" ) );
   207     array->AppendL( _L( "c" ) );
   212     array->AppendL( _L( "d" ) );
   208     array->AppendL( _L( "d" ) );
   213     array->AppendL( _L( "e" ) );
   209     array->AppendL( _L( "e" ) );
   214     array->AppendL( _L( "f" ) );
   210     array->AppendL( _L( "f" ) );
   215     array->AppendL( _L( "g" ) );
   211     array->AppendL( _L( "g" ) );
   216     array->AppendL( _L( "h" ) );
   212     array->AppendL( _L( "0" ) ); //EFastModeOn
   217 
   213 
   218     iManager->WriteSessionPropertiesL(
   214     iManager->WriteSessionPropertiesL(
   219         MultimediaSharing::EMusLiveVideo,
   215         MultimediaSharing::EMusLiveVideo,
   220         (MultimediaSharing::TMusAvailabilityStatus) KErrNone,
   216         (MultimediaSharing::TMusAvailabilityStatus) KErrNone,
   221         *array );
   217         *array );
   227             MultimediaSharing::EMusLiveVideo,
   223             MultimediaSharing::EMusLiveVideo,
   228             (MultimediaSharing::TMusAvailabilityStatus) KErrNone,
   224             (MultimediaSharing::TMusAvailabilityStatus) KErrNone,
   229             *array ), KErrGeneral );
   225             *array ), KErrGeneral );
   230 
   226 
   231     PropertyHelper::SetErrorCode(KErrNone);
   227     PropertyHelper::SetErrorCode(KErrNone);
   232 
   228     
       
   229     
       
   230 
       
   231     MultimediaSharingSettings::iVideoDirection = MusSettingsKeys::ETwoWayVideo;
       
   232     iManager->WriteSessionPropertiesL(
       
   233             MultimediaSharing::EMusLiveVideo,
       
   234             (MultimediaSharing::TMusAvailabilityStatus) KErrNone,
       
   235             *array );
       
   236 
       
   237     TInt val;
       
   238     User::LeaveIfError( RProperty::Get( NMusSessionApi::KCategoryUid, 
       
   239                                         NMusSessionApi::KUseCase, 
       
   240                                         val ) );
       
   241     
       
   242     MultimediaSharing::TMusUseCase usecase = 
       
   243                 static_cast< MultimediaSharing::TMusUseCase >( val );
       
   244     
       
   245     EUNIT_ASSERT( usecase == MultimediaSharing::EMusTwoWayVideo );
       
   246         
       
   247     
       
   248     //Ensure if fast mode key is "disabled", value from session params
       
   249     //won't be published
       
   250     User::LeaveIfError( RProperty::Set( NMusSessionApi::KCategoryUid, 
       
   251                                         NMusSessionApi::KFastMode, 
       
   252                                         MusSettingsKeys::EFastModeDisabled ) );
       
   253     iManager->WriteSessionPropertiesL(
       
   254             MultimediaSharing::EMusLiveVideo,
       
   255             (MultimediaSharing::TMusAvailabilityStatus) KErrNone,
       
   256             *array );
       
   257     User::LeaveIfError( RProperty::Get( NMusSessionApi::KCategoryUid, 
       
   258                                         NMusSessionApi::KFastMode, 
       
   259                                         val ) );
       
   260     EUNIT_ASSERT_EQUALS( TInt( MusSettingsKeys::EFastModeDisabled ), val );
       
   261     
   233     CleanupStack::PopAndDestroy( array );
   262     CleanupStack::PopAndDestroy( array );
   234     }
   263     }
   235 
   264 
   236 
   265 
   237 // ---------------------------------------------------------------------------
   266 // ---------------------------------------------------------------------------
   274     MUS_EUNIT_ASSERT_NO_LEAVE( iManager->SetPropertyL( 1, 1 ) );
   303     MUS_EUNIT_ASSERT_NO_LEAVE( iManager->SetPropertyL( 1, 1 ) );
   275     }
   304     }
   276 
   305 
   277 
   306 
   278 // ---------------------------------------------------------------------------
   307 // ---------------------------------------------------------------------------
   279 // Asserts that TApaTaskList::FindApp is called by tested method.
       
   280 // ---------------------------------------------------------------------------
       
   281 //
       
   282 void UT_CMusApplicationManager::UT_CMusApplicationManager_GetApaTaskL()
       
   283     {
       
   284     TApaTask::iApplicationExist = EFalse;
       
   285     iManager->GetApaTask();
       
   286     EUNIT_ASSERT( TApaTaskList::iCalledFunction == TApaTaskList::EFindApp )
       
   287     }
       
   288 
       
   289 
       
   290 // ---------------------------------------------------------------------------
       
   291 // Sets a videosharing status. Asserts that RProperty leaves are passed
   308 // Sets a videosharing status. Asserts that RProperty leaves are passed
   292 // correctly to user and RProperty::Define is called.
   309 // correctly to user and RProperty::Define is called.
   293 // ---------------------------------------------------------------------------
   310 // ---------------------------------------------------------------------------
   294 //
   311 //
   295 void UT_CMusApplicationManager::UT_CMusApplicationManager_SetStatusLL()
   312 void UT_CMusApplicationManager::UT_CMusApplicationManager_SetStatusLL()
   304     MUS_EUNIT_ASSERT_NO_LEAVE( iManager->SetStatusL(
   321     MUS_EUNIT_ASSERT_NO_LEAVE( iManager->SetStatusL(
   305         MultimediaSharing::EMultimediaSharingAvailable ) );
   322         MultimediaSharing::EMultimediaSharingAvailable ) );
   306     }
   323     }
   307 
   324 
   308 
   325 
       
   326 // ---------------------------------------------------------------------------
       
   327 // CallProviderL Test
       
   328 // ---------------------------------------------------------------------------
       
   329 //
       
   330 void UT_CMusApplicationManager::UT_CMusApplicationManager_CallProviderLL()
       
   331     {
       
   332     TInt error = KErrNone;
       
   333     
       
   334     // Use Publish & Subscribe Keys to set CallProvider Name
       
   335     _LIT( KProviderName1, "MultimediaSharing");
       
   336     _LIT8( KProviderNameTest1, "MultimediaSharing");
       
   337     
       
   338     _LIT( KProviderNameEmpty1, "");
       
   339     _LIT8( KProviderNameEmptyTest1, "");
       
   340     
       
   341     
       
   342     // Valid Test:
       
   343     TRAP( error, RProperty::Set(
       
   344            NMusSessionInformationApi::KCategoryUid,
       
   345            NMusSessionInformationApi::KMUSCallProvider,
       
   346            KProviderName1 ));
       
   347 
       
   348     if ( error == KErrNoMemory ) User::Leave( error );
       
   349     EUNIT_ASSERT ( error == KErrNone );
       
   350     
       
   351     TBuf8<RProperty::KMaxPropertySize> providerName ;
       
   352     iManager->CallProviderL( providerName );
       
   353     
       
   354     EUNIT_ASSERT( providerName == KProviderNameTest1 );
       
   355     
       
   356 
       
   357     //Empty Test
       
   358     TRAP( error, RProperty::Set(
       
   359            NMusSessionInformationApi::KCategoryUid,
       
   360            NMusSessionInformationApi::KMUSCallProvider,
       
   361            KProviderNameEmpty1 ));
       
   362 
       
   363     if ( error == KErrNoMemory ) User::Leave( error );
       
   364     EUNIT_ASSERT ( error == KErrNone );
       
   365 
       
   366     iManager->CallProviderL( providerName );
       
   367     
       
   368     EUNIT_ASSERT( providerName == KProviderNameEmptyTest1 );
       
   369     }
       
   370 
       
   371 
       
   372 // ---------------------------------------------------------------------------
       
   373 // ResolvePluginName Test
       
   374 // ---------------------------------------------------------------------------
       
   375 //
       
   376 void UT_CMusApplicationManager::UT_CMusApplicationManager_ResolvePluginNameLL()
       
   377     {
       
   378     // Default Engine Name to be returned
       
   379     TInt error = KErrNone;
       
   380     _LIT( KEngineName, "MultimediaSharing");
       
   381     _LIT8( KEngineTestName, "MultimediaSharing");
       
   382 
       
   383     // Test String for the Publish/Subscribe Keys.
       
   384     _LIT( KProviderName, "MultimediaSharing");
       
   385     _LIT( KProviderName1, "CS");
       
   386   
       
   387     TBuf8<RProperty::KMaxPropertySize> engineName ;
       
   388 
       
   389     // Use Publish & Subscribe Keys to set Engine Name as 
       
   390     // 1. MultimediaSharing  [Exact Name]
       
   391     // 2. CS                 [No Match Found, Default MultiMediaSharing will be picked]
       
   392 
       
   393     // 1. MultimediaSharing  [Exact Name]
       
   394 
       
   395     TRAP( error, RProperty::Set(
       
   396            NMusSessionInformationApi::KCategoryUid,
       
   397            NMusSessionInformationApi::KMUSCallProvider,
       
   398            KProviderName ));
       
   399 
       
   400     if ( error == KErrNoMemory ) User::Leave( error );
       
   401     EUNIT_ASSERT ( error == KErrNone );
       
   402     
       
   403     iManager->ResolvePluginNameL( engineName );
       
   404     EUNIT_ASSERT( engineName == KEngineTestName );
       
   405   
       
   406     // 2. CS [No Match Found, Default MultiMediaSharing will be picked]
       
   407     TRAP( error, RProperty::Set(
       
   408            NMusSessionInformationApi::KCategoryUid,
       
   409            NMusSessionInformationApi::KMUSCallProvider,
       
   410            KProviderName1 ));
       
   411     
       
   412     if ( error == KErrNoMemory ) User::Leave( error );
       
   413     EUNIT_ASSERT ( error == KErrNone );
       
   414 
       
   415     iManager->ResolvePluginNameL( engineName );
       
   416     EUNIT_ASSERT( engineName == KEngineTestName );
       
   417     }
       
   418 
       
   419 // ---------------------------------------------------------------------------
       
   420 // Command line arg test
       
   421 // ---------------------------------------------------------------------------
       
   422 //
       
   423 void UT_CMusApplicationManager::UT_CMusApplicationManager_CreateCommandLineArgsLCL()
       
   424     {
       
   425     _LIT( KEnginePluginName, "MultimediaSharing" );
       
   426     HBufC* cmdLineArgs = iManager->CreateCommandLineArgsLC();
       
   427     
       
   428     EUNIT_ASSERT( cmdLineArgs != NULL )
       
   429     EUNIT_ASSERT_EQUALS( KEnginePluginName(), *cmdLineArgs )
       
   430     
       
   431     CleanupStack::PopAndDestroy( cmdLineArgs );
       
   432     }
       
   433 
   309 // ======== EUNIT TEST TABLE ========
   434 // ======== EUNIT TEST TABLE ========
   310 
   435 
   311 
   436 
   312 EUNIT_BEGIN_TEST_TABLE(
   437 EUNIT_BEGIN_TEST_TABLE(
   313     UT_CMusApplicationManager,
   438     UT_CMusApplicationManager,
   376     "SetPropertyL",
   501     "SetPropertyL",
   377     "FUNCTIONALITY",
   502     "FUNCTIONALITY",
   378     SetupL, UT_CMusApplicationManager_SetPropertyL2L, Teardown )
   503     SetupL, UT_CMusApplicationManager_SetPropertyL2L, Teardown )
   379 
   504 
   380 EUNIT_TEST(
   505 EUNIT_TEST(
   381     "GetApaTask - test ",
       
   382     "CMusApplicationManager",
       
   383     "GetApaTask",
       
   384     "FUNCTIONALITY",
       
   385     SetupL, UT_CMusApplicationManager_GetApaTaskL, Teardown )
       
   386 
       
   387 EUNIT_TEST(
       
   388     "SetStatusL - test ",
   506     "SetStatusL - test ",
   389     "CMusApplicationManager",
   507     "CMusApplicationManager",
   390     "SetStatusL",
   508     "SetStatusL",
   391     "FUNCTIONALITY",
   509     "FUNCTIONALITY",
   392     SetupL, UT_CMusApplicationManager_SetStatusLL, Teardown )
   510     SetupL, UT_CMusApplicationManager_SetStatusLL, Teardown )
   393 
   511 
       
   512 EUNIT_TEST(
       
   513     "CallProviderL - test ",
       
   514     "CMusApplicationManager",
       
   515     "CallProviderL",
       
   516     "FUNCTIONALITY",
       
   517     SetupL, UT_CMusApplicationManager_CallProviderLL, Teardown )    
       
   518     
       
   519 EUNIT_TEST(
       
   520     "ResolvePluginNameL - test ",
       
   521     "CMusApplicationManager",
       
   522     "ResolvePluginNameL",
       
   523     "FUNCTIONALITY",
       
   524     SetupL, UT_CMusApplicationManager_ResolvePluginNameLL, Teardown ) 
       
   525     
       
   526 EUNIT_TEST(
       
   527     "CreateCommandLineLC - test ",
       
   528     "CMusApplicationManager",
       
   529     "CreateCommandLineLC",
       
   530     "FUNCTIONALITY",
       
   531     SetupL, UT_CMusApplicationManager_CreateCommandLineArgsLCL, Teardown )  
       
   532     
   394 EUNIT_END_TEST_TABLE
   533 EUNIT_END_TEST_TABLE