mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaRegisterAvailability.cpp
/*
* 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_CMusAvaRegisterAvailability.h"
#include "musavaavailabilityobserver.h"
#include "musavaavailabilityobserverimp.h"
#include "musavaobserver.h"
#include "musavaobserverimp.h"
#include "musavadefaultimp.h"
#include "musavaobserverimp.h"
#include "musavasettingsimp.h"
#include "mussettingskeys.h"
#include "mussettings.h"
#include "CSipSseTestTls.h"
#include "musavasharedobject.h"
#include "sipprofile.h"
#include "musavasip.h"
#include "sipprofileregistry.h"
#include "sipprofileregistryobserver.h"
#include "musavasipprofileregistryobserver.h"
#include "musavacapabilitytesthelper.h" //remove compilation warning
// EXTERNAL INCLUDES
#include <digia/eunit/eunitmacros.h>
#include <e32base.h>
//#include <telephonyinternalpskeys.h>
#include <sipprofileregistry.h>
#include <sipprofileregistryobserver.h>
#include <sipstrings.h>
#include <sipstrconsts.h>
#include <digia/eunit/eunitdecorators.h>
// INTERNAL INCLUDES
#include "musavaregisteravailability.h"
//const TInt KNumberMatchingDigitsRequired( 7 );
//_LIT(KNumberZero,"");
//_LIT(KNumber,"05012345678");
//_LIT(KPlusNumber,"+3585012345678");
// CONSTRUCTION
UT_CMusAvaRegisterAvailability* UT_CMusAvaRegisterAvailability::NewL()
{
UT_CMusAvaRegisterAvailability* self = UT_CMusAvaRegisterAvailability::NewLC();
CleanupStack::Pop();
return self;
}
UT_CMusAvaRegisterAvailability* UT_CMusAvaRegisterAvailability::NewLC()
{
UT_CMusAvaRegisterAvailability* self = new( ELeave ) UT_CMusAvaRegisterAvailability();
CleanupStack::PushL( self );
self->ConstructL();
return self;
}
// Destructor (virtual by CBase)
UT_CMusAvaRegisterAvailability::~UT_CMusAvaRegisterAvailability()
{
}
// Default constructor
UT_CMusAvaRegisterAvailability::UT_CMusAvaRegisterAvailability()
{
}
// Second phase construct
void UT_CMusAvaRegisterAvailability::ConstructL()
{
// The ConstructL from the base class CEUnitTestSuiteClass must be called.
// It generates the test case table.
CEUnitTestSuiteClass::ConstructL();
}
// METHODS
void UT_CMusAvaRegisterAvailability::SetupL( )
{
SIPStrings::OpenL();
CSipSseTestTls::OpenL();
iProfileId = MultimediaSharingSettings::SipProfileSettingL();
iAvailabilityObserver = CMusAvaAvailabilityObserverImp::NewL();
iConcreteSettings = CMusAvaSettingsImp::NewL();
iRegisterAvailability = CMusAvaRegisterAvailability::NewL( *iAvailabilityObserver,
*iConcreteSettings );
iSharedObj = CMusAvaSharedObject::GetSingletonL();
}
void UT_CMusAvaRegisterAvailability::Teardown( )
{
delete iAvailabilityObserver;
iAvailabilityObserver = NULL;
delete iConcreteSettings;
iConcreteSettings = NULL;
delete iRegisterAvailability;
iRegisterAvailability = NULL;
CSipSseTestTls::Close();
CMusAvaSharedObject::DeleteSingleton();
SIPStrings::Close();
}
void UT_CMusAvaRegisterAvailability::UT_CMusAvaRegisterAvailability_NewLL()
{
EUNIT_ASSERT( iRegisterAvailability );
}
void UT_CMusAvaRegisterAvailability::UT_CMusAvaRegisterAvailability_DoExecuteLL()
{
MultimediaSharingSettings::SetSipProfileSettingL( 5 );
TRAPD( error, iRegisterAvailability->DoExecuteL() );
if ( error == KErrNoMemory ) User::Leave( error );
EUNIT_ASSERT ( error == KErrNone );
TInt count = 0;
EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
if ( count == 0 )
{
EUNIT_ASSERT( iAvailabilityObserver->iStatus ==
MMusAvaObserver::EMusAvaStatusAvailable );
}
else
{
EUNIT_ASSERT( iAvailabilityObserver->iStatus ==
MMusAvaObserver::EMusAvaStatusNoSipProfile);
}
EUNIT_ASSERT( iAvailabilityObserver->iName == MMusAvaObserver::EMusAvaNameRegistration );
}
void UT_CMusAvaRegisterAvailability::UT_CMusAvaRegisterAvailability_NameL()
{
EUNIT_ASSERT( iRegisterAvailability->Name() == MMusAvaObserver::EMusAvaNameRegistration );
}
void UT_CMusAvaRegisterAvailability::UT_CMusAvaRegisterAvailability_StatusL()
{
//No profile created
EUNIT_ASSERT( iRegisterAvailability->State() == MMusAvaObserver::EMusAvaStatusNotExecuted );
MultimediaSharingSettings::SetSipProfileSettingL( 5 );
iRegisterAvailability->DoExecuteL();
TInt count = 0;
EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
if ( count == 0 )
{
EUNIT_ASSERT( iAvailabilityObserver->iStatus ==
MMusAvaObserver::EMusAvaStatusAvailable );
}
else
{
EUNIT_ASSERT( iAvailabilityObserver->iStatus ==
MMusAvaObserver::EMusAvaStatusNoSipProfile);
}
}
void UT_CMusAvaRegisterAvailability::UT_CMusAvaRegisterAvailability_Stop()
{
//Profile is not created
iRegisterAvailability->Stop();
EUNIT_ASSERT( iRegisterAvailability->State() == MMusAvaObserver::EMusAvaStatusNotExecuted );
// Test with profile
// Create Profile
TRAPD ( error, iSharedObj->MusAvaSip().CreateProfileL() );
if ( error == KErrNoMemory ) User::Leave( error );
EUNIT_ASSERT ( error == KErrNone );
MultimediaSharingSettings::SetSipProfileSettingL( 1 );
//Profile created
iRegisterAvailability->Stop();
CSIPProfileRegistry& registry = iSharedObj->MusAvaSip().ProfileRegistryL();
EUNIT_ASSERT( registry.iProfileDisabled == ETrue);
}
void UT_CMusAvaRegisterAvailability::UT_CMusAvaRegisterAvailability_ProfileRegistryEventOccurredL()
{
iRegisterAvailability->ProfileRegistryEventOccurred( 1, MSIPProfileRegistryObserver::EProfileCreated );
MultimediaSharingSettings::SetSipProfileSettingL( 1 );
EUNIT_ASSERT( iSharedObj->MusAvaSip().CreateProfileL() );
iRegisterAvailability->ProfileRegistryEventOccurred( 1, MSIPProfileRegistryObserver::EProfileRegistered );
TRAPD( error, iRegisterAvailability->DoExecuteL() );
if ( error == KErrNoMemory ) User::Leave( error );
EUNIT_ASSERT ( error == KErrNone );
iRegisterAvailability->ProfileRegistryEventOccurred( 1, MSIPProfileRegistryObserver::EProfileCreated );
iRegisterAvailability->ProfileRegistryEventOccurred( 1, MSIPProfileRegistryObserver::EProfileUpdated );
iRegisterAvailability->ProfileRegistryEventOccurred( 1, MSIPProfileRegistryObserver::EProfileRegistered );
EUNIT_ASSERT( iAvailabilityObserver->iStatus == MMusAvaObserver::EMusAvaStatusAvailable );
EUNIT_ASSERT( iAvailabilityObserver->iName == MMusAvaObserver::EMusAvaNameRegistration );
iRegisterAvailability->ProfileRegistryEventOccurred( 1, MSIPProfileRegistryObserver::EProfileDeregistered );
EUNIT_ASSERT( iAvailabilityObserver->iStatus == MMusAvaObserver::EMusAvaStatusNotRegistered );
EUNIT_ASSERT( iAvailabilityObserver->iName == MMusAvaObserver::EMusAvaNameRegistration );
EUNIT_ASSERT( iSharedObj->MusAvaSip().iSipConnection == NULL );
iRegisterAvailability->ProfileRegistryEventOccurred( 1, MSIPProfileRegistryObserver::EProfileRegistered );
EUNIT_ASSERT( iAvailabilityObserver->iStatus == MMusAvaObserver::EMusAvaStatusAvailable );
EUNIT_ASSERT( iAvailabilityObserver->iName == MMusAvaObserver::EMusAvaNameRegistration );
EUNIT_ASSERT( iSharedObj->MusAvaSip().iSipConnection != NULL );
iRegisterAvailability->ProfileRegistryEventOccurred( 1, MSIPProfileRegistryObserver::EProfileDestroyed );
EUNIT_ASSERT( iRegisterAvailability->State() == MMusAvaObserver::EMusAvaStatusNotRegistered );
}
void UT_CMusAvaRegisterAvailability::UT_CMusAvaRegisterAvailability_CreateSipAddressProposalLL()
{
//Profile is not created
iRegisterAvailability->Stop();
EUNIT_ASSERT( iRegisterAvailability->State() == MMusAvaObserver::EMusAvaStatusNotExecuted );
// Test with profile
// Create Profile
TRAPD( error, iSharedObj->MusAvaSip().CreateProfileL() );
if ( error == KErrNoMemory ) User::Leave( error );
EUNIT_ASSERT ( error == KErrNone );
iRegisterAvailability->CreateSipAddressProposalL();
}
void UT_CMusAvaRegisterAvailability::UT_CMusAvaRegisterAvailability_ConnectionStateChangedL()
{
iRegisterAvailability->SetState( MMusAvaObserver::EMusAvaStatusNotExecuted );
iRegisterAvailability->SetState( MMusAvaObserver::EMusAvaStatusNotExecuted );
iRegisterAvailability->ConnectionStateChanged( CSIPConnection::EInit );
EUNIT_ASSERT( iRegisterAvailability->State() == MMusAvaObserver::EMusAvaStatusNotExecuted );
iRegisterAvailability->SetState( MMusAvaObserver::EMusAvaStatusNotExecuted );
iRegisterAvailability->ConnectionStateChanged( CSIPConnection::EActive );
EUNIT_ASSERT( iRegisterAvailability->State() == MMusAvaObserver::EMusAvaStatusNotExecuted );
iRegisterAvailability->SetState( MMusAvaObserver::EMusAvaStatusNotExecuted );
iRegisterAvailability->ConnectionStateChanged( CSIPConnection::ESuspended );
EUNIT_ASSERT( iRegisterAvailability->State() == MMusAvaObserver::EMusAvaConnectionErr );
iRegisterAvailability->SetState( MMusAvaObserver::EMusAvaStatusNotExecuted );
iRegisterAvailability->ConnectionStateChanged( CSIPConnection::EInactive );
EUNIT_ASSERT( iRegisterAvailability->State() == MMusAvaObserver::EMusAvaConnectionErr );
iRegisterAvailability->SetState( MMusAvaObserver::EMusAvaStatusNotExecuted );
iRegisterAvailability->ConnectionStateChanged( CSIPConnection::EUnavailable );
EUNIT_ASSERT( iRegisterAvailability->State() == MMusAvaObserver::EMusAvaConnectionErr );
iRegisterAvailability->SetState( MMusAvaObserver::EMusAvaStatusNotExecuted );
iRegisterAvailability->ConnectionStateChanged( (CSIPConnection::TState)6 );
EUNIT_ASSERT( iRegisterAvailability->State() == MMusAvaObserver::EMusAvaStatusNotExecuted );
}
void UT_CMusAvaRegisterAvailability::UT_CMusAvaRegisterAvailability_ProfileRegistryErrorOccurredL()
{
iRegisterAvailability->iOperatorVariant = MusSettingsKeys::EOperatorSpecific;
iRegisterAvailability->ProfileRegistryErrorOccurred(5, -5 );
EUNIT_ASSERT( iRegisterAvailability->State() == MMusAvaObserver::EMusAvaStatusNotExecuted );
iRegisterAvailability->ProfileRegistryErrorOccurred(5, KErrGeneral );
EUNIT_ASSERT( iRegisterAvailability->State() == MMusAvaObserver::EMusAvaStatusNotExecuted );
iRegisterAvailability->iOperatorVariant = MusSettingsKeys::EStandard;
iRegisterAvailability->ProfileRegistryErrorOccurred(5, -5 );
EUNIT_ASSERT( iRegisterAvailability->State() == MMusAvaObserver::EMusAvaStatusNotExecuted );
iRegisterAvailability->ProfileRegistryErrorOccurred(5, KErrGeneral );
EUNIT_ASSERT( iRegisterAvailability->State() == MMusAvaObserver::EMusAvaStatusNotExecuted );
// Test Profile
TRAPD( error, iSharedObj->MusAvaSip().CreateProfileL() );
if ( error == KErrNoMemory ) User::Leave( error );
EUNIT_ASSERT ( error == KErrNone );
//Profile created
iRegisterAvailability->ProfileRegistryErrorOccurred(5, -5 );
EUNIT_ASSERT( iRegisterAvailability->State() == MMusAvaObserver::EMusAvaStatusNotExecuted );
iRegisterAvailability->iOperatorVariant = MusSettingsKeys::EOperatorSpecific;
iRegisterAvailability->ProfileRegistryErrorOccurred(5, KErrGeneral );
EUNIT_ASSERT( iRegisterAvailability->State() == MMusAvaObserver::EMusAvaStatusNotExecuted );
iRegisterAvailability->iOperatorVariant = MusSettingsKeys::EStandard;
iRegisterAvailability->ProfileRegistryErrorOccurred(5, KErrGeneral );
EUNIT_ASSERT( iRegisterAvailability->State() == MMusAvaObserver::EMusAvaStatusNotExecuted );
MultimediaSharingSettings::SetSipProfileSettingL( 1 );
iRegisterAvailability->ProfileRegistryErrorOccurred(1, -5 );
EUNIT_ASSERT( iRegisterAvailability->State() == MMusAvaObserver::EMusAvaStatusNotRegistered );
iRegisterAvailability->ProfileRegistryErrorOccurred(1, KErrGeneral );
EUNIT_ASSERT( iRegisterAvailability->State() == MMusAvaObserver::EMusAvaStatusNotRegistered );
//Operator variant. SIP profile disabled.
iRegisterAvailability->iOperatorVariant = MusSettingsKeys::EOperatorSpecific;
iRegisterAvailability->ProfileRegistryErrorOccurred(1, KErrGeneral );
EUNIT_ASSERT( iRegisterAvailability->State() == MMusAvaObserver::EMusActivationError );
}
void UT_CMusAvaRegisterAvailability::UT_CMusAvaRegisterAvailability_RegisterLL()
{
MultimediaSharingSettings::SetSipProfileSettingL( 5 );
TRAPD( error, iRegisterAvailability->RegisterL() );
if ( error == KErrNoMemory ) User::Leave( error );
EUNIT_ASSERT ( error == KErrNone );
TInt count = 0;
EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
if ( count == 0 )
{
EUNIT_ASSERT( iSharedObj->MusAvaSip().iSipConnection != NULL );
EUNIT_ASSERT( iAvailabilityObserver->iStatus ==
MMusAvaObserver::EMusAvaStatusAvailable );
}
else
{
EUNIT_ASSERT( iAvailabilityObserver->iStatus ==
MMusAvaObserver::EMusAvaStatusNoSipProfile);
}
}
void UT_CMusAvaRegisterAvailability::UT_CMusAvaRegisterAvailability_InitializeRegisterL()
{
MultimediaSharingSettings::SetSipProfileSettingL( 5 );
EUNIT_ASSERT( iRegisterAvailability->InitializeRegister() );
}
void UT_CMusAvaRegisterAvailability::UT_CMusAvaRegisterAvailability_EnableRegisterLL()
{
MultimediaSharingSettings::SetSipProfileSettingL( 1 );
iSharedObj->MusAvaSip().CreateProfileL();
iRegisterAvailability->EnableRegisterL();
EUNIT_ASSERT( iSharedObj->MusAvaSip().ProfileRegistryL().IsEnabled(
*iSharedObj->MusAvaSip().Profile() ));
}
void UT_CMusAvaRegisterAvailability::UT_CMusAvaRegisterAvailability_UpdateSIPProfileL()
{
delete iSharedObj->MusAvaSip().iSipProfileRegistry;
iSharedObj->MusAvaSip().iSipProfileRegistry = NULL;
delete iSharedObj->MusAvaSip().iSipProfile;
iSharedObj->MusAvaSip().iSipProfile = NULL;
// Profile Id found
iSharedObj->MusAvaSip().iSipProfileRegistry = CSIPProfileRegistry::NewL(
iSharedObj->MusAvaSip().Sip(),
*iSharedObj->MusAvaSip().iSipProfileRegistryObserver );
iRegisterAvailability->iSharedObj->MusAvaSip().iSipProfile = CSIPProfile::NewL( iSharedObj->MusAvaSip().iSipProfileRegistry );
iRegisterAvailability->iSharedObj->MusAvaSip().Profile()->iTUint32ValueError = KErrNone;
EUNIT_ASSERT( iRegisterAvailability->UpdateSIPProfile() );
// Profile Id found
iRegisterAvailability->iSharedObj->MusAvaSip().Profile()->iTUint32Value = 1;
EUNIT_ASSERT( iRegisterAvailability->UpdateSIPProfile() );
// Profile not Id found
iRegisterAvailability->iSharedObj->MusAvaSip().Profile()->iTUint32Value = 0;
iRegisterAvailability->iSharedObj->MusAvaSip().Profile()->iTUint32ValueError = KErrNotFound;
EUNIT_ASSERT( !iRegisterAvailability->UpdateSIPProfile() );
delete iRegisterAvailability->iSharedObj->MusAvaSip().iSipProfile;
iRegisterAvailability->iSharedObj->MusAvaSip().iSipProfile = NULL;
}
void UT_CMusAvaRegisterAvailability::UT_CMusAvaRegisterAvailability_RegistrationStatusL()
{
delete iSharedObj->MusAvaSip().iSipProfileRegistry;
iSharedObj->MusAvaSip().iSipProfileRegistry = NULL;
delete iSharedObj->MusAvaSip().iSipProfile;
iSharedObj->MusAvaSip().iSipProfile = NULL;
iSharedObj->MusAvaSip().iSipProfileRegistry = CSIPProfileRegistry::NewL(
iSharedObj->MusAvaSip().Sip(),
*iSharedObj->MusAvaSip().iSipProfileRegistryObserver );
iRegisterAvailability->iSharedObj->MusAvaSip().iSipProfile = CSIPProfile::NewL( iSharedObj->MusAvaSip().iSipProfileRegistry );
//Not registred
iRegisterAvailability->iSharedObj->MusAvaSip().Profile()->iTBoolValueError = KErrNone;
iRegisterAvailability->iSharedObj->MusAvaSip().Profile()->iTBoolValue = EFalse;
EUNIT_ASSERT( !iRegisterAvailability->RegistrationStatusL() );
//Register error
iRegisterAvailability->iSharedObj->MusAvaSip().Profile()->iTBoolValueError = KErrNotFound;
EUNIT_ASSERT( !iRegisterAvailability->RegistrationStatusL() );
// Registred
iRegisterAvailability->iSharedObj->MusAvaSip().Profile()->iTBoolValueError = KErrNone;
iRegisterAvailability->iSharedObj->MusAvaSip().Profile()->iTBoolValue = ETrue;
EUNIT_ASSERT( iRegisterAvailability->RegistrationStatusL() );
delete iRegisterAvailability->iSharedObj->MusAvaSip().iSipProfile;
iRegisterAvailability->iSharedObj->MusAvaSip().iSipProfile = NULL;
}
// TEST TABLE
EUNIT_BEGIN_TEST_TABLE(
UT_CMusAvaRegisterAvailability,
"CMusAvaRegisterAvailability",
"UNIT" )
EUNIT_TEST(
"NewL - test ",
"CMusAvaRegisterAvailability",
"NewL",
"FUNCTIONALITY",
SetupL, UT_CMusAvaRegisterAvailability_NewLL, Teardown)
EUNIT_TEST(
"DoExecuteL - test ",
"CMusAvaRegisterAvailability",
"DoExecuteL",
"FUNCTIONALITY",
SetupL, UT_CMusAvaRegisterAvailability_DoExecuteLL, Teardown)
EUNIT_TEST(
"Name - test ",
"CMusAvaRegisterAvailability",
"Name",
"FUNCTIONALITY",
SetupL, UT_CMusAvaRegisterAvailability_NameL, Teardown)
EUNIT_TEST(
"Status - test ",
"CMusAvaRegisterAvailability",
"Status",
"FUNCTIONALITY",
SetupL, UT_CMusAvaRegisterAvailability_StatusL, Teardown)
EUNIT_TEST(
"StopPattern - test ",
"CMusAvaRegisterAvailability",
"StopPattern",
"FUNCTIONALITY",
SetupL, UT_CMusAvaRegisterAvailability_Stop, Teardown)
EUNIT_TEST(
"ProfileRegistryEventOccurred - test ",
"CMusAvaRegisterAvailability",
"ProfileRegistryEventOccurred",
"FUNCTIONALITY",
SetupL, UT_CMusAvaRegisterAvailability_ProfileRegistryEventOccurredL, Teardown)
EUNIT_TEST(
"CreateSipAddressProposalL - test ",
"CMusAvaRegisterAvailability",
"CreateSipAddressProposalL",
"FUNCTIONALITY",
SetupL, UT_CMusAvaRegisterAvailability_CreateSipAddressProposalLL, Teardown)
EUNIT_TEST(
"ConnectionStateChanged - test ",
"CMusAvaRegisterAvailability",
"ConnectionStateChanged",
"FUNCTIONALITY",
SetupL, UT_CMusAvaRegisterAvailability_ConnectionStateChangedL, Teardown)
EUNIT_TEST(
"ErrorOccurred - test ",
"CMusAvaRegisterAvailability",
"ErrorOccurred",
"FUNCTIONALITY",
SetupL, UT_CMusAvaRegisterAvailability_ProfileRegistryErrorOccurredL, Teardown)
EUNIT_TEST(
"RegisterL - test ",
"CMusAvaRegisterAvailability",
"RegisterL",
"FUNCTIONALITY",
SetupL, UT_CMusAvaRegisterAvailability_RegisterLL, Teardown)
EUNIT_TEST(
"InitializeRegisterL - test ",
"CMusAvaRegisterAvailability",
"InitializeRegisterL",
"FUNCTIONALITY",
SetupL, UT_CMusAvaRegisterAvailability_InitializeRegisterL, Teardown)
EUNIT_TEST(
"EnableRegisterL - test ",
"CMusAvaRegisterAvailability",
"EnableRegisterL",
"FUNCTIONALITY",
SetupL, UT_CMusAvaRegisterAvailability_EnableRegisterLL, Teardown)
EUNIT_TEST(
"UpdateSIPProfile - test ",
"CMusAvaRegisterAvailability",
"UpdateSIPProfile",
"FUNCTIONALITY",
SetupL, UT_CMusAvaRegisterAvailability_UpdateSIPProfileL, Teardown)
EUNIT_TEST(
"RegistrationStatus - test ",
"CMusAvaRegisterAvailability",
"RegistrationStatus",
"FUNCTIONALITY",
SetupL, UT_CMusAvaRegisterAvailability_RegistrationStatusL, Teardown)
EUNIT_END_TEST_TABLE
// END OF FILE