mmsharing/mmshmanagersrv/tsrc/ut_managersrv/src/UT_CMusApplicationManager.cpp
branchRCL_3
changeset 22 73a1feb507fb
parent 0 f0cf47e981f9
child 23 bc78a40cd63c
--- a/mmsharing/mmshmanagersrv/tsrc/ut_managersrv/src/UT_CMusApplicationManager.cpp	Thu Aug 19 09:51:39 2010 +0300
+++ b/mmsharing/mmshmanagersrv/tsrc/ut_managersrv/src/UT_CMusApplicationManager.cpp	Tue Aug 31 15:12:07 2010 +0300
@@ -24,6 +24,8 @@
 #include "musmanagerservercommon.h"
 #include "mussessionproperties.h"
 #include "mustesthelp.h"
+#include "mussettings.h"
+#include "mussesseioninformationapi.h"
 #include <apgcli.h>
 #include <apgtask.h>
 #include <e32std.h>
@@ -92,7 +94,8 @@
     {
     delete iManager;
     iManager = NULL;
-    PropertyHelper::Close(); 
+    PropertyHelper::Close();
+    Dll::FreeTls(); // Used by the RProcess and TFindProcess stubs
     }
 
 
@@ -106,7 +109,11 @@
 void UT_CMusApplicationManager::UT_CMusApplicationManager_NewLL()
     {
     EUNIT_ASSERT( iManager );
-    EUNIT_ASSERT( iManager->iApaSession.iConnected );
+    TInt fastMode;
+    User::LeaveIfError( RProperty::Get( NMusSessionApi::KCategoryUid, 
+                                        NMusSessionApi::KFastMode, 
+                                        fastMode ) );
+    EUNIT_ASSERT_EQUALS( TInt( MusSettingsKeys::EFastModeOff ), fastMode );
     }
 
 
@@ -118,7 +125,6 @@
     {
     CMusApplicationManager* manager = CMusApplicationManager::NewLC();
     EUNIT_ASSERT( manager );
-    EUNIT_ASSERT( manager->iApaSession.iConnected );
     CleanupStack::PopAndDestroy( manager );
     }
 
@@ -129,12 +135,10 @@
 //
 void UT_CMusApplicationManager::UT_CMusApplicationManager_ApplicationRunningL()
     {
-    TApaTask::iApplicationExist = EFalse;
-    EUNIT_ASSERT( !iManager->ApplicationRunning() );
-    EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists )
-    TApaTask::iApplicationExist = ETrue;
-    EUNIT_ASSERT( iManager->ApplicationRunning() );
-    EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists )
+    EUNIT_ASSERT( !iManager->ApplicationRunning() )
+   
+    iManager->StartApplicationL();
+    EUNIT_ASSERT( iManager->ApplicationRunning() )
     }
 
 
@@ -145,15 +149,13 @@
 //
 void UT_CMusApplicationManager::UT_CMusApplicationManager_StartApplicationLL()
     {
-    TApaTask::iApplicationExist = EFalse;
+    EUNIT_ASSERT( !iManager->ApplicationRunning() )
     iManager->StartApplicationL();
-    EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists )
-    EUNIT_ASSERT_EQUALS( PropertyHelper::GetCalledFunction(), RProperty::ENone ) 
-
-    TApaTask::iApplicationExist = ETrue;
+    EUNIT_ASSERT_EQUALS( PropertyHelper::GetCalledFunction(), RProperty::EDefine )
+    EUNIT_ASSERT( iManager->ApplicationRunning() )
+    
     iManager->StartApplicationL();
-    EUNIT_ASSERT_EQUALS( PropertyHelper::GetCalledFunction(), RProperty::ENone ) 
-
+    EUNIT_ASSERT( iManager->ApplicationRunning() )
     }
 
 
@@ -164,16 +166,17 @@
 //
 void UT_CMusApplicationManager::UT_CMusApplicationManager_StopApplicationLL()
     {
-    TApaTask::iApplicationExist = EFalse;
-    iManager->StopApplicationL();
-    EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists )    
+    // MuS not running
+    iManager->StopApplicationL(); 
     
-    
-    TApaTask::iApplicationExist = ETrue;
+    // MuS running
+    User::LeaveIfError( 
+        Dll::SetTls( reinterpret_cast< TAny* >( 1 ) ) );     
+    // TLS is used by TFindProcess stub
     iManager->StopApplicationL();
     TInt availability = MultimediaSharing::EMultimediaSharingAvailable;
-    TUint key(NMusSessionApi::KStatus);
-    RProperty::Get( key,availability);
+    TUint key( NMusSessionApi::KStatus );
+    RProperty::Get( key, availability );
     EUNIT_ASSERT_EQUALS( PropertyHelper::GetCalledFunction(), RProperty::EDefine ) 
     EUNIT_ASSERT_EQUALS( availability, 
                          MultimediaSharing::EMultimediaSharingNotAvailable )
