mmsharing/mmshmanagersrv/tsrc/ut_managersrv/src/UT_CMusApplicationManager.cpp
branchRCL_3
changeset 33 bc78a40cd63c
parent 32 73a1feb507fb
equal deleted inserted replaced
32:73a1feb507fb 33:bc78a40cd63c
    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"
       
    29 #include <apgcli.h>
    27 #include <apgcli.h>
    30 #include <apgtask.h>
    28 #include <apgtask.h>
    31 #include <e32std.h>
    29 #include <e32std.h>
    32 #include <e32property.h>
    30 #include <e32property.h>
    33 #include <digia/eunit/eunitmacros.h>
    31 #include <digia/eunit/eunitmacros.h>
    92 //
    90 //
    93 void UT_CMusApplicationManager::Teardown()
    91 void UT_CMusApplicationManager::Teardown()
    94     {
    92     {
    95     delete iManager;
    93     delete iManager;
    96     iManager = NULL;
    94     iManager = NULL;
    97     PropertyHelper::Close();
    95     PropertyHelper::Close(); 
    98     Dll::FreeTls(); // Used by the RProcess and TFindProcess stubs
       
    99     }
    96     }
   100 
    97 
   101 
    98 
   102 // ======== TEST METHODS ========
    99 // ======== TEST METHODS ========
   103 
   100 
   107 // ---------------------------------------------------------------------------
   104 // ---------------------------------------------------------------------------
   108 //
   105 //
   109 void UT_CMusApplicationManager::UT_CMusApplicationManager_NewLL()
   106 void UT_CMusApplicationManager::UT_CMusApplicationManager_NewLL()
   110     {
   107     {
   111     EUNIT_ASSERT( iManager );
   108     EUNIT_ASSERT( iManager );
   112     TInt fastMode;
   109     EUNIT_ASSERT( iManager->iApaSession.iConnected );
   113     User::LeaveIfError( RProperty::Get( NMusSessionApi::KCategoryUid, 
       
   114                                         NMusSessionApi::KFastMode, 
       
   115                                         fastMode ) );
       
   116     EUNIT_ASSERT_EQUALS( TInt( MusSettingsKeys::EFastModeOff ), fastMode );
       
   117     }
   110     }
   118 
   111 
   119 
   112 
   120 // ---------------------------------------------------------------------------
   113 // ---------------------------------------------------------------------------
   121 // Asserts that instantiation is successful.
   114 // Asserts that instantiation is successful.
   123 //
   116 //
   124 void UT_CMusApplicationManager::UT_CMusApplicationManager_NewLCL()
   117 void UT_CMusApplicationManager::UT_CMusApplicationManager_NewLCL()
   125     {
   118     {
   126     CMusApplicationManager* manager = CMusApplicationManager::NewLC();
   119     CMusApplicationManager* manager = CMusApplicationManager::NewLC();
   127     EUNIT_ASSERT( manager );
   120     EUNIT_ASSERT( manager );
       
   121     EUNIT_ASSERT( manager->iApaSession.iConnected );
   128     CleanupStack::PopAndDestroy( manager );
   122     CleanupStack::PopAndDestroy( manager );
   129     }
   123     }
   130 
   124 
   131 
   125 
   132 // ---------------------------------------------------------------------------
   126 // ---------------------------------------------------------------------------
   133 // Asserts that correct functions from TApaTask are called.
   127 // Asserts that correct functions from TApaTask are called.
   134 // ---------------------------------------------------------------------------
   128 // ---------------------------------------------------------------------------
   135 //
   129 //
   136 void UT_CMusApplicationManager::UT_CMusApplicationManager_ApplicationRunningL()
   130 void UT_CMusApplicationManager::UT_CMusApplicationManager_ApplicationRunningL()
   137     {
   131     {
   138     EUNIT_ASSERT( !iManager->ApplicationRunning() )
   132     TApaTask::iApplicationExist = EFalse;
   139    
   133     EUNIT_ASSERT( !iManager->ApplicationRunning() );
   140     iManager->StartApplicationL();
   134     EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists )
   141     EUNIT_ASSERT( iManager->ApplicationRunning() )
   135     TApaTask::iApplicationExist = ETrue;
       
   136     EUNIT_ASSERT( iManager->ApplicationRunning() );
       
   137     EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists )
   142     }
   138     }
   143 
   139 
   144 
   140 
   145 // ---------------------------------------------------------------------------
   141 // ---------------------------------------------------------------------------
   146 // Else branch of tested method can't be tested since it tries to start real
   142 // Else branch of tested method can't be tested since it tries to start real
   147 // application.
   143 // application.
   148 // ---------------------------------------------------------------------------
   144 // ---------------------------------------------------------------------------
   149 //
   145 //
   150 void UT_CMusApplicationManager::UT_CMusApplicationManager_StartApplicationLL()
   146 void UT_CMusApplicationManager::UT_CMusApplicationManager_StartApplicationLL()
   151     {
   147     {
   152     EUNIT_ASSERT( !iManager->ApplicationRunning() )
   148     TApaTask::iApplicationExist = EFalse;
   153     iManager->StartApplicationL();
   149     iManager->StartApplicationL();
   154     EUNIT_ASSERT_EQUALS( PropertyHelper::GetCalledFunction(), RProperty::EDefine )
   150     EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists )
   155     EUNIT_ASSERT( iManager->ApplicationRunning() )
   151     EUNIT_ASSERT_EQUALS( PropertyHelper::GetCalledFunction(), RProperty::ENone ) 
   156     
   152 
       
   153     TApaTask::iApplicationExist = ETrue;
   157     iManager->StartApplicationL();
   154     iManager->StartApplicationL();
   158     EUNIT_ASSERT( iManager->ApplicationRunning() )
   155     EUNIT_ASSERT_EQUALS( PropertyHelper::GetCalledFunction(), RProperty::ENone ) 
       
   156 
   159     }
   157     }
   160 
   158 
   161 
   159 
   162 // ---------------------------------------------------------------------------
   160 // ---------------------------------------------------------------------------
   163 // Asserts that tested method calls TApaTask::Exists and if task exists it
   161 // Asserts that tested method calls TApaTask::Exists and if task exists it
   164 // should also call TApaTask::KillTask.
   162 // should also call TApaTask::KillTask.
   165 // ---------------------------------------------------------------------------
   163 // ---------------------------------------------------------------------------
   166 //
   164 //
   167 void UT_CMusApplicationManager::UT_CMusApplicationManager_StopApplicationLL()
   165 void UT_CMusApplicationManager::UT_CMusApplicationManager_StopApplicationLL()
   168     {
   166     {
   169     // MuS not running
   167     TApaTask::iApplicationExist = EFalse;
   170     iManager->StopApplicationL(); 
   168     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
       
   176     iManager->StopApplicationL();
   173     iManager->StopApplicationL();
   177     TInt availability = MultimediaSharing::EMultimediaSharingAvailable;
   174     TInt availability = MultimediaSharing::EMultimediaSharingAvailable;
   178     TUint key( NMusSessionApi::KStatus );
   175     TUint key(NMusSessionApi::KStatus);
   179     RProperty::Get( key, availability );
   176     RProperty::Get( key,availability);
   180     EUNIT_ASSERT_EQUALS( PropertyHelper::GetCalledFunction(), RProperty::EDefine ) 
   177     EUNIT_ASSERT_EQUALS( PropertyHelper::GetCalledFunction(), RProperty::EDefine ) 
   181     EUNIT_ASSERT_EQUALS( availability, 
   178     EUNIT_ASSERT_EQUALS( availability, 
   182                          MultimediaSharing::EMultimediaSharingNotAvailable )
   179                          MultimediaSharing::EMultimediaSharingNotAvailable )
   183     }
   180     }
   184 
   181 
   185 
   182 
   186 // ---------------------------------------------------------------------------
   183 // ---------------------------------------------------------------------------
   187 //
   184 // Asserts that tested method calls TApaTask::Exists and if task exists it
       
   185 // calls TApaTask::BringToForeground.
   188 // ---------------------------------------------------------------------------
   186 // ---------------------------------------------------------------------------
   189 //
   187 //
   190 void UT_CMusApplicationManager::UT_CMusApplicationManager_ShowApplicationLL()
   188 void UT_CMusApplicationManager::UT_CMusApplicationManager_ShowApplicationLL()
   191     {
   189     {
       
   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 )
   192     }
   196     }
   193 
   197 
   194 
   198 
   195 // ---------------------------------------------------------------------------
   199 // ---------------------------------------------------------------------------
   196 // Writes session properties. Asserts that RProperty leaves are passed
   200 // Writes session properties. Asserts that RProperty leaves are passed
   207     array->AppendL( _L( "c" ) );
   211     array->AppendL( _L( "c" ) );
   208     array->AppendL( _L( "d" ) );
   212     array->AppendL( _L( "d" ) );
   209     array->AppendL( _L( "e" ) );
   213     array->AppendL( _L( "e" ) );
   210     array->AppendL( _L( "f" ) );
   214     array->AppendL( _L( "f" ) );
   211     array->AppendL( _L( "g" ) );
   215     array->AppendL( _L( "g" ) );
   212     array->AppendL( _L( "0" ) ); //EFastModeOn
   216     array->AppendL( _L( "h" ) );
   213 
   217 
   214     iManager->WriteSessionPropertiesL(
   218     iManager->WriteSessionPropertiesL(
   215         MultimediaSharing::EMusLiveVideo,
   219         MultimediaSharing::EMusLiveVideo,
   216         (MultimediaSharing::TMusAvailabilityStatus) KErrNone,
   220         (MultimediaSharing::TMusAvailabilityStatus) KErrNone,
   217         *array );
   221         *array );
   223             MultimediaSharing::EMusLiveVideo,
   227             MultimediaSharing::EMusLiveVideo,
   224             (MultimediaSharing::TMusAvailabilityStatus) KErrNone,
   228             (MultimediaSharing::TMusAvailabilityStatus) KErrNone,
   225             *array ), KErrGeneral );
   229             *array ), KErrGeneral );
   226 
   230 
   227     PropertyHelper::SetErrorCode(KErrNone);
   231     PropertyHelper::SetErrorCode(KErrNone);
   228     
   232 
   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     
       
   262     CleanupStack::PopAndDestroy( array );
   233     CleanupStack::PopAndDestroy( array );
   263     }
   234     }
   264 
   235 
   265 
   236 
   266 // ---------------------------------------------------------------------------
   237 // ---------------------------------------------------------------------------
   303     MUS_EUNIT_ASSERT_NO_LEAVE( iManager->SetPropertyL( 1, 1 ) );
   274     MUS_EUNIT_ASSERT_NO_LEAVE( iManager->SetPropertyL( 1, 1 ) );
   304     }
   275     }
   305 
   276 
   306 
   277 
   307 // ---------------------------------------------------------------------------
   278 // ---------------------------------------------------------------------------
       
   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 // ---------------------------------------------------------------------------
   308 // Sets a videosharing status. Asserts that RProperty leaves are passed
   291 // Sets a videosharing status. Asserts that RProperty leaves are passed
   309 // correctly to user and RProperty::Define is called.
   292 // correctly to user and RProperty::Define is called.
   310 // ---------------------------------------------------------------------------
   293 // ---------------------------------------------------------------------------
   311 //
   294 //
   312 void UT_CMusApplicationManager::UT_CMusApplicationManager_SetStatusLL()
   295 void UT_CMusApplicationManager::UT_CMusApplicationManager_SetStatusLL()
   321     MUS_EUNIT_ASSERT_NO_LEAVE( iManager->SetStatusL(
   304     MUS_EUNIT_ASSERT_NO_LEAVE( iManager->SetStatusL(
   322         MultimediaSharing::EMultimediaSharingAvailable ) );
   305         MultimediaSharing::EMultimediaSharingAvailable ) );
   323     }
   306     }
   324 
   307 
   325 
   308 
   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 
       
   434 // ======== EUNIT TEST TABLE ========
   309 // ======== EUNIT TEST TABLE ========
   435 
   310 
   436 
   311 
   437 EUNIT_BEGIN_TEST_TABLE(
   312 EUNIT_BEGIN_TEST_TABLE(
   438     UT_CMusApplicationManager,
   313     UT_CMusApplicationManager,
   501     "SetPropertyL",
   376     "SetPropertyL",
   502     "FUNCTIONALITY",
   377     "FUNCTIONALITY",
   503     SetupL, UT_CMusApplicationManager_SetPropertyL2L, Teardown )
   378     SetupL, UT_CMusApplicationManager_SetPropertyL2L, Teardown )
   504 
   379 
   505 EUNIT_TEST(
   380 EUNIT_TEST(
       
   381     "GetApaTask - test ",
       
   382     "CMusApplicationManager",
       
   383     "GetApaTask",
       
   384     "FUNCTIONALITY",
       
   385     SetupL, UT_CMusApplicationManager_GetApaTaskL, Teardown )
       
   386 
       
   387 EUNIT_TEST(
   506     "SetStatusL - test ",
   388     "SetStatusL - test ",
   507     "CMusApplicationManager",
   389     "CMusApplicationManager",
   508     "SetStatusL",
   390     "SetStatusL",
   509     "FUNCTIONALITY",
   391     "FUNCTIONALITY",
   510     SetupL, UT_CMusApplicationManager_SetStatusLL, Teardown )
   392     SetupL, UT_CMusApplicationManager_SetStatusLL, Teardown )
   511 
   393 
   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     
       
   533 EUNIT_END_TEST_TABLE
   394 EUNIT_END_TEST_TABLE