--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengsipprofilehandler.cpp Thu Dec 17 08:44:37 2009 +0200
@@ -0,0 +1,362 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+
+
+// INTERNAL INCLUDES
+#include "ut_musengsipprofilehandler.h"
+#include "mussipprofilehandler.h"
+#include "musengstubs.h"
+#include "musengtestdefs.h"
+#include "sipprofilealrcontroller.h"
+
+
+// SYSTEM INCLUDES
+#include <sipprofile.h>
+#include <digia/eunit/eunitmacros.h>
+#include <uri8.h>
+
+const TUint KSipProfileId( 1 );
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+UT_CMusEngSipProfileHandler* UT_CMusEngSipProfileHandler::NewL()
+ {
+ UT_CMusEngSipProfileHandler* self = UT_CMusEngSipProfileHandler::NewLC();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+UT_CMusEngSipProfileHandler* UT_CMusEngSipProfileHandler::NewLC()
+ {
+ UT_CMusEngSipProfileHandler* self = new( ELeave ) UT_CMusEngSipProfileHandler();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+UT_CMusEngSipProfileHandler::~UT_CMusEngSipProfileHandler()
+ {
+ // NOP
+ }
+
+
+// -----------------------------------------------------------------------------
+// Default constructor
+// -----------------------------------------------------------------------------
+//
+UT_CMusEngSipProfileHandler::UT_CMusEngSipProfileHandler()
+ {
+ // NOP
+ }
+
+
+// -----------------------------------------------------------------------------
+// Second phase construct
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngSipProfileHandler::ConstructL()
+ {
+ // The ConstructL from the base class CEUnitTestSuiteClass must be called.
+ // It generates the test case table.
+ CEUnitTestSuiteClass::ConstructL();
+ }
+
+
+// -----------------------------------------------------------------------------
+// From MMusSipProfileUser
+// -----------------------------------------------------------------------------
+//
+TBool UT_CMusEngSipProfileHandler::IsRoamingBetweenAPsAllowed()
+ {
+ return iRoamingBetweenAPsAllowed;
+ }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngSipProfileHandler::SetupL()
+ {
+ iProfileHandler = CMusSipProfileHandler::NewL( *this );
+ }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngSipProfileHandler::Teardown()
+ {
+ delete iProfileHandler;
+ iRoamingBetweenAPsAllowed = EFalse;
+ }
+
+
+
+// TEST CASES
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngSipProfileHandler::UT_CMusEngSipProfileHandler_CreateSipProfileLL()
+ {
+ // SIP profile ID zero
+ iProfileHandler->CreateProfileL( 0 );
+ EUNIT_ASSERT( iProfileHandler->iSipProfile != NULL )
+ EUNIT_ASSERT( iProfileHandler->iSipProfile == iProfileHandler->Profile() )
+ EUNIT_ASSERT( iProfileHandler->iSipProfile->iIsDefaultProfile )
+
+ // SIP profile ID non-zero
+ delete iProfileHandler->iSipProfile;
+ iProfileHandler->iSipProfile = NULL;
+ iProfileHandler->CreateProfileL( KSipProfileId );
+ EUNIT_ASSERT( iProfileHandler->iSipProfile != NULL )
+ EUNIT_ASSERT( iProfileHandler->iSipProfile == iProfileHandler->Profile() )
+ EUNIT_ASSERT( !iProfileHandler->iSipProfile->iIsDefaultProfile )
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngSipProfileHandler::UT_CMusEngSipProfileHandler_ProfileIdL()
+ {
+ // SIP profile does not yet exist
+ EUNIT_ASSERT_EQUALS( 0, iProfileHandler->ProfileId() )
+
+ // SIP profile exists
+ iProfileHandler->CreateProfileL( KSipProfileId );
+ EUNIT_ASSERT_EQUALS( KSipProfileId, iProfileHandler->ProfileId() )
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngSipProfileHandler::UT_CMusEngSipProfileHandler_AlrEventL()
+ {
+ const TUint32 KSnapId( 1 );
+ const TUint32 KIapId( 1 );
+
+ // Event is other that EIapAvailable
+ iProfileHandler->AlrEvent(
+ MSipProfileAlrObserver::EMigrationCompleted,
+ KSipProfileId, KSnapId, KIapId );
+ EUNIT_ASSERT(
+ !iProfileHandler->iProfileAlrController->iAllowMigrationCalled )
+ EUNIT_ASSERT(
+ !iProfileHandler->iProfileAlrController->iDisallowMigrationCalled )
+
+ // Event is EIapAvailable, SIP profile does not exist
+ iProfileHandler->AlrEvent(
+ MSipProfileAlrObserver::EIapAvailable,
+ KSipProfileId, KSnapId, KIapId );
+ if ( !iProfileHandler->iProfileAlrController->iAllowMigrationCalled )
+ {
+ User::Leave( KErrNoMemory );
+ }
+ EUNIT_ASSERT(
+ iProfileHandler->iProfileAlrController->iAllowMigrationCalled )
+ iProfileHandler->iProfileAlrController->iAllowMigrationCalled = EFalse;
+ EUNIT_ASSERT(
+ !iProfileHandler->iProfileAlrController->iDisallowMigrationCalled )
+ EUNIT_ASSERT_EQUALS(
+ KIapId, iProfileHandler->iProfileAlrController->iLastUsedIap )
+ iProfileHandler->iProfileAlrController->iLastUsedIap = 0;
+
+ // Event is EIapAvailable, SIP profile ID does not match
+ iProfileHandler->CreateProfileL( KSipProfileId );
+ iProfileHandler->AlrEvent(
+ MSipProfileAlrObserver::EIapAvailable,
+ KSipProfileId+1, KSnapId, KIapId );
+ if ( !iProfileHandler->iProfileAlrController->iAllowMigrationCalled )
+ {
+ User::Leave( KErrNoMemory );
+ }
+ EUNIT_ASSERT(
+ iProfileHandler->iProfileAlrController->iAllowMigrationCalled )
+ iProfileHandler->iProfileAlrController->iAllowMigrationCalled = EFalse;
+ EUNIT_ASSERT(
+ !iProfileHandler->iProfileAlrController->iDisallowMigrationCalled )
+ EUNIT_ASSERT_EQUALS(
+ KIapId, iProfileHandler->iProfileAlrController->iLastUsedIap )
+ iProfileHandler->iProfileAlrController->iLastUsedIap = 0;
+
+ // Event is EIapAvailable, SIP profile ID matches, roaming not allowed
+ iProfileHandler->AlrEvent(
+ MSipProfileAlrObserver::EIapAvailable,
+ KSipProfileId, KSnapId, KIapId );
+ if ( !iProfileHandler->iProfileAlrController->iDisallowMigrationCalled )
+ {
+ User::Leave( KErrNoMemory );
+ }
+ EUNIT_ASSERT(
+ !iProfileHandler->iProfileAlrController->iAllowMigrationCalled )
+ EUNIT_ASSERT(
+ iProfileHandler->iProfileAlrController->iDisallowMigrationCalled )
+ iProfileHandler->iProfileAlrController->iDisallowMigrationCalled = EFalse;
+ EUNIT_ASSERT_EQUALS(
+ KIapId, iProfileHandler->iProfileAlrController->iLastUsedIap )
+ iProfileHandler->iProfileAlrController->iLastUsedIap = 0;
+
+ // Event is EIapAvailable, SIP profile ID matches, roaming not allowed
+ iRoamingBetweenAPsAllowed = ETrue;
+ iProfileHandler->AlrEvent(
+ MSipProfileAlrObserver::EIapAvailable,
+ KSipProfileId, KSnapId, KIapId );
+ if ( !iProfileHandler->iProfileAlrController->iAllowMigrationCalled )
+ {
+ User::Leave( KErrNoMemory );
+ }
+ EUNIT_ASSERT(
+ iProfileHandler->iProfileAlrController->iAllowMigrationCalled )
+ iProfileHandler->iProfileAlrController->iAllowMigrationCalled = EFalse;
+ EUNIT_ASSERT(
+ !iProfileHandler->iProfileAlrController->iDisallowMigrationCalled )
+ EUNIT_ASSERT_EQUALS(
+ KIapId, iProfileHandler->iProfileAlrController->iLastUsedIap )
+ iProfileHandler->iProfileAlrController->iLastUsedIap = 0;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngSipProfileHandler::UT_CMusEngSipProfileHandler_NullTestsL()
+ {
+ // Dummies
+ CSIPTransactionBase transactionBase;
+ CSIPServerTransaction serverTransaction;
+ CSIPDialog dialog;
+ CSIPClientTransaction clientTransaction;
+ CSIPDialogAssocBase dialogAssocBase;
+ CSIPRegistrationBinding registrationBinding;
+ CSIPRefresh refresh;
+
+ // Tests
+ iProfileHandler->ProfileRegistryEventOccurred( 0,
+ MSIPProfileRegistryObserver::EProfileCreated );
+ iProfileHandler->ProfileRegistryErrorOccurred( 0, 0 );
+ iProfileHandler->IncomingRequest( 0, NULL );
+ iProfileHandler->TimedOut( serverTransaction );
+ iProfileHandler->IncomingRequest( NULL );
+ iProfileHandler->IncomingRequest( NULL, dialog );
+ iProfileHandler->IncomingResponse( clientTransaction );
+ iProfileHandler->IncomingResponse( clientTransaction, dialogAssocBase );
+ iProfileHandler->IncomingResponse( clientTransaction, NULL );
+ iProfileHandler->IncomingResponse( clientTransaction, registrationBinding );
+ iProfileHandler->ErrorOccured( 0, transactionBase );
+ iProfileHandler->ErrorOccured( 0, clientTransaction, registrationBinding );
+ iProfileHandler->ErrorOccured( 0, transactionBase, dialogAssocBase );
+ iProfileHandler->ErrorOccured( 0, refresh );
+ iProfileHandler->ErrorOccured( 0, registrationBinding );
+ iProfileHandler->ErrorOccured( 0, dialogAssocBase );
+ iProfileHandler->InviteCompleted( clientTransaction );
+ iProfileHandler->InviteCanceled( serverTransaction );
+ iProfileHandler->ConnectionStateChanged( CSIPConnection::EInit );
+ iProfileHandler->AlrError( KErrGeneral, 0, 0, 0 );
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngSipProfileHandler::UT_CMusEngSipProfileHandler_UserFromProfileLCL()
+ {
+ iProfileHandler->CreateProfileL( KSipProfileId );
+ CSIPProfile* profile = iProfileHandler->Profile();
+ delete profile->iArray;
+ profile->iArray = NULL;
+
+ // no aors -> leave with KErrArgument
+ TRAPD( err, iProfileHandler->UserFromProfileLC() )
+ EUNIT_ASSERT_EQUALS( KErrArgument, err )
+
+ // create aors -> user found
+ _LIT8( KUserUri, "sip:user@domain.com" );
+ profile->iArray = new ( ELeave ) CDesC8ArrayFlat( 1 );
+ profile->iArray->AppendL( KUserUri );
+
+ CUri8* user = iProfileHandler->UserFromProfileLC();
+
+ EUNIT_ASSERT_EQUALS( KUserUri(), user->Uri().UriDes() )
+
+ CleanupStack::PopAndDestroy( user );
+ }
+
+// TEST TABLE
+
+EUNIT_BEGIN_TEST_TABLE(
+ UT_CMusEngSipProfileHandler,
+ "UT_CMusEngSipProfileHandler",
+ "UNIT" )
+
+EUNIT_TEST(
+ "CreateSipProfileL - test ",
+ "CMusSipProfileHandler",
+ "CreateSipProfileL",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusEngSipProfileHandler_CreateSipProfileLL, Teardown)
+
+EUNIT_TEST(
+ "ProfileId - test ",
+ "CMusSipProfileHandler",
+ "ProfileId",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusEngSipProfileHandler_ProfileIdL, Teardown)
+
+EUNIT_TEST(
+ "AlrEventL - test ",
+ "CMusEngSipProfileHandler",
+ "AlrEventL",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusEngSipProfileHandler_AlrEventL, Teardown)
+
+EUNIT_TEST(
+ "Null tests for NOP functions",
+ "CMusEngSipProfileHandler",
+ "Several NOP functions",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusEngSipProfileHandler_NullTestsL, Teardown)
+
+EUNIT_TEST(
+ "UserFromProfileLC - test ",
+ "CMusEngOutSession",
+ "UserFromProfileLC",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusEngSipProfileHandler_UserFromProfileLCL, Teardown)
+
+EUNIT_END_TEST_TABLE
+
+// END OF FILE
+
+