mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaOptionHandler.cpp
branchRCL_3
changeset 33 bc78a40cd63c
parent 32 73a1feb507fb
equal deleted inserted replaced
32:73a1feb507fb 33:bc78a40cd63c
    40 #include "mussettingskeys.h"
    40 #include "mussettingskeys.h"
    41 #include "mussettings.h"
    41 #include "mussettings.h"
    42 #include "musavasip.h"
    42 #include "musavasip.h"
    43 #include "CSipSseTestTls.h"
    43 #include "CSipSseTestTls.h"
    44 #include "musavacapabilitytesthelper.h"
    44 #include "musavacapabilitytesthelper.h"
    45 #include "musavasettingsobserverimp.h"
       
    46 
    45 
    47 
    46 
    48 // CONSTRUCTION
    47 // CONSTRUCTION
    49 UT_CMusAvaOptionHandler* UT_CMusAvaOptionHandler::NewL()
    48 UT_CMusAvaOptionHandler* UT_CMusAvaOptionHandler::NewL()
    50     {
    49     {
    85 
    84 
    86 void UT_CMusAvaOptionHandler::SetupL(  )
    85 void UT_CMusAvaOptionHandler::SetupL(  )
    87     {
    86     {
    88     iSharedObject = CMusAvaSharedObject::GetSingletonL();
    87     iSharedObject = CMusAvaSharedObject::GetSingletonL();
    89     iAvailabilityObserver = CMusAvaAvailabilityObserverImp::NewL();
    88     iAvailabilityObserver = CMusAvaAvailabilityObserverImp::NewL();
    90     iSettingsObserver = CMusAvaSettingsObserverImp::NewL();
       
    91     iConcreteSettings = CMusAvaSettingsImp::NewL();
    89     iConcreteSettings = CMusAvaSettingsImp::NewL();
    92     iConcreteSettings->SetObserver( *iSettingsObserver );
       
    93     iOptionHandler = CMusAvaOptionHandler::NewL( *iAvailabilityObserver,
    90     iOptionHandler = CMusAvaOptionHandler::NewL( *iAvailabilityObserver,
    94                                     *iConcreteSettings );
    91                                     *iConcreteSettings );
    95 
    92 
    96     MSIPConnectionObserver& connectionObserver = 
    93     MSIPConnectionObserver& connectionObserver = 
    97                             iSharedObject->MusAvaSip().ConnectionObserver();
    94                             iSharedObject->MusAvaSip().ConnectionObserver();
    98     CSIP& sip = iSharedObject->MusAvaSip().Sip();
    95     CSIP& sip = iSharedObject->MusAvaSip().Sip();
    99     CSipSseTestTls::OpenL();
    96     CSipSseTestTls::OpenL();
   100     iStorage = CSipSseTestTls::Storage();
    97     iStorage = CSipSseTestTls::Storage();
   101     iStorage->Set( MusSettingsKeys::KFastStartupMode, 
       
   102         MusSettingsKeys::EFastModeOff );
       
   103 
       
   104     iSharedObject->MusAvaSip().CreateProfileL();
    98     iSharedObject->MusAvaSip().CreateProfileL();
   105     iProfile = iSharedObject->MusAvaSip().Profile();
    99     iProfile = iSharedObject->MusAvaSip().Profile();
   106     iSharedObject->MusAvaSip().ConnectionL( );
   100     iSharedObject->MusAvaSip().ConnectionL( );
   107 
   101 
   108     if ( !iProfile->iArray )
   102     if ( !iProfile->iArray )
   129         iStorage->Clear();
   123         iStorage->Clear();
   130         CSipSseTestTls::Close();
   124         CSipSseTestTls::Close();
   131         iStorage = NULL;
   125         iStorage = NULL;
   132         }
   126         }
   133     delete iOptionHandler;
   127     delete iOptionHandler;
   134     delete iSettingsObserver;
       
   135     
       
   136     PropertyHelper::Close();
       
   137     }
   128     }
   138 
   129 
   139 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_NewLL(  )
   130 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_NewLL(  )
   140     {
   131     {
   141     EUNIT_ASSERT( iOptionHandler );
   132     EUNIT_ASSERT( iOptionHandler );
   329     CleanupStack::PopAndDestroy( videoCodecs );
   320     CleanupStack::PopAndDestroy( videoCodecs );
   330     CleanupStack::PopAndDestroy();
   321     CleanupStack::PopAndDestroy();
   331     
   322     
   332     }
   323     }
   333 
   324 
   334 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_DoSetStateL()
       
   335     {
       
   336     // Set some state which does not cause special handling
       
   337     iOptionHandler->iFastModeCapable = EFalse;
       
   338     iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaStatusOptionsSent );
       
   339     EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusOptionsSent );
       
   340     
       
   341     // Set special handling state, but fast mode is not enabled
       
   342     iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaStatusAvailable );
       
   343     EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusAvailable );
       
   344     EUNIT_ASSERT( !iSettingsObserver->iApplicationStarted );
       
   345         
       
   346     // Set special handling state, fast capable but mode is not enabled
       
   347     iOptionHandler->iFastModeCapable = ETrue;
       
   348     iConcreteSettings->SetFastMode( MusSettingsKeys::EFastModeOff );
       
   349     iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaStatusAvailable );
       
   350     EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusAvailable );
       
   351     EUNIT_ASSERT( !iSettingsObserver->iApplicationStarted );
       
   352     }
       
   353 
       
   354 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_DoSetStateFastModeL()
       
   355     {
       
   356     iOptionHandler->iFastModeCapable = ETrue;
       
   357     iConcreteSettings->SetFastMode( MusSettingsKeys::EFastModeOn );
       
   358     iOptionHandler->iSettings.SetCallDirection( 1 );
       
   359     
       
   360     // State which does not have special handling
       
   361     iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaFailureCode );
       
   362     EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaFailureCode );
       
   363     EUNIT_ASSERT( !iOptionHandler->iFastModeAvailabilityDelayed );
       
   364     
       
   365     // OptionsNotSent handling
       
   366     //
       
   367         
       
   368     // MT, not answered
       
   369     iOptionHandler->iSettings.SetCallDirection( 2 );
       
   370     iOptionHandler->iCapabilityQueryAnswered = EFalse;
       
   371     iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaStatusOptionsNotSent );
       
   372     EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusOptionsNotSent );
       
   373     EUNIT_ASSERT( !iOptionHandler->iFastModeAvailabilityDelayed );
       
   374         
       
   375     // MT, answered (makes state available delayed)
       
   376     iOptionHandler->iCapabilityQueryAnswered = ETrue;
       
   377     iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaStatusOptionsNotSent );
       
   378     EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusOptionsNotSent );
       
   379     EUNIT_ASSERT( iOptionHandler->iFastModeAvailabilityDelayed );
       
   380     
       
   381     // Available handling
       
   382     //
       
   383     
       
   384     // MO, start app
       
   385     iOptionHandler->iSettings.SetCallDirection( 1 );
       
   386     iSettingsObserver->iApplicationStarted = EFalse;
       
   387     iOptionHandler->iFastModeAvailabilityDelayed = EFalse;
       
   388     iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaStatusAvailable );
       
   389     EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusAvailable );
       
   390     EUNIT_ASSERT( !iOptionHandler->iFastModeAvailabilityDelayed );
       
   391     EUNIT_ASSERT( iSettingsObserver->iApplicationStarted );
       
   392     
       
   393     // App already started by going to available state, do not do twice
       
   394     iSettingsObserver->iApplicationStarted = EFalse;
       
   395     iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaStatusAvailable );
       
   396     EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusAvailable );
       
   397     EUNIT_ASSERT( !iOptionHandler->iFastModeAvailabilityDelayed );
       
   398     EUNIT_ASSERT( !iSettingsObserver->iApplicationStarted );
       
   399      
       
   400     // MT, delayed availability publishing (state not changed yet)
       
   401     iOptionHandler->iSettings.SetCallDirection( 2 );
       
   402     iOptionHandler->iFastModeAvailabilityDelayed = EFalse;
       
   403     iSettingsObserver->iApplicationStarted = EFalse;
       
   404     iOptionHandler->iState = MMusAvaObserver::EMusAvaStatusOptionsNotSent;
       
   405     iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaStatusAvailable );
       
   406     EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusOptionsNotSent );
       
   407     EUNIT_ASSERT( iOptionHandler->iFastModeAvailabilityDelayed );
       
   408     EUNIT_ASSERT( !iSettingsObserver->iApplicationStarted );
       
   409     
       
   410     // Invite ends availability delaying
       
   411     iOptionHandler->PrepareForReceivedInviteL();
       
   412     EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusAvailable );
       
   413     EUNIT_ASSERT( !iOptionHandler->iFastModeAvailabilityDelayed );
       
   414     
       
   415     // No effect if no delay pending
       
   416     iOptionHandler->iState = MMusAvaObserver::EMusAvaStatusOptionsNotSent;
       
   417     iOptionHandler->PrepareForReceivedInviteL();
       
   418     EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusOptionsNotSent );
       
   419     
       
   420     // OptionNotAvailable handling
       
   421     //
       
   422     
       
   423     // Normal handling when no pending availabilty publishing nor state is
       
   424     // not already available
       
   425     iOptionHandler->iFastModeAvailabilityDelayed = EFalse;
       
   426     iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaOptionNotAvailable );
       
   427     EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaOptionNotAvailable );
       
   428     
       
   429     // If already set to available by succesfull answer, sending failure
       
   430     // does not clear availability
       
   431     iOptionHandler->iState = MMusAvaObserver::EMusAvaStatusAvailable;
       
   432     iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaOptionNotAvailable );
       
   433     EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusAvailable );
       
   434     }
       
   435 
       
   436 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_FastModeResolvedL()
       
   437     {
       
   438     iOptionHandler->iFastModeCapable = ETrue;
       
   439     
       
   440     // Normal case  
       
   441     iOptionHandler->iSettings.SetFastMode( MusSettingsKeys::EFastModeOff );
       
   442     iOptionHandler->FastModeResolved( MusSettingsKeys::EFastModeOn );
       
   443     EUNIT_ASSERT( iOptionHandler->iSettings.FastMode() == MusSettingsKeys::EFastModeOn )
       
   444     
       
   445     // MO side fast mode negotiation has failed, value is not set
       
   446     iOptionHandler->iSettings.SetFastMode( MusSettingsKeys::EFastModeOff );
       
   447     iOptionHandler->iSettings.SetCallDirection( 1 );
       
   448     iOptionHandler->iState = MMusAvaObserver::EMusAvaOptionNotAvailable;
       
   449     iOptionHandler->FastModeResolved( MusSettingsKeys::EFastModeOn );
       
   450     EUNIT_ASSERT( iOptionHandler->iSettings.FastMode() == MusSettingsKeys::EFastModeOff )
       
   451     }
       
   452 
       
   453 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_CapabilityQueryAnsweredL()
       
   454     {
       
   455     iOptionHandler->iFastModeCapable = ETrue;
       
   456     
       
   457     // If fast mode MO side, no special handling for answer
       
   458     iOptionHandler->CapabilityQueryAnswered( ETrue );
       
   459     EUNIT_ASSERT( iOptionHandler->iCapabilityQueryAnswered )
       
   460     EUNIT_ASSERT( !iOptionHandler->iFastModeAvailabilityDelayed );
       
   461     
       
   462     // If fast mode MT side, MT can start waiting for invite already after answering
       
   463     iOptionHandler->iCapabilityQueryAnswered = EFalse;
       
   464     iOptionHandler->iSettings.SetFastMode( MusSettingsKeys::EFastModeOn );
       
   465     iOptionHandler->iSettings.SetCallDirection( 2 );
       
   466     iOptionHandler->CapabilityQueryAnswered( ETrue );
       
   467     EUNIT_ASSERT( iOptionHandler->iCapabilityQueryAnswered )
       
   468     EUNIT_ASSERT( iOptionHandler->iFastModeAvailabilityDelayed );
       
   469     }
       
   470 
       
   471 //  TEST TABLE
   325 //  TEST TABLE
   472 
   326 
   473 EUNIT_BEGIN_TEST_TABLE( 
   327 EUNIT_BEGIN_TEST_TABLE( 
   474     UT_CMusAvaOptionHandler,
   328     UT_CMusAvaOptionHandler,
   475     "CMusAvaOptionHandler",
   329     "CMusAvaOptionHandler",
   540     "VideoCodecsResolvedL",
   394     "VideoCodecsResolvedL",
   541     "FUNCTIONALITY",
   395     "FUNCTIONALITY",
   542     SetupL,UT_CMusAvaOptionHandler_VideoCodecsResolvedLL, 
   396     SetupL,UT_CMusAvaOptionHandler_VideoCodecsResolvedLL, 
   543     Teardown) 
   397     Teardown) 
   544 
   398 
   545 EUNIT_TEST(
       
   546     "DoSetState - test ",
       
   547     "CMusAvaOptionHandler",
       
   548     "DoSetState",
       
   549     "FUNCTIONALITY",
       
   550     SetupL,UT_CMusAvaOptionHandler_DoSetStateL, 
       
   551     Teardown) 
       
   552 
       
   553 EUNIT_TEST(
       
   554     "DoSetState - fastmode test ",
       
   555     "CMusAvaOptionHandler",
       
   556     "DoSetState",
       
   557     "FUNCTIONALITY",
       
   558     SetupL,UT_CMusAvaOptionHandler_DoSetStateFastModeL, 
       
   559     Teardown) 
       
   560 
       
   561 EUNIT_TEST(
       
   562     "FastModeResolved - test ",
       
   563     "CMusAvaOptionHandler",
       
   564     "FastModeResolved",
       
   565     "FUNCTIONALITY",
       
   566     SetupL,UT_CMusAvaOptionHandler_FastModeResolvedL, 
       
   567     Teardown) 
       
   568 
       
   569 EUNIT_TEST(
       
   570     "CapabilityQueryAnswered - test ",
       
   571     "CMusAvaOptionHandler",
       
   572     "CapabilityQueryAnswered",
       
   573     "FUNCTIONALITY",
       
   574     SetupL,UT_CMusAvaOptionHandler_CapabilityQueryAnsweredL, 
       
   575     Teardown) 
       
   576 
       
   577 EUNIT_END_TEST_TABLE
   399 EUNIT_END_TEST_TABLE
   578 
   400 
   579 //  END OF FILE
   401 //  END OF FILE