--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaSip.cpp Fri Jun 11 13:36:18 2010 +0300
@@ -0,0 +1,478 @@
+/*
+* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+// CLASS HEADER
+#include "sipprofile.h"
+#include "UT_CMusAvaSip.h"
+#include "muslogger.h"
+#include "mussettings.inl"
+#include "CSipSseTestTls.h"
+#include "mussettingskeys.h"
+#include "musavasipdefaulthandler.h"
+#include "sipconnectionobserver.h"
+#include "musavasipdefaulthandler.h"
+#include "musavasipconnectionadapter.h"
+#include "musavasettingsimp.h"
+#include "musavaregisteravailability.h"
+#include "musavasipprofileregistryobserver.h"
+#include "musavacapabilitytesthelper.h" //remove compilation warning
+#include "CSipSseTestTls.h"
+
+// EXTERNAL INCLUDES
+#include <digia/eunit/eunitmacros.h>
+#include <e32base.h>
+//#include <telephonyinternalpskeys.h>
+#include <sipprofileregistry.h>
+#include <sip.h>
+#include <siperr.h>
+#include <digia/eunit/eunitdecorators.h>
+
+
+// INTERNAL INCLUDES
+#include "musavasip.h"
+
+
+
+// CONSTRUCTION
+UT_CMusAvaSip* UT_CMusAvaSip::NewL()
+ {
+ UT_CMusAvaSip* self = UT_CMusAvaSip::NewLC();
+ CleanupStack::Pop();
+
+ return self;
+ }
+
+UT_CMusAvaSip* UT_CMusAvaSip::NewLC()
+ {
+ UT_CMusAvaSip* self = new( ELeave ) UT_CMusAvaSip();
+ CleanupStack::PushL( self );
+
+ self->ConstructL();
+
+ return self;
+ }
+
+// Destructor (virtual by CBase)
+UT_CMusAvaSip::~UT_CMusAvaSip()
+ {
+ }
+
+// Default constructor
+UT_CMusAvaSip::UT_CMusAvaSip()
+ {
+ }
+
+// Second phase construct
+void UT_CMusAvaSip::ConstructL()
+ {
+ // The ConstructL from the base class CEUnitTestSuiteClass must be called.
+ // It generates the test case table.
+ CEUnitTestSuiteClass::ConstructL();
+ }
+
+// METHODS
+
+
+
+void UT_CMusAvaSip::SetupL( )
+ {
+ SIPStrings::OpenL();
+ CSipSseTestTls::OpenL();
+ iProfileId = MultimediaSharingSettings::SipProfileSettingL();
+ iMusAvaSip = CMusAvaSip::NewL();
+ }
+
+void UT_CMusAvaSip::Teardown( )
+ {
+ delete iMusAvaSip;
+ iMusAvaSip = NULL;
+ MultimediaSharingSettings::SetSipProfileSettingL( iProfileId );
+ CSipSseTestTls::Close();
+ SIPStrings::Close();
+ }
+
+void UT_CMusAvaSip::UT_CMusAvaSip_NewLL( )
+ {
+ EUNIT_ASSERT( iMusAvaSip->iSip );
+ EUNIT_ASSERT( iMusAvaSip->iSipObserver );
+ EUNIT_ASSERT( iMusAvaSip->iSipConnectionObserver );
+ EUNIT_ASSERT( iMusAvaSip->iSipProfileRegistryObserver );
+ }
+
+void UT_CMusAvaSip::UT_CMusAvaSip_AddAdapterLL()
+ {
+ CMusAvaSipDefaultHandler* defaultHandler
+ = new( ELeave ) CMusAvaSipDefaultHandler();
+ CleanupStack::PushL( defaultHandler );
+ iMusAvaSip->AddAdapterL( *defaultHandler );
+ EUNIT_ASSERT( iMusAvaSip->iSipConnectionObserver );
+ CleanupStack::PopAndDestroy( defaultHandler );
+ }
+
+void UT_CMusAvaSip::UT_CMusAvaSip_RemoveAdapterL()
+ {
+ CMusAvaSipDefaultHandler* defaultHandler
+ = new( ELeave ) CMusAvaSipDefaultHandler();
+ CleanupStack::PushL( defaultHandler );
+ iMusAvaSip->AddAdapterL( *defaultHandler );
+ EUNIT_ASSERT( iMusAvaSip->iSipConnectionObserver );
+ iMusAvaSip->RemoveAdapter( *defaultHandler );
+ // EUNIT_ASSERT( !iMusAvaSip->iSipConnectionObserver->iObservers.Count() );
+ CleanupStack::PopAndDestroy( defaultHandler );
+ }
+void UT_CMusAvaSip::UT_CMusAvaSip_CreateProfileL()
+ {
+ // Test Profile
+ //No profile
+ TInt ret = NULL;
+ TRAPD( error, ret = iMusAvaSip->CreateProfileL() );
+ if ( error == KErrNoMemory ) User::Leave( error );
+ TInt count = 0;
+ EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
+ if ( count > 0 && ret == KErrNone )
+ {
+ User::Leave( KErrNoMemory );
+ }
+ EUNIT_ASSERT ( ret );
+
+ // Test Profile
+ //Profile created
+ delete iMusAvaSip;
+ iMusAvaSip = NULL;
+ iMusAvaSip = CMusAvaSip::NewL();
+ MultimediaSharingSettings::SetSipProfileSettingL( 1 );
+ iMusAvaSip->iSipProfileRegistry = CSIPProfileRegistry::NewL(
+ *iMusAvaSip->iSip,
+ *iMusAvaSip->iSipProfileRegistryObserver );
+ iMusAvaSip->iSipProfile =
+ iMusAvaSip->GetMusProfileL( *iMusAvaSip->iSipProfileRegistry );
+ TRAP( error, ret = iMusAvaSip->CreateProfileL() );
+ if ( error == KErrNoMemory ) User::Leave( KErrNoMemory );
+ EUNIT_ASSERT ( ret );
+
+ delete iMusAvaSip;
+ iMusAvaSip = NULL;
+ iMusAvaSip = CMusAvaSip::NewL();
+ //Test sip profile registry
+ //No profile registry, registry creation fails
+ CSipSseTestTls::Storage()->iRegistryBehavior = KRegistryLeaveAtConstruct;
+ TRAP( error, ret = iMusAvaSip->CreateProfileL() );
+ if ( error == KErrNoMemory ) User::Leave( error );
+ EUNIT_ASSERT ( !ret );
+ CSipSseTestTls::Storage()->Reset();
+
+ //Create sip profile registry
+ delete iMusAvaSip;
+ iMusAvaSip = NULL;
+ iMusAvaSip = CMusAvaSip::NewL();
+
+ iMusAvaSip->iSipProfileRegistry = CSIPProfileRegistry::NewL(
+ *iMusAvaSip->iSip,
+ *iMusAvaSip->iSipProfileRegistryObserver );
+ MultimediaSharingSettings::SetSipProfileSettingL( 1 );
+ TRAP( error, ret = iMusAvaSip->CreateProfileL() );
+ if ( error == KErrNoMemory ) User::Leave( error );
+ EUNIT_ASSERT ( ret );
+
+ //Test sip profile registry
+ //No profile registry, registry creation ok
+ TRAP( error, ret = iMusAvaSip->CreateProfileL() );
+ if ( error == KErrNoMemory ) User::Leave( error );
+ EUNIT_ASSERT ( ret );
+ //Create sip profile registry
+ delete iMusAvaSip;
+ iMusAvaSip = NULL;
+ iMusAvaSip = CMusAvaSip::NewL();
+ iMusAvaSip->iSipProfileRegistry = CSIPProfileRegistry::NewL(
+ *iMusAvaSip->iSip,
+ *iMusAvaSip->iSipProfileRegistryObserver );
+ MultimediaSharingSettings::SetSipProfileSettingL( 1 );
+ TRAP( error, ret = iMusAvaSip->CreateProfileL() );
+ if ( error == KErrNoMemory ) User::Leave( error );
+ EUNIT_ASSERT ( ret );
+ // Test profile settings
+ // Resolve profile fail
+ delete iMusAvaSip;
+ iMusAvaSip = NULL;
+ iMusAvaSip = CMusAvaSip::NewL();
+ // Profile found, profile id not found
+ CSipSseTestTls::Storage()->iProfileBehavior = KSIPProfileIdFetchFails;
+ MultimediaSharingSettings::SetSipProfileSettingL( 1 );
+ TRAP( error, ret = iMusAvaSip->CreateProfileL() );
+ if ( error == KErrNoMemory ) User::Leave( error );
+ EUNIT_ASSERT ( ret );
+ CSipSseTestTls::Storage()->Reset();
+
+ // Profile found, iap id not found
+ delete iMusAvaSip;
+ iMusAvaSip = NULL;
+ iMusAvaSip = CMusAvaSip::NewL();
+ CSipSseTestTls::Storage()->iProfileBehavior = KSIPIapIdFetchFails;
+ TRAP( error, ret = iMusAvaSip->CreateProfileL() );
+ if ( error == KErrNoMemory ) User::Leave( error );
+ EUNIT_ASSERT ( !ret );
+ CSipSseTestTls::Storage()->Reset();
+
+ // All ok
+ delete iMusAvaSip;
+ iMusAvaSip = NULL;
+ iMusAvaSip = CMusAvaSip::NewL();
+ TRAP( error, ret = iMusAvaSip->CreateProfileL() );
+ if ( error == KErrNoMemory ) User::Leave( error );
+ EUNIT_ASSERT ( ret );
+
+ }
+
+void UT_CMusAvaSip::UT_CMusAvaSip_CreateSipProfileL()
+ {
+ // Test Profile
+ //No profile
+ TInt ret = NULL;
+ TRAPD( error, ret = iMusAvaSip->CreateSipProfile() );
+ if ( error == KErrNoMemory ) User::Leave( error );
+ TInt count = 0;
+ EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
+ if ( count > 0 && ret == KErrNone )
+ {
+ User::Leave( KErrNoMemory );
+ }
+ EUNIT_ASSERT ( ret );
+ // Test Profile
+ //Profile created
+ delete iMusAvaSip;
+ iMusAvaSip = NULL;
+ iMusAvaSip = CMusAvaSip::NewL();
+ MultimediaSharingSettings::SetSipProfileSettingL( 1 );
+ iMusAvaSip->iSipProfileRegistry = CSIPProfileRegistry::NewL(
+ *iMusAvaSip->iSip,
+ *iMusAvaSip->iSipProfileRegistryObserver );
+ iMusAvaSip->iSipProfile =
+ iMusAvaSip->GetMusProfileL( *iMusAvaSip->iSipProfileRegistry );
+ TRAP( error, ret = iMusAvaSip->CreateSipProfile() );
+ if ( error == KErrNoMemory ) User::Leave( error );
+ EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
+ if ( count > 0 && ret == KErrNone )
+ {
+ User::Leave( KErrNoMemory );
+ }
+ EUNIT_ASSERT ( ret );
+ }
+
+void UT_CMusAvaSip::UT_CMusAvaSip_ProfileL()
+ {
+ //No profile
+ EUNIT_ASSERT( iMusAvaSip->Profile() == NULL );
+ //Profile created
+ MultimediaSharingSettings::SetSipProfileSettingL( 1 );
+ EUNIT_ASSERT( iMusAvaSip->CreateProfileL());
+ EUNIT_ASSERT( iMusAvaSip->Profile() != NULL );
+ }
+
+void UT_CMusAvaSip::UT_CMusAvaSip_ProfileRegistryL()
+ {
+ //Create SIP Profile Registry
+ CSIPProfileRegistry* registry = &iMusAvaSip->ProfileRegistryL();
+ EUNIT_ASSERT( registry != NULL );
+ //SIP Profile Registry is created
+ registry = &iMusAvaSip->ProfileRegistryL();
+ EUNIT_ASSERT( registry != NULL );
+ }
+
+void UT_CMusAvaSip::UT_CMusAvaSip_ConnectionL()
+ {
+ //No connection
+ EUNIT_ASSERT( iMusAvaSip->iSipConnection == NULL );
+ //Connection is created when SIP profile is created
+ MultimediaSharingSettings::SetSipProfileSettingL( 1 );
+ EUNIT_ASSERT( iMusAvaSip->CreateProfileL() );
+
+ //Still no connection
+ EUNIT_ASSERT( iMusAvaSip->iSipConnection == NULL );
+
+ TRAPD( err, iMusAvaSip->ConnectionL( EFalse ) );
+ EUNIT_ASSERT( err == KErrSIPInvalidRegistrationState );
+
+ // Forced creation (done normally when profile is registered).
+ EUNIT_ASSERT( iMusAvaSip->ConnectionL() != NULL );
+ }
+
+void UT_CMusAvaSip::UT_CMusAvaSip_ConnectionObserverL()
+ {
+ MSIPConnectionObserver& con = iMusAvaSip->ConnectionObserver();
+ EUNIT_ASSERT( &con != NULL );
+ }
+
+void UT_CMusAvaSip::UT_CMusAvaSip_SipL()
+ {
+ CSIP& sip = iMusAvaSip->Sip();
+ EUNIT_ASSERT( &sip != NULL );
+ }
+
+void UT_CMusAvaSip::UT_CMusAvaSip_CreateSIPConnectionLL()
+ {
+ TUint32 iapId;
+ //Profile created
+ delete iMusAvaSip;
+ iMusAvaSip = NULL;
+ iMusAvaSip = CMusAvaSip::NewL();
+ MultimediaSharingSettings::SetSipProfileSettingL( 0 );
+ iMusAvaSip->CreateSipProfile();
+ iMusAvaSip->Profile()->GetParameter( KSIPAccessPointId, iapId );
+ iMusAvaSip->iIapId = iapId;
+ iMusAvaSip->CreateSIPConnectionL();
+ EUNIT_ASSERT( iMusAvaSip->ConnectionL( EFalse )->IapId() == iapId );
+ }
+
+void UT_CMusAvaSip::UT_CMusAvaSip_OwnDomainL()
+ {
+ // Profile does not exist
+ HBufC* ownDomain = iMusAvaSip->OwnDomainLC();
+ EUNIT_ASSERT( ownDomain->Length() == 0 );
+ CleanupStack::PopAndDestroy( ownDomain );
+ ownDomain = NULL;
+
+ // Profile exists, no aors
+ MultimediaSharingSettings::SetSipProfileSettingL( 1 );
+ TInt ret = NULL;
+ TRAPD( error, ret = iMusAvaSip->CreateProfileL() );
+ if ( error == KErrNoMemory ) User::Leave( error );
+ TInt count = 0;
+ EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
+ if ( count > 0 && ret == KErrNone )
+ {
+ User::Leave( KErrNoMemory );
+ }
+ EUNIT_ASSERT ( ret );
+ ownDomain = iMusAvaSip->OwnDomainLC();
+ EUNIT_ASSERT( ownDomain->Length() == 0 );
+ CleanupStack::PopAndDestroy( ownDomain );
+ ownDomain = NULL;
+
+ // Empty aors
+ CSIPProfile* profile = iMusAvaSip->Profile();
+ delete profile->iArray;
+ profile->iArray = NULL;
+ profile->iArray = new ( ELeave ) CDesC8ArrayFlat( 1 );
+ ownDomain = iMusAvaSip->OwnDomainLC();
+ EUNIT_ASSERT( ownDomain->Length() == 0 );
+ CleanupStack::PopAndDestroy( ownDomain );
+ ownDomain = NULL;
+
+ // Aors found
+ profile->iArray->AppendL( _L8("sip:user@domain.com") );
+ ownDomain = iMusAvaSip->OwnDomainLC();
+ EUNIT_ASSERT( ownDomain->Length() > 0 );
+ CleanupStack::PopAndDestroy( ownDomain );
+ }
+
+// TEST TABLE
+
+EUNIT_BEGIN_TEST_TABLE(
+ UT_CMusAvaSip,
+ "CMusAvaSip.",
+ "UNIT" )
+
+EUNIT_TEST(
+ "NewL - test ",
+ "CMusAvaSip",
+ "NewL",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusAvaSip_NewLL, Teardown)
+
+EUNIT_TEST(
+ "AddAdapterL - test ",
+ "CMusAvaSip",
+ "AddAdapterL",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusAvaSip_AddAdapterLL, Teardown)
+
+EUNIT_TEST(
+ "RemoveAdapter - test ",
+ "CMusAvaSip",
+ "RemoveAdapter",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusAvaSip_RemoveAdapterL, Teardown)
+
+
+EUNIT_TEST(
+ "CreateProfile - test ",
+ "CMusAvaSip",
+ "CreateProfile",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusAvaSip_CreateProfileL, Teardown)
+
+EUNIT_TEST(
+ "CreateSipProfile - test ",
+ "CMusAvaSip",
+ "CreateSipProfile",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusAvaSip_CreateSipProfileL, Teardown)
+
+
+EUNIT_TEST(
+ "ProfileL - test ",
+ "CMusAvaSip",
+ "ProfileL",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusAvaSip_ProfileL, Teardown)
+
+EUNIT_TEST(
+ "ProfileRegistry - test ",
+ "CMusAvaSip",
+ "ProfileRegistry",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusAvaSip_ProfileRegistryL, Teardown)
+
+ EUNIT_TEST(
+ "Connection - test ",
+ "CMusAvaSip",
+ "Connection",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusAvaSip_ConnectionL, Teardown)
+
+EUNIT_TEST(
+ "ConnectionObserver - test ",
+ "CMusAvaSip",
+ "ConnectionObserver",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusAvaSip_ConnectionObserverL, Teardown)
+
+EUNIT_TEST(
+ "Sip - test ",
+ "CMusAvaSip",
+ "Sip",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusAvaSip_SipL, Teardown)
+
+EUNIT_TEST(
+ "CreateSIPConnectionL - test ",
+ "CMusAvaSip",
+ "CreateSIPConnectionL",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusAvaSip_CreateSIPConnectionLL, Teardown)
+
+EUNIT_TEST(
+ "OwnDomainLC - test ",
+ "CMusAvaSip",
+ "OwnDomainLC",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusAvaSip_OwnDomainL, Teardown)
+
+EUNIT_END_TEST_TABLE
+
+// END OF FILE