mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaOptionHandler.cpp
changeset 0 f0cf47e981f9
child 32 73a1feb507fb
equal deleted inserted replaced
-1:000000000000 0:f0cf47e981f9
       
     1 /*
       
     2 * Copyright (c) 2004 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:
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 //  CLASS HEADER
       
    20 #include "sipprofile.h"
       
    21 #include "UT_CMusAvaOptionHandler.h"
       
    22 
       
    23 //  EXTERNAL INCLUDES
       
    24 #include <digia/eunit/eunitmacros.h>
       
    25 #include <digia/eunit/eunitdecorators.h>
       
    26 #include <EscapeUtils.h>
       
    27 #include <sipstrings.h>
       
    28 #include <sipstrconsts.h>
       
    29 #include <stringpool.h>
       
    30 #include <sipservertransaction.h>
       
    31 #include <siptransactionbase.h>
       
    32 //  INTERNAL INCLUDES
       
    33 #include "musavaoptionhandler.h"
       
    34 #include "musavaavailabilityobserver.h"
       
    35 #include "musavaavailabilityobserverimp.h"
       
    36 #include "musavasettingsimp.h"
       
    37 #include "musavaobserverimp.h"
       
    38 #include "muslogger.h"
       
    39 #include "musavasharedobject.h"
       
    40 #include "mussettingskeys.h"
       
    41 #include "mussettings.h"
       
    42 #include "musavasip.h"
       
    43 #include "CSipSseTestTls.h"
       
    44 #include "musavacapabilitytesthelper.h"
       
    45 
       
    46 
       
    47 // CONSTRUCTION
       
    48 UT_CMusAvaOptionHandler* UT_CMusAvaOptionHandler::NewL()
       
    49     {
       
    50     UT_CMusAvaOptionHandler* self = UT_CMusAvaOptionHandler::NewLC(); 
       
    51     CleanupStack::Pop();
       
    52 
       
    53     return self;
       
    54     }
       
    55 
       
    56 UT_CMusAvaOptionHandler* UT_CMusAvaOptionHandler::NewLC()
       
    57     {
       
    58     UT_CMusAvaOptionHandler* self = new( ELeave ) UT_CMusAvaOptionHandler();
       
    59     CleanupStack::PushL( self );
       
    60 	self->ConstructL(); 
       
    61 
       
    62     return self;
       
    63     }
       
    64 
       
    65 // Destructor (virtual by CBase)
       
    66 UT_CMusAvaOptionHandler::~UT_CMusAvaOptionHandler()
       
    67     {
       
    68     }
       
    69 
       
    70 // Default constructor
       
    71 UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler()
       
    72     {
       
    73     }
       
    74 
       
    75 // Second phase construct
       
    76 void UT_CMusAvaOptionHandler::ConstructL()
       
    77     {
       
    78     // The ConstructL from the base class CEUnitTestSuiteClass must be called.
       
    79     // It generates the test case table.
       
    80     CEUnitTestSuiteClass::ConstructL();
       
    81     }
       
    82 
       
    83 //  METHODS
       
    84 
       
    85 void UT_CMusAvaOptionHandler::SetupL(  )
       
    86     {
       
    87     iSharedObject = CMusAvaSharedObject::GetSingletonL();
       
    88     iAvailabilityObserver = CMusAvaAvailabilityObserverImp::NewL();
       
    89     iConcreteSettings = CMusAvaSettingsImp::NewL();
       
    90     iOptionHandler = CMusAvaOptionHandler::NewL( *iAvailabilityObserver,
       
    91                                     *iConcreteSettings );
       
    92 
       
    93     MSIPConnectionObserver& connectionObserver = 
       
    94                             iSharedObject->MusAvaSip().ConnectionObserver();
       
    95     CSIP& sip = iSharedObject->MusAvaSip().Sip();
       
    96     CSipSseTestTls::OpenL();
       
    97     iStorage = CSipSseTestTls::Storage();
       
    98     iSharedObject->MusAvaSip().CreateProfileL();
       
    99     iProfile = iSharedObject->MusAvaSip().Profile();
       
   100     iSharedObject->MusAvaSip().ConnectionL( );
       
   101 
       
   102     if ( !iProfile->iArray )
       
   103         {
       
   104         iProfile->iArray = new ( ELeave ) CDesC8ArrayFlat( 1 );
       
   105         iProfile->iArray->AppendL( _L8("sip:user@domain.com") );
       
   106         }
       
   107     if ( !iProfile->iRegisteredContact )
       
   108         {
       
   109         iProfile->iRegisteredContact = KRegisteredContact().AllocL();
       
   110         }
       
   111 
       
   112     MultimediaSharingSettings::SetCapabilityQuerySettingL(
       
   113                                                 MusSettingsKeys::ESequential );
       
   114     } 
       
   115 
       
   116 void UT_CMusAvaOptionHandler::Teardown(  )
       
   117     {
       
   118     CMusAvaSharedObject::DeleteSingleton();
       
   119     delete iAvailabilityObserver;
       
   120     delete iConcreteSettings;
       
   121     if ( iStorage )
       
   122         {
       
   123         iStorage->Clear();
       
   124         CSipSseTestTls::Close();
       
   125         iStorage = NULL;
       
   126         }
       
   127     delete iOptionHandler;
       
   128     }
       
   129 
       
   130 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_NewLL(  )
       
   131     {
       
   132     EUNIT_ASSERT( iOptionHandler );
       
   133     EUNIT_ASSERT( iOptionHandler->State() == 
       
   134                             MMusAvaObserver::EMusAvaStatusNotExecuted );
       
   135     }
       
   136 
       
   137 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_DoExecuteLL()
       
   138     {   
       
   139     // test for B-party && Cingular variant
       
   140     iOptionHandler->iSettings.SetCallDirection( 2 );
       
   141     MultimediaSharingSettings::SetOperatorVariantSettingL( 
       
   142                                         MusSettingsKeys::EOperatorSpecific );
       
   143     iOptionHandler->DoExecuteL();
       
   144     EUNIT_ASSERT( iOptionHandler->State() ==  
       
   145                             MMusAvaObserver::EMusAvaStatusOptionsNotSent ); 
       
   146     iOptionHandler->iSettings.SetCallDirection( 1 );
       
   147     MultimediaSharingSettings::SetOperatorVariantSettingL( 
       
   148                                         MusSettingsKeys::EStandard );
       
   149                             
       
   150     // usual case    
       
   151     TBufC16<16> str(KCapabilityTestSIPAddressUri_B);
       
   152     HBufC16* ptr;
       
   153     ptr = str.AllocLC(); 
       
   154     CDesCArrayFlat* sipAddress = new( ELeave ) CDesCArrayFlat( 1 );
       
   155     CleanupStack::PushL( sipAddress );
       
   156     sipAddress->AppendL( *ptr );
       
   157     iOptionHandler->iSettings.SetSipAddressesL( *sipAddress );
       
   158     sipAddress->Reset();
       
   159     CleanupStack::PopAndDestroy( sipAddress );
       
   160     CleanupStack::PopAndDestroy(); //ptr   
       
   161     
       
   162     MultimediaSharingSettings::SetCapabilityQuerySettingL(
       
   163                                                 MusSettingsKeys::ESequential );
       
   164     EUNIT_ASSERT( iSharedObject->MusAvaSip().CreateProfileL() == ETrue );
       
   165     MultimediaSharingSettings::SetSipProfileSettingL( 1 );
       
   166     TRAPD( error, iOptionHandler->DoExecuteL() );
       
   167     TInt count = 0;
       
   168     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   169     EUNIT_ASSERT( error == KErrNoMemory || error == KErrNone );
       
   170     if ( error == KErrNoMemory ) User::Leave( error );
       
   171         
       
   172     if ( count > 0 )
       
   173         {
       
   174         EUNIT_ASSERT( iOptionHandler->State() ==  
       
   175                             MMusAvaObserver::EMusAvaOptionNotAvailable ); 
       
   176         }
       
   177     else
       
   178         {
       
   179         EUNIT_ASSERT( iOptionHandler->State() ==  
       
   180                             MMusAvaObserver::EMusAvaStatusOptionsSent ); 
       
   181     
       
   182         EUNIT_ASSERT( iStorage->iClientRequest->Method() == 
       
   183                             SIPStrings::StringF( SipStrConsts::EOptions ) );
       
   184                             
       
   185         EUNIT_ASSERT( 
       
   186             iStorage->iClientRequest->MessageElements().Content().Length() > 0 );
       
   187         EUNIT_ASSERT( iStorage->iClientRequest->MessageElements().ContentType() );
       
   188         EUNIT_ASSERT( iStorage->iClientRequest->RemoteUri().Uri().UriDes().Compare( 
       
   189             KCapabilityTestSIPAddressUri8_B ) == 0);
       
   190         EUNIT_ASSERT( iStorage->iClientRequest->MessageElements().UserHeaders().
       
   191             Count() == 6 );
       
   192         MUS_HEADER_ASSERT( iStorage->iClientRequest, 
       
   193                     0, 
       
   194                     KCapabilityTestAcceptContactHeader );
       
   195         MUS_HEADER_ASSERT( iStorage->iClientRequest, 
       
   196                     5, 
       
   197                     KCapabilityTestContactHeader_A1Updated );
       
   198         }
       
   199 
       
   200     // when needed sip profile and not registered yet. means sip connection is still
       
   201     // null
       
   202     MultimediaSharingSettings::SetCapabilityQuerySettingL(
       
   203                                                 MusSettingsKeys::ESequential );
       
   204     EUNIT_ASSERT( iSharedObject->MusAvaSip().CreateProfileL() == ETrue );
       
   205     MultimediaSharingSettings::SetSipProfileSettingL( 1 );
       
   206     iSharedObject->MusAvaSip().ConnectionL(EFalse);
       
   207     
       
   208     delete iSharedObject->MusAvaSip().iSipConnection;
       
   209     iSharedObject->MusAvaSip().iSipConnection = NULL;
       
   210     
       
   211     iOptionHandler->SetState( MMusAvaObserver::EMusAvaStatusOptionsNotSent );
       
   212     
       
   213     iOptionHandler->DoExecuteL();
       
   214     EUNIT_ASSERT( iOptionHandler->State() ==  
       
   215                             MMusAvaObserver::EMusAvaStatusNotExecuted );
       
   216     }
       
   217 
       
   218 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_NameL()
       
   219     {
       
   220      EUNIT_ASSERT( iOptionHandler->Name() == 
       
   221                             MMusAvaObserver::EMusAvaOptionHandler );
       
   222     }
       
   223   
       
   224 
       
   225 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_StatusL()
       
   226     {
       
   227     EUNIT_ASSERT( iOptionHandler->State() == 
       
   228                             MMusAvaObserver::EMusAvaStatusNotExecuted );
       
   229     }
       
   230 
       
   231 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_StopL()
       
   232     {
       
   233     iOptionHandler->Stop();
       
   234     }
       
   235     
       
   236 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_CapabilitiesResolvedL()
       
   237     {
       
   238     _LIT( KSipAddress ,   "b@foobar.com" );
       
   239     _LIT( KSipAddressA ,   "a@foobar.com" );
       
   240     _LIT( KEmpty, "" );
       
   241     
       
   242     EUNIT_ASSERT( iOptionHandler->State() == 
       
   243                             MMusAvaObserver::EMusAvaStatusNotExecuted );
       
   244 	iOptionHandler->CapabilitiesResolvedL( KEmpty );
       
   245 	EUNIT_ASSERT( iOptionHandler->iSettings.SipAddresses().MdcaCount() == 0 );
       
   246     EUNIT_ASSERT( iOptionHandler->State() == 
       
   247                             MMusAvaObserver::EMusAvaStatusNotExecuted );
       
   248 	
       
   249     iOptionHandler->iState = MMusAvaObserver::EMusAvaStatusNotExecuted;
       
   250 	iOptionHandler->CapabilitiesResolvedL( KSipAddress );
       
   251     EUNIT_ASSERT( iOptionHandler->iSettings.SipAddresses().MdcaPoint( 0 ).
       
   252         Compare( KSipAddress() ) == KErrNone ); 
       
   253     EUNIT_ASSERT( iOptionHandler->State() == 
       
   254                             MMusAvaObserver::EMusAvaStatusNotExecuted );
       
   255         
       
   256     iOptionHandler->CapabilitiesResolvedL( KSipAddressA );    
       
   257     EUNIT_ASSERT( iOptionHandler->iSettings.SipAddresses().MdcaPoint( 0 ).
       
   258         Compare( KSipAddressA() ) == KErrNone ); 
       
   259                 
       
   260     EUNIT_ASSERT( iOptionHandler->State() == 
       
   261                             MMusAvaObserver::EMusAvaStatusNotExecuted );
       
   262     }
       
   263 
       
   264 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_CapabilitiesResolvedForCingularL()
       
   265     {
       
   266     EUNIT_ASSERT( iOptionHandler->CapabilitiesResolvedForCingular() == EFalse );
       
   267     iOptionHandler->SetCapabilitiesResolvedForCingular();
       
   268     EUNIT_ASSERT( iOptionHandler->CapabilitiesResolvedForCingular() == ETrue );
       
   269     }
       
   270 
       
   271 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_SipHeadersL()
       
   272     {    
       
   273     CDesCArrayFlat* headers = new( ELeave ) CDesCArrayFlat( 1 );    
       
   274     CleanupStack::PushL(headers);
       
   275     headers->AppendL(_L("sip:test1@10.21.32.51"));
       
   276     iOptionHandler->SipHeadersL(*headers,SipStrConsts::EToHeader);    
       
   277     EUNIT_ASSERT( iOptionHandler->iSettings.SipAddresses().MdcaCount()==1 );
       
   278 
       
   279     _LIT( KPAssertedIdentityTelNumber, "+4455667788");
       
   280     headers->Reset();
       
   281     headers->AppendL(KPAssertedIdentity_B_16);
       
   282     headers->AppendL(KPAssertedIdentity_B1_16);
       
   283     iOptionHandler->SipHeadersL(*headers,SipStrConsts::EToHeader);    
       
   284     EUNIT_ASSERT( iOptionHandler->iSettings.SipAddresses().MdcaCount()==1 );
       
   285     EUNIT_ASSERT( iOptionHandler->iSettings.SipAddresses().MdcaPoint( 0 ).Compare( 
       
   286         KPAssertedIdentity_B_16() ) == KErrNone );
       
   287     EUNIT_ASSERT( iOptionHandler->iSettings.TelNumber().Compare( 
       
   288         KPAssertedIdentityTelNumber ) == 0 );
       
   289 
       
   290     headers->Reset();
       
   291     iOptionHandler->SipHeadersL(*headers,SipStrConsts::EToHeader);            
       
   292     EUNIT_ASSERT( iOptionHandler->iSettings.SipAddresses().MdcaCount()==0 );
       
   293 
       
   294     headers->Reset();
       
   295     headers->AppendL(_L("sip:test1@10.21.32.51"));
       
   296     iOptionHandler->SipHeadersL(*headers,SipStrConsts::EFromHeader);        
       
   297     EUNIT_ASSERT( iOptionHandler->iSettings.SipAddresses().MdcaCount()==0 );
       
   298 
       
   299     CleanupStack::PopAndDestroy(headers);
       
   300     
       
   301     
       
   302     }
       
   303 
       
   304 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_VideoCodecsResolvedLL()
       
   305     {
       
   306     _LIT16( KVideoCodec , "H.264" );
       
   307     TBufC16<16> str(KVideoCodec);
       
   308     HBufC16* ptr;
       
   309     ptr = str.AllocLC();
       
   310 
       
   311     CDesCArrayFlat* videoCodecs = new( ELeave ) CDesCArrayFlat( 1 );
       
   312     CleanupStack::PushL( videoCodecs );
       
   313 
       
   314     videoCodecs->AppendL( *ptr );
       
   315     iOptionHandler->VideoCodecsResolvedL( *videoCodecs );
       
   316     EUNIT_ASSERT ( iOptionHandler->iSettings.iVideoCodecs->MdcaCount() > KErrNone );
       
   317     EUNIT_ASSERT ( iOptionHandler->iSettings.iVideoCodecs->MdcaPoint(0).Compare ( *ptr ) == 0 );
       
   318 
       
   319     videoCodecs->Reset();
       
   320     CleanupStack::PopAndDestroy( videoCodecs );
       
   321     CleanupStack::PopAndDestroy();
       
   322     
       
   323     }
       
   324 
       
   325 //  TEST TABLE
       
   326 
       
   327 EUNIT_BEGIN_TEST_TABLE( 
       
   328     UT_CMusAvaOptionHandler,
       
   329     "CMusAvaOptionHandler",
       
   330     "UNIT" )
       
   331 
       
   332 EUNIT_TEST(
       
   333     "NewL - test ",
       
   334     "CMusAvaOptionHandler",
       
   335     "NewL",
       
   336     "FUNCTIONALITY",
       
   337     SetupL,UT_CMusAvaOptionHandler_NewLL, Teardown)
       
   338     
       
   339 EUNIT_TEST(
       
   340     "DoExecuteL - test ",
       
   341     "CMusAvaOptionHandler",
       
   342     "DoExecuteL",
       
   343     "FUNCTIONALITY",
       
   344     SetupL,UT_CMusAvaOptionHandler_DoExecuteLL, Teardown)        
       
   345 
       
   346 EUNIT_TEST(
       
   347     "Name - test ",
       
   348     "CMusAvaOptionHandler",
       
   349     "Name",
       
   350     "FUNCTIONALITY",
       
   351     SetupL,UT_CMusAvaOptionHandler_NameL, Teardown)
       
   352     
       
   353 
       
   354 EUNIT_TEST(
       
   355     "Status - test ",
       
   356     "CMusAvaOptionHandler",
       
   357     "Status",
       
   358     "FUNCTIONALITY",
       
   359     SetupL,UT_CMusAvaOptionHandler_StatusL, Teardown)
       
   360 
       
   361 EUNIT_TEST(
       
   362     "Stop - test ",
       
   363     "CMusAvaOptionHandler",
       
   364     "Stop",
       
   365     "FUNCTIONALITY",
       
   366     SetupL,UT_CMusAvaOptionHandler_StopL, Teardown)   
       
   367      
       
   368 EUNIT_TEST(
       
   369     "CapabilitiesResolved - test ",
       
   370     "CMusAvaOptionHandler",
       
   371     "CapabilitiesResolved",
       
   372     "FUNCTIONALITY",
       
   373     SetupL,UT_CMusAvaOptionHandler_CapabilitiesResolvedL, Teardown)   
       
   374      
       
   375 EUNIT_TEST(
       
   376     "CapabilitiesResolvedForCingular - test ",
       
   377     "CMusAvaOptionHandler",
       
   378     "CapabilitiesResolvedForCingular",
       
   379     "FUNCTIONALITY",
       
   380     SetupL,UT_CMusAvaOptionHandler_CapabilitiesResolvedForCingularL, 
       
   381     Teardown)   
       
   382 
       
   383 EUNIT_TEST(
       
   384     "SipHeadersL - test ",
       
   385     "CMusAvaOptionHandler",
       
   386     "SipHeadersL",
       
   387     "FUNCTIONALITY",
       
   388     SetupL,UT_CMusAvaOptionHandler_SipHeadersL, 
       
   389     Teardown)  
       
   390      
       
   391 EUNIT_TEST(
       
   392     "VideoCodecsResolvedL - test ",
       
   393     "CMusAvaOptionHandler",
       
   394     "VideoCodecsResolvedL",
       
   395     "FUNCTIONALITY",
       
   396     SetupL,UT_CMusAvaOptionHandler_VideoCodecsResolvedLL, 
       
   397     Teardown) 
       
   398 
       
   399 EUNIT_END_TEST_TABLE
       
   400 
       
   401 //  END OF FILE