@@ -181,18 +184,11 @@
 
 
 // ---------------------------------------------------------------------------
-// Asserts that tested method calls TApaTask::Exists and if task exists it
-// calls TApaTask::BringToForeground.
+//
 // ---------------------------------------------------------------------------
 //
 void UT_CMusApplicationManager::UT_CMusApplicationManager_ShowApplicationLL()
     {
-    TApaTask::iApplicationExist = EFalse;
-    iManager->ShowApplicationL();
-    EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists )
-    TApaTask::iApplicationExist = ETrue;
-    iManager->ShowApplicationL();
-    EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EBringToForeground )
     }
 
 
@@ -213,7 +209,7 @@
     array->AppendL( _L( "e" ) );
     array->AppendL( _L( "f" ) );
     array->AppendL( _L( "g" ) );
-    array->AppendL( _L( "h" ) );
+    array->AppendL( _L( "0" ) ); //EFastModeOn
 
     iManager->WriteSessionPropertiesL(
         MultimediaSharing::EMusLiveVideo,
@@ -229,7 +225,40 @@
             *array ), KErrGeneral );
 
     PropertyHelper::SetErrorCode(KErrNone);
+    
+    
 
+    MultimediaSharingSettings::iVideoDirection = MusSettingsKeys::ETwoWayVideo;
+    iManager->WriteSessionPropertiesL(
+            MultimediaSharing::EMusLiveVideo,
+            (MultimediaSharing::TMusAvailabilityStatus) KErrNone,
+            *array );
+
+    TInt val;
+    User::LeaveIfError( RProperty::Get( NMusSessionApi::KCategoryUid, 
+                                        NMusSessionApi::KUseCase, 
+                                        val ) );
+    
+    MultimediaSharing::TMusUseCase usecase = 
+                static_cast< MultimediaSharing::TMusUseCase >( val );
+    
+    EUNIT_ASSERT( usecase == MultimediaSharing::EMusTwoWayVideo );
+        
+    
+    //Ensure if fast mode key is "disabled", value from session params
+    //won't be published
+    User::LeaveIfError( RProperty::Set( NMusSessionApi::KCategoryUid, 
+                                        NMusSessionApi::KFastMode, 
+                                        MusSettingsKeys::EFastModeDisabled ) );
+    iManager->WriteSessionPropertiesL(
+            MultimediaSharing::EMusLiveVideo,
+            (MultimediaSharing::TMusAvailabilityStatus) KErrNone,
+            *array );
+    User::LeaveIfError( RProperty::Get( NMusSessionApi::KCategoryUid, 
+                                        NMusSessionApi::KFastMode, 
+                                        val ) );
+    EUNIT_ASSERT_EQUALS( TInt( MusSettingsKeys::EFastModeDisabled ), val );
+    
     CleanupStack::PopAndDestroy( array );
     }
 
@@ -276,18 +305,6 @@
 
 
 // ---------------------------------------------------------------------------
-// Asserts that TApaTaskList::FindApp is called by tested method.
-// ---------------------------------------------------------------------------
-//
-void UT_CMusApplicationManager::UT_CMusApplicationManager_GetApaTaskL()
-    {
-    TApaTask::iApplicationExist = EFalse;
-    iManager->GetApaTask();
-    EUNIT_ASSERT( TApaTaskList::iCalledFunction == TApaTaskList::EFindApp )
-    }
-
-
-// ---------------------------------------------------------------------------
 // Sets a videosharing status. Asserts that RProperty leaves are passed
 // correctly to user and RProperty::Define is called.
 // ---------------------------------------------------------------------------
@@ -306,6 +323,114 @@
     }
 
 
