mmsharing/mmshmanagersrv/tsrc/ut_managersrv/src/UT_CMusApplicationManager.cpp
changeset 15 ccd8e69b5392
parent 2 b31261fd4e04
child 20 e8be2c2e049d
child 22 496ad160a278
equal deleted inserted replaced
2:b31261fd4e04 15:ccd8e69b5392
     1 /*
       
     2 * Copyright (c) 2004-2007 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Unit tests for CMusApplicationManager class
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #include "ut_cmusapplicationmanager.h"
       
    20 #include "musapplicationmanager.h"
       
    21 #include "musmanagercommon.h"
       
    22 #include "mussessionproperties.h"
       
    23 #include "musunittesting.h"
       
    24 #include "musmanagerservercommon.h"
       
    25 #include "mussessionproperties.h"
       
    26 #include "mustesthelp.h"
       
    27 #include <apgcli.h>
       
    28 #include <apgtask.h>
       
    29 #include <e32std.h>
       
    30 #include <e32property.h>
       
    31 #include <digia/eunit/eunitmacros.h>
       
    32 #include <APACMDLN.H>
       
    33 
       
    34 
       
    35 
       
    36 // ======== MEMBER FUNCTIONS ========
       
    37 
       
    38 
       
    39 UT_CMusApplicationManager* UT_CMusApplicationManager::NewL()
       
    40     {
       
    41     UT_CMusApplicationManager* self = UT_CMusApplicationManager::NewLC();
       
    42     CleanupStack::Pop();
       
    43     return self;
       
    44     }
       
    45 
       
    46 
       
    47 UT_CMusApplicationManager* UT_CMusApplicationManager::NewLC()
       
    48     {
       
    49     UT_CMusApplicationManager* self = new( ELeave ) UT_CMusApplicationManager();
       
    50     CleanupStack::PushL( self );
       
    51     self->ConstructL();
       
    52     return self;
       
    53     }
       
    54 
       
    55 
       
    56 UT_CMusApplicationManager::~UT_CMusApplicationManager()
       
    57     {
       
    58     }
       
    59 
       
    60 
       
    61 UT_CMusApplicationManager::UT_CMusApplicationManager()
       
    62     {
       
    63     }
       
    64 
       
    65 
       
    66 // ---------------------------------------------------------------------------
       
    67 // The ConstructL from the base class CEUnitTestSuiteClass must be called.
       
    68 // It generates the test case table.
       
    69 // ---------------------------------------------------------------------------
       
    70 //
       
    71 void UT_CMusApplicationManager::ConstructL()
       
    72     {
       
    73     CEUnitTestSuiteClass::ConstructL();
       
    74     }
       
    75 
       
    76 
       
    77 // ---------------------------------------------------------------------------
       
    78 // Setups a test by instantiating tested class.
       
    79 // ---------------------------------------------------------------------------
       
    80 //
       
    81 void UT_CMusApplicationManager::SetupL()
       
    82     {
       
    83     iManager = CMusApplicationManager::NewL();
       
    84     }
       
    85 
       
    86 
       
    87 // ---------------------------------------------------------------------------
       
    88 // Finalizes a by deleting instance of tested class.
       
    89 // ---------------------------------------------------------------------------
       
    90 //
       
    91 void UT_CMusApplicationManager::Teardown()
       
    92     {
       
    93     delete iManager;
       
    94     iManager = NULL;
       
    95     PropertyHelper::Close(); 
       
    96     }
       
    97 
       
    98 
       
    99 // ======== TEST METHODS ========
       
   100 
       
   101 
       
   102 // ---------------------------------------------------------------------------
       
   103 // Asserts that instantiation is successful.
       
   104 // ---------------------------------------------------------------------------
       
   105 //
       
   106 void UT_CMusApplicationManager::UT_CMusApplicationManager_NewLL()
       
   107     {
       
   108     EUNIT_ASSERT( iManager );
       
   109     EUNIT_ASSERT( iManager->iApaSession.iConnected );
       
   110     }
       
   111 
       
   112 
       
   113 // ---------------------------------------------------------------------------
       
   114 // Asserts that instantiation is successful.
       
   115 // ---------------------------------------------------------------------------
       
   116 //
       
   117 void UT_CMusApplicationManager::UT_CMusApplicationManager_NewLCL()
       
   118     {
       
   119     CMusApplicationManager* manager = CMusApplicationManager::NewLC();
       
   120     EUNIT_ASSERT( manager );
       
   121     EUNIT_ASSERT( manager->iApaSession.iConnected );
       
   122     CleanupStack::PopAndDestroy( manager );
       
   123     }
       
   124 
       
   125 
       
   126 // ---------------------------------------------------------------------------
       
   127 // Asserts that correct functions from TApaTask are called.
       
   128 // ---------------------------------------------------------------------------
       
   129 //
       
   130 void UT_CMusApplicationManager::UT_CMusApplicationManager_ApplicationRunningL()
       
   131     {
       
   132     TApaTask::iApplicationExist = EFalse;
       
   133     EUNIT_ASSERT( !iManager->ApplicationRunning() );
       
   134     EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists )
       
   135     TApaTask::iApplicationExist = ETrue;
       
   136     EUNIT_ASSERT( iManager->ApplicationRunning() );
       
   137     EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists )
       
   138     }
       
   139 
       
   140 
       
   141 // ---------------------------------------------------------------------------
       
   142 // Else branch of tested method can't be tested since it tries to start real
       
   143 // application.
       
   144 // ---------------------------------------------------------------------------
       
   145 //
       
   146 void UT_CMusApplicationManager::UT_CMusApplicationManager_StartApplicationLL()
       
   147     {
       
   148     TApaTask::iApplicationExist = EFalse;
       
   149     iManager->StartApplicationL();
       
   150     EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists )
       
   151     EUNIT_ASSERT_EQUALS( PropertyHelper::GetCalledFunction(), RProperty::ENone ) 
       
   152 
       
   153     TApaTask::iApplicationExist = ETrue;
       
   154     iManager->StartApplicationL();
       
   155     EUNIT_ASSERT_EQUALS( PropertyHelper::GetCalledFunction(), RProperty::ENone ) 
       
   156 
       
   157     }
       
   158 
       
   159 
       
   160 // ---------------------------------------------------------------------------
       
   161 // Asserts that tested method calls TApaTask::Exists and if task exists it
       
   162 // should also call TApaTask::KillTask.
       
   163 // ---------------------------------------------------------------------------
       
   164 //
       
   165 void UT_CMusApplicationManager::UT_CMusApplicationManager_StopApplicationLL()
       
   166     {
       
   167     TApaTask::iApplicationExist = EFalse;
       
   168     iManager->StopApplicationL();
       
   169     EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists )    
       
   170     
       
   171     
       
   172     TApaTask::iApplicationExist = ETrue;
       
   173     iManager->StopApplicationL();
       
   174     TInt availability = MultimediaSharing::EMultimediaSharingAvailable;
       
   175     TUint key(NMusSessionApi::KStatus);
       
   176     RProperty::Get( key,availability);
       
   177     EUNIT_ASSERT_EQUALS( PropertyHelper::GetCalledFunction(), RProperty::EDefine ) 
       
   178     EUNIT_ASSERT_EQUALS( availability, 
       
   179                          MultimediaSharing::EMultimediaSharingNotAvailable )
       
   180     }
       
   181 
       
   182 
       
   183 // ---------------------------------------------------------------------------
       
   184 // Asserts that tested method calls TApaTask::Exists and if task exists it
       
   185 // calls TApaTask::BringToForeground.
       
   186 // ---------------------------------------------------------------------------
       
   187 //
       
   188 void UT_CMusApplicationManager::UT_CMusApplicationManager_ShowApplicationLL()
       
   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 )
       
   196     }
       
   197 
       
   198 
       
   199 // ---------------------------------------------------------------------------
       
   200 // Writes session properties. Asserts that RProperty leaves are passed
       
   201 // correctly to user.
       
   202 // ---------------------------------------------------------------------------
       
   203 //
       
   204 void UT_CMusApplicationManager::UT_CMusApplicationManager_WriteSessionPropertiesL()
       
   205     {
       
   206     CDesCArrayFlat* array = new( ELeave ) CDesCArrayFlat(4);
       
   207     CleanupStack::PushL( array );
       
   208 
       
   209     array->AppendL( _L( "a" ) );
       
   210     array->AppendL( _L( "b" ) );
       
   211     array->AppendL( _L( "c" ) );
       
   212     array->AppendL( _L( "d" ) );
       
   213     array->AppendL( _L( "e" ) );
       
   214     array->AppendL( _L( "f" ) );
       
   215     array->AppendL( _L( "g" ) );
       
   216     array->AppendL( _L( "h" ) );
       
   217 
       
   218     iManager->WriteSessionPropertiesL(
       
   219         MultimediaSharing::EMusLiveVideo,
       
   220         (MultimediaSharing::TMusAvailabilityStatus) KErrNone,
       
   221         *array );
       
   222 
       
   223     PropertyHelper::SetErrorCode( KErrGeneral );
       
   224 
       
   225     EUNIT_ASSERT_SPECIFIC_LEAVE(
       
   226         iManager->WriteSessionPropertiesL(
       
   227             MultimediaSharing::EMusLiveVideo,
       
   228             (MultimediaSharing::TMusAvailabilityStatus) KErrNone,
       
   229             *array ), KErrGeneral );
       
   230 
       
   231     PropertyHelper::SetErrorCode(KErrNone);
       
   232 
       
   233     CleanupStack::PopAndDestroy( array );
       
   234     }
       
   235 
       
   236 
       
   237 // ---------------------------------------------------------------------------
       
   238 // Sets a videosharing P/S property. Asserts that RProperty leaves are passed
       
   239 // correctly to user and RProperty::Define is called. Tests literal
       
   240 // properties specifically.
       
   241 // ---------------------------------------------------------------------------
       
   242 //
       
   243 void UT_CMusApplicationManager::UT_CMusApplicationManager_SetPropertyLL()
       
   244     {
       
   245     _LIT( KTest, "unit_test");
       
   246     PropertyHelper::SetErrorCode( KErrNotSupported );
       
   247     MUS_EUNIT_ASSERT_SPECIFIC_LEAVE(
       
   248         iManager->SetPropertyL( 1, KTest ),
       
   249         KErrNotSupported );
       
   250 
       
   251     EUNIT_ASSERT( PropertyHelper::GetCalledFunction() == RProperty::EDefine )
       
   252 
       
   253     PropertyHelper::SetErrorCode( KErrNone );
       
   254     EUNIT_ASSERT_NO_LEAVE( iManager->SetPropertyL( 1, KTest ) );
       
   255     }
       
   256 
       
   257 
       
   258 // ---------------------------------------------------------------------------
       
   259 // Sets a videosharing P/S property. Asserts that RProperty leaves are passed
       
   260 // correctly to user and RProperty::Define is called. Tests integral
       
   261 // properties specifically.
       
   262 // ---------------------------------------------------------------------------
       
   263 //
       
   264 void UT_CMusApplicationManager::UT_CMusApplicationManager_SetPropertyL2L()
       
   265     {
       
   266     PropertyHelper::SetErrorCode( KErrNotSupported );
       
   267     MUS_EUNIT_ASSERT_SPECIFIC_LEAVE(
       
   268         iManager->SetPropertyL( 1, 1 ),
       
   269         KErrNotSupported );
       
   270 
       
   271     EUNIT_ASSERT( PropertyHelper::GetCalledFunction() == RProperty::EDefine )
       
   272 
       
   273     PropertyHelper::SetErrorCode(KErrNone);
       
   274     MUS_EUNIT_ASSERT_NO_LEAVE( iManager->SetPropertyL( 1, 1 ) );
       
   275     }
       
   276 
       
   277 
       
   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 // ---------------------------------------------------------------------------
       
   291 // Sets a videosharing status. Asserts that RProperty leaves are passed
       
   292 // correctly to user and RProperty::Define is called.
       
   293 // ---------------------------------------------------------------------------
       
   294 //
       
   295 void UT_CMusApplicationManager::UT_CMusApplicationManager_SetStatusLL()
       
   296     {
       
   297     PropertyHelper::SetErrorCode( KErrGeneral );
       
   298     MUS_EUNIT_ASSERT_SPECIFIC_LEAVE( iManager->SetStatusL(
       
   299         MultimediaSharing::EMultimediaSharingNotAvailable ), KErrGeneral );
       
   300 
       
   301     EUNIT_ASSERT( PropertyHelper::GetCalledFunction() == RProperty::EDefine );
       
   302 
       
   303     PropertyHelper::SetErrorCode(KErrNone);
       
   304     MUS_EUNIT_ASSERT_NO_LEAVE( iManager->SetStatusL(
       
   305         MultimediaSharing::EMultimediaSharingAvailable ) );
       
   306     }
       
   307 
       
   308 
       
   309 // ======== EUNIT TEST TABLE ========
       
   310 
       
   311 
       
   312 EUNIT_BEGIN_TEST_TABLE(
       
   313     UT_CMusApplicationManager,
       
   314     "CMusApplicationManager",
       
   315     "UNIT" )
       
   316 
       
   317 EUNIT_TEST(
       
   318     "NewL - test ",
       
   319     "CMusApplicationManager",
       
   320     "NewL",
       
   321     "FUNCTIONALITY",
       
   322     SetupL, UT_CMusApplicationManager_NewLL, Teardown )
       
   323 
       
   324 EUNIT_TEST(
       
   325     "NewLC - test ",
       
   326     "CMusApplicationManager",
       
   327     "NewLC",
       
   328     "FUNCTIONALITY",
       
   329     SetupL, UT_CMusApplicationManager_NewLCL, Teardown )
       
   330 
       
   331 EUNIT_TEST(
       
   332     "ApplicationRunning - test ",
       
   333     "CMusApplicationManager",
       
   334     "ApplicationRunning",
       
   335     "FUNCTIONALITY",
       
   336     SetupL, UT_CMusApplicationManager_ApplicationRunningL, Teardown )
       
   337 
       
   338 EUNIT_TEST(
       
   339     "StartApplicationL - test ",
       
   340     "CMusApplicationManager",
       
   341     "StartApplicationL",
       
   342     "FUNCTIONALITY",
       
   343     SetupL, UT_CMusApplicationManager_StartApplicationLL, Teardown )
       
   344 
       
   345 EUNIT_TEST(
       
   346     "StopApplicationL - test ",
       
   347     "CMusApplicationManager",
       
   348     "StopApplicationL",
       
   349     "FUNCTIONALITY",
       
   350     SetupL, UT_CMusApplicationManager_StopApplicationLL, Teardown )
       
   351 
       
   352 EUNIT_TEST(
       
   353     "ShowApplicationL - test ",
       
   354     "CMusApplicationManager",
       
   355     "ShowApplicationL",
       
   356     "FUNCTIONALITY",
       
   357     SetupL, UT_CMusApplicationManager_ShowApplicationLL, Teardown )
       
   358 
       
   359 EUNIT_TEST(
       
   360     "WriteSessionProperties - test ",
       
   361     "CMusApplicationManager",
       
   362     "WriteSessionProperties",
       
   363     "FUNCTIONALITY",
       
   364     SetupL, UT_CMusApplicationManager_WriteSessionPropertiesL, Teardown )
       
   365 
       
   366 EUNIT_TEST(
       
   367     "SetPropertyL (string) - test ",
       
   368     "CMusApplicationManager",
       
   369     "SetPropertyL",
       
   370     "FUNCTIONALITY",
       
   371     SetupL, UT_CMusApplicationManager_SetPropertyLL, Teardown )
       
   372 
       
   373 EUNIT_TEST(
       
   374     "SetPropertyL (integer) - test ",
       
   375     "CMusApplicationManager",
       
   376     "SetPropertyL",
       
   377     "FUNCTIONALITY",
       
   378     SetupL, UT_CMusApplicationManager_SetPropertyL2L, Teardown )
       
   379 
       
   380 EUNIT_TEST(
       
   381     "GetApaTask - test ",
       
   382     "CMusApplicationManager",
       
   383     "GetApaTask",
       
   384     "FUNCTIONALITY",
       
   385     SetupL, UT_CMusApplicationManager_GetApaTaskL, Teardown )
       
   386 
       
   387 EUNIT_TEST(
       
   388     "SetStatusL - test ",
       
   389     "CMusApplicationManager",
       
   390     "SetStatusL",
       
   391     "FUNCTIONALITY",
       
   392     SetupL, UT_CMusApplicationManager_SetStatusLL, Teardown )
       
   393 
       
   394 EUNIT_END_TEST_TABLE