diff -r 000000000000 -r f0cf47e981f9 mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaNetworkModeStatus.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaNetworkModeStatus.cpp Thu Dec 17 08:44:37 2009 +0200 @@ -0,0 +1,221 @@ +/* +* 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 "UT_CMusAvaNetworkModeStatus.h" +#include "musavatelephonystatusobserverimp.h" +#include "musavaavailability.h" +#include "muslogger.h" +#include "musavacapabilitytesthelper.h" //remove compilation warning +#include "CSipSseTestTls.h" + +// EXTERNAL INCLUDES +#include +#include +//#include +#include +#include +#include + +// INTERNAL INCLUDES +#include "musavanetworkmodestatus.h" + +// CONSTRUCTION +UT_CMusAvaNetworkModeStatus* UT_CMusAvaNetworkModeStatus::NewL() + { + UT_CMusAvaNetworkModeStatus* self = UT_CMusAvaNetworkModeStatus::NewLC(); + CleanupStack::Pop(); + + return self; + } + +UT_CMusAvaNetworkModeStatus* UT_CMusAvaNetworkModeStatus::NewLC() + { + UT_CMusAvaNetworkModeStatus* self = new( ELeave ) UT_CMusAvaNetworkModeStatus(); + CleanupStack::PushL( self ); + self->ConstructL(); + + return self; + } + +// Destructor (virtual by CBase) +UT_CMusAvaNetworkModeStatus::~UT_CMusAvaNetworkModeStatus() + { + } + +// Default constructor +UT_CMusAvaNetworkModeStatus::UT_CMusAvaNetworkModeStatus() + { + } + +// Second phase construct +void UT_CMusAvaNetworkModeStatus::ConstructL() + { + // The ConstructL from the base class CEUnitTestSuiteClass must be called. + // It generates the test case table. + CEUnitTestSuiteClass::ConstructL(); + } + +// METHODS + +void UT_CMusAvaNetworkModeStatus::SetupL( ) + { + SIPStrings::OpenL(); + CSipSseTestTls::OpenL(); + iStorage = CSipSseTestTls::Storage(); + iObserver = CMusAvaTelephonyStatusObserverImp::NewL(); + iNetworkRegistrationStatus = CMusAvaNetworkModeStatus::NewL(); + } + +void UT_CMusAvaNetworkModeStatus::Teardown( ) + { + if ( iStorage ) + { + iStorage->Clear(); + CSipSseTestTls::Close(); + iStorage = NULL; + } + delete iObserver; + delete iNetworkRegistrationStatus; + SIPStrings::Close(); + } + +void UT_CMusAvaNetworkModeStatus::UT_CMusAvaNetworkModeStatus_NewLL( ) + { + EUNIT_ASSERT( iNetworkRegistrationStatus ); + } +void UT_CMusAvaNetworkModeStatus::UT_CMusAvaNetworkModeStatus_AddAdapterLL() + { + iNetworkRegistrationStatus->AddAdapterL( *iObserver ); + } + +void UT_CMusAvaNetworkModeStatus::UT_CMusAvaNetworkModeStatus_RemoveAdapterL() + { + iNetworkRegistrationStatus->RemoveAdapter( *iObserver ); + } + +void UT_CMusAvaNetworkModeStatus::UT_CMusAvaNetworkModeStatus_PhoneNetworkModeL() + { + iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeUnknown ); + EUNIT_ASSERT( !iNetworkRegistrationStatus->PhoneNetworkMode( ) ); + iStorage->Clear(); + iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma ); + EUNIT_ASSERT( iNetworkRegistrationStatus->PhoneNetworkMode() ); + } + +void UT_CMusAvaNetworkModeStatus::UT_CMusAvaNetworkModeStatus_PhoneNetworkModeStatusL() + { + + TRAPD( error, iNetworkRegistrationStatus->AddAdapterL( *this ) ); + EUNIT_ASSERT( error == KErrNoMemory || error == KErrNone ); + if ( error == KErrNoMemory ) + { + User::Leave( error ); + } + + EUNIT_DISABLE_ALLOC_DECORATOR; + // no error => status updated + iNetworkRegistrationStatus->iPhone.DoNotifyModeChange( + RMobilePhone::ENetworkModeGsm, KErrNone ); + CActiveScheduler::Start(); + EUNIT_ASSERT_EQUALS( iNetworkStatus, RMobilePhone::ENetworkModeGsm ); + + // error => status not updated + iNetworkRegistrationStatus->iPhone.DoNotifyModeChange( + RMobilePhone::ENetworkModeCdma95, KErrGeneral ); + + iPeriodic = CPeriodic::NewL( EPriorityLow ); + iPeriodic->Start( 1000, 1000, TCallBack( UT_CMusAvaNetworkModeStatus::Notify, this ) ); + CActiveScheduler::Start(); + delete iPeriodic; + EUNIT_ENABLE_ALLOC_DECORATOR; + + EUNIT_ASSERT_EQUALS( iNetworkStatus, RMobilePhone::ENetworkModeGsm ); + + iNetworkRegistrationStatus->RemoveAdapter( *this ); + } + +void UT_CMusAvaNetworkModeStatus::PhoneNetworkModeStatus( + RMobilePhone::TMobilePhoneNetworkMode aStatus ) + { + iNetworkStatus = aStatus; + CActiveScheduler::Stop(); + } + +void UT_CMusAvaNetworkModeStatus::NetworkRegistrationStatus( + RMobilePhone::TMobilePhoneRegistrationStatus /*aRegStatus*/ ) + { + + } + +TInt UT_CMusAvaNetworkModeStatus::Notify( TAny* aPtr ) + { + ( ( UT_CMusAvaNetworkModeStatus* ) aPtr )->iPeriodic->Cancel(); + CActiveScheduler::Stop(); + return KErrNone; + } + + + +// TEST TABLE + +EUNIT_BEGIN_TEST_TABLE( + UT_CMusAvaNetworkModeStatus, + "CMusAvaNetworkModeStatus", + "UNIT" ) + +EUNIT_TEST( + "NewL - test ", + "CMusAvaNetworkModeStatus", + "NewL", + "FUNCTIONALITY", + SetupL, UT_CMusAvaNetworkModeStatus_NewLL, Teardown) + +EUNIT_TEST( + "AddAdapterL - test ", + "CMusAvaNetworkModeStatus", + "AddAdapterL", + "FUNCTIONALITY", + SetupL, UT_CMusAvaNetworkModeStatus_AddAdapterLL, Teardown) + + +EUNIT_TEST( + "RemoveAdapter - test ", + "CMusAvaNetworkModeStatus", + "RemoveAdapter", + "FUNCTIONALITY", + SetupL, UT_CMusAvaNetworkModeStatus_RemoveAdapterL, Teardown) + +EUNIT_TEST( + "PhoneNetworkMode - test ", + "CMusAvaNetworkModeStatus", + "PhoneNetworkMode", + "FUNCTIONALITY", + SetupL, UT_CMusAvaNetworkModeStatus_PhoneNetworkModeL, Teardown) + +EUNIT_TEST( + "PhoneNetworkModeStatus - test ", + "CMusAvaNetworkModeStatus", + "PhoneNetworkModeStatus", + "FUNCTIONALITY", + SetupL, UT_CMusAvaNetworkModeStatus_PhoneNetworkModeStatusL, Teardown) + + +EUNIT_END_TEST_TABLE + +// END OF FILE