+// ---------------------------------------------------------------------------
+// CallProviderL Test
+// ---------------------------------------------------------------------------
+//
+void UT_CMusApplicationManager::UT_CMusApplicationManager_CallProviderLL()
+    {
+    TInt error = KErrNone;
+    
+    // Use Publish & Subscribe Keys to set CallProvider Name
+    _LIT( KProviderName1, "MultimediaSharing");
+    _LIT8( KProviderNameTest1, "MultimediaSharing");
+    
+    _LIT( KProviderNameEmpty1, "");
+    _LIT8( KProviderNameEmptyTest1, "");
+    
+    
+    // Valid Test:
+    TRAP( error, RProperty::Set(
+           NMusSessionInformationApi::KCategoryUid,
+           NMusSessionInformationApi::KMUSCallProvider,
+           KProviderName1 ));
+
+    if ( error == KErrNoMemory ) User::Leave( error );
+    EUNIT_ASSERT ( error == KErrNone );
+    
+    TBuf8<RProperty::KMaxPropertySize> providerName ;
+    iManager->CallProviderL( providerName );
+    
+    EUNIT_ASSERT( providerName == KProviderNameTest1 );
+    
+
+    //Empty Test
+    TRAP( error, RProperty::Set(
+           NMusSessionInformationApi::KCategoryUid,
+           NMusSessionInformationApi::KMUSCallProvider,
+           KProviderNameEmpty1 ));
+
+    if ( error == KErrNoMemory ) User::Leave( error );
+    EUNIT_ASSERT ( error == KErrNone );
+
+    iManager->CallProviderL( providerName );
+    
+    EUNIT_ASSERT( providerName == KProviderNameEmptyTest1 );
+    }
+
+
+// ---------------------------------------------------------------------------
+// ResolvePluginName Test
+// ---------------------------------------------------------------------------
+//
+void UT_CMusApplicationManager::UT_CMusApplicationManager_ResolvePluginNameLL()
+    {
+    // Default Engine Name to be returned
+    TInt error = KErrNone;
+    _LIT( KEngineName, "MultimediaSharing");
+    _LIT8( KEngineTestName, "MultimediaSharing");
+
+    // Test String for the Publish/Subscribe Keys.
+    _LIT( KProviderName, "MultimediaSharing");
+    _LIT( KProviderName1, "CS");
+  
+    TBuf8<RProperty::KMaxPropertySize> engineName ;
+
+    // Use Publish & Subscribe Keys to set Engine Name as 
+    // 1. MultimediaSharing  [Exact Name]
+    // 2. CS                 [No Match Found, Default MultiMediaSharing will be picked]
+
+    // 1. MultimediaSharing  [Exact Name]
+
+    TRAP( error, RProperty::Set(
+           NMusSessionInformationApi::KCategoryUid,
+           NMusSessionInformationApi::KMUSCallProvider,
+           KProviderName ));
+
+    if ( error == KErrNoMemory ) User::Leave( error );
+    EUNIT_ASSERT ( error == KErrNone );
+    
+    iManager->ResolvePluginNameL( engineName );
+    EUNIT_ASSERT( engineName == KEngineTestName );
+  
+    // 2. CS [No Match Found, Default MultiMediaSharing will be picked]
+    TRAP( error, RProperty::Set(
+           NMusSessionInformationApi::KCategoryUid,
+           NMusSessionInformationApi::KMUSCallProvider,
+           KProviderName1 ));
+    
+    if ( error == KErrNoMemory ) User::Leave( error );
+    EUNIT_ASSERT ( error == KErrNone );
+
+    iManager->ResolvePluginNameL( engineName );
+    EUNIT_ASSERT( engineName == KEngineTestName );
+    }
+
+// ---------------------------------------------------------------------------
+// Command line arg test
+// ---------------------------------------------------------------------------
+//
+void UT_CMusApplicationManager::UT_CMusApplicationManager_CreateCommandLineArgsLCL()
+    {
+    _LIT( KEnginePluginName, "MultimediaSharing" );
+    HBufC* cmdLineArgs = iManager->CreateCommandLineArgsLC();
+    
+    EUNIT_ASSERT( cmdLineArgs != NULL )
+    EUNIT_ASSERT_EQUALS( KEnginePluginName(), *cmdLineArgs )
+    
+    CleanupStack::PopAndDestroy( cmdLineArgs );
+    }
+
 // ======== EUNIT TEST TABLE ========
 
 
@@ -378,17 +503,31 @@
     SetupL, UT_CMusApplicationManager_SetPropertyL2L, Teardown )
 
 EUNIT_TEST(
-    "GetApaTask - test ",
-    "CMusApplicationManager",
-    "GetApaTask",
-    "FUNCTIONALITY",
-    SetupL, UT_CMusApplicationManager_GetApaTaskL, Teardown )
-
-EUNIT_TEST(
     "SetStatusL - test ",
     "CMusApplicationManager",
     "SetStatusL",
     "FUNCTIONALITY",
     SetupL, UT_CMusApplicationManager_SetStatusLL, Teardown )
 
+EUNIT_TEST(
+    "CallProviderL - test ",
+    "CMusApplicationManager",
+    "CallProviderL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMusApplicationManager_CallProviderLL, Teardown )    
+    
+EUNIT_TEST(
+    "ResolvePluginNameL - test ",
+    "CMusApplicationManager",
+    "ResolvePluginNameL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMusApplicationManager_ResolvePluginNameLL, Teardown ) 
+    
+EUNIT_TEST(
+    "CreateCommandLineLC - test ",
+    "CMusApplicationManager",
+    "CreateCommandLineLC",
+    "FUNCTIONALITY",
+    SetupL, UT_CMusApplicationManager_CreateCommandLineArgsLCL, Teardown )  
+    
 EUNIT_END_TEST_TABLE