diff -r c84cf270c54f -r 92ab7f8d0eab phoneapp/phoneringingtoneplayer/tsrc/ut_cphoneringingtonecontroller/src/ut_cphoneringingtonecontroller.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneapp/phoneringingtoneplayer/tsrc/ut_cphoneringingtonecontroller/src/ut_cphoneringingtonecontroller.cpp Fri Mar 19 09:28:42 2010 +0200 @@ -0,0 +1,303 @@ +/* +* 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: +* +*/ + +#include +#include +#include +#include +#include +#include +#include +#include "ut_cphoneringingtonecontroller.h" +#include "cphoneringingtonecontroller.h" +#include "tphonecmdparamringtone.h" +#include "cphoneringingtone.h" +#include "cphonecenrepproxy.h" + +_LIT(KNokiatune, "Z:\\Data\\Sounds\\Digital\\Nokia tune.aac"); + + + +// custom comparison method for matching expected and items +TBool operator==( const CPhoneRingingTone& aData1, + const CPhoneRingingTone& aData2 ) + { + return ( aData1.FileName() == aData2.FileName()&& + aData1.Volume() == aData2.Volume() && + aData1.RingingType() == aData2.RingingType()&& + aData1.TtsToneToBePlayed() == aData2.TtsToneToBePlayed()); + } + +// - Construction ----------------------------------------------------------- + +ut_cphoneringingtonecontroller* ut_cphoneringingtonecontroller::NewL() + { + ut_cphoneringingtonecontroller* self = ut_cphoneringingtonecontroller::NewLC(); + CleanupStack::Pop(); + return self; + } + +ut_cphoneringingtonecontroller* ut_cphoneringingtonecontroller::NewLC() + { + ut_cphoneringingtonecontroller* self = new( ELeave ) ut_cphoneringingtonecontroller(); + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } + +ut_cphoneringingtonecontroller::~ut_cphoneringingtonecontroller() + { + CSmcMockContext::Release(); + } + +ut_cphoneringingtonecontroller::ut_cphoneringingtonecontroller() + { + } + +void ut_cphoneringingtonecontroller::ConstructL() + { + CEUnitTestSuiteClass::ConstructL(); + iMockContext = CSmcMockContext::InstanceL(); + } + +// - Test methods ----------------------------------------------------------- + + + +void ut_cphoneringingtonecontroller::SetupL( ) + { + iMockContext->InitializeL(); + // need to be created here otherwise memory leak can be detected. + iPhoneCenRepProxy = CPhoneCenRepProxy::Instance(); + iRingingtoneplayer = CPhoneRingingToneController::NewL(); + } + + +void ut_cphoneringingtonecontroller::Teardown( ) + { + delete CPhoneCenRepProxy::Instance(); + UserSvr::DllFreeTls(KUidCenRepProxySingleton); + + delete iRingingtoneplayer; + iRingingtoneplayer = NULL; + iMockContext->Reset(); + } + + +void ut_cphoneringingtonecontroller::T_PlayRingingtoneRinging( ) + { + // Expected data + TBuf<50> ringingtone(KNokiatune); + _LIT8( KMethod, "CPhoneRingingtonePlayer::PlayProfileBasedTone" ); + CPhoneRingingTone* aAudioVideoRingingTone = CPhoneRingingTone::NewL(ringingtone); + aAudioVideoRingingTone->SetRingingType(EProfileRingingTypeRinging); + aAudioVideoRingingTone->SetTtsToneToBePlayed(EFalse); + aAudioVideoRingingTone->SetVolume(5); + iMockContext->ExpectCallL( KMethod() ).WithL(aAudioVideoRingingTone); + + TPhoneCmdParamRingTone ringToneParam; + ringToneParam.SetVolume(5); + ringToneParam.SetRingingType(EProfileRingingTypeRinging); + // Set the profile ring tone + ringToneParam.SetRingTone( ringingtone ); + ringToneParam.SetType( EPhoneRingToneProfile ); + + iRingingtoneplayer->PlayRingToneL( &ringToneParam ); + + EUNIT_ASSERT_EQUALS( KErrNone, iMockContext->VerifyExpectations() ); + delete aAudioVideoRingingTone; + + } + +void ut_cphoneringingtonecontroller::T_PlayRingingtoneSilence( ) + { + _LIT8( KMethod, "CPhoneRingingtonePlayer::PlaySilentTone" ); + + iMockContext->ExpectCallL( KMethod() ); + + TPhoneCmdParamRingTone ringToneParam; + ringToneParam.SetVolume(5); + ringToneParam.SetRingingType(EProfileRingingTypeSilent); + // Set the profile ring tone + TBuf<50> ringingtone(KNokiatune); + ringToneParam.SetRingTone( ringingtone ); + ringToneParam.SetType( EPhoneRingToneProfile ); + + iRingingtoneplayer->PlayRingToneL( &ringToneParam ); + + EUNIT_ASSERT_EQUALS( KErrNone, iMockContext->VerifyExpectations() ); + } + +void ut_cphoneringingtonecontroller::T_PlayRingingtoneBeepOnce( ) + { + _LIT8( KMethod, "CPhoneRingingtonePlayer::PlayBeepOnce" ); + iMockContext->ExpectCallL( KMethod() ).WithL(5); + + TPhoneCmdParamRingTone ringToneParam; + ringToneParam.SetVolume(5); + ringToneParam.SetRingingType(EProfileRingingTypeBeepOnce); + // Set the profile ring tone + TBuf<50> ringingtone(KNokiatune); + ringToneParam.SetRingTone( ringingtone ); + ringToneParam.SetType( EPhoneRingToneProfile ); + + iRingingtoneplayer->PlayRingToneL( &ringToneParam ); + + EUNIT_ASSERT_EQUALS( KErrNone, iMockContext->VerifyExpectations() ); + } + +void ut_cphoneringingtonecontroller::T_PlayRingingtoneAscending( ) + { + TBuf<50> ringingtone(KNokiatune); + _LIT8( KMethod, "CPhoneRingingtonePlayer::PlayProfileBasedTone" ); + CPhoneRingingTone* aAudioVideoRingingTone = CPhoneRingingTone::NewL(ringingtone); + aAudioVideoRingingTone->SetRingingType(EProfileRingingTypeAscending); + aAudioVideoRingingTone->SetTtsToneToBePlayed(EFalse); + aAudioVideoRingingTone->SetVolume(5); + iMockContext->ExpectCallL( KMethod() ).WithL(aAudioVideoRingingTone); + + TPhoneCmdParamRingTone ringToneParam; + ringToneParam.SetVolume(5); + ringToneParam.SetRingingType(EProfileRingingTypeAscending); + // Set the profile ring tone + ringToneParam.SetRingTone( ringingtone ); + ringToneParam.SetType( EPhoneRingToneProfile ); + + iRingingtoneplayer->PlayRingToneL( &ringToneParam ); + + EUNIT_ASSERT_EQUALS( KErrNone, iMockContext->VerifyExpectations() ); + delete aAudioVideoRingingTone; + } + +void ut_cphoneringingtonecontroller::T_PlayRingingtoneRingingOnce( ) + { + TBuf<50> ringingtone(KNokiatune); + _LIT8( KMethod, "CPhoneRingingtonePlayer::PlayProfileBasedTone" ); + CPhoneRingingTone* aAudioVideoRingingTone = CPhoneRingingTone::NewL(ringingtone); + aAudioVideoRingingTone->SetRingingType(EProfileRingingTypeRingingOnce); + aAudioVideoRingingTone->SetTtsToneToBePlayed(EFalse); + aAudioVideoRingingTone->SetVolume(5); + iMockContext->ExpectCallL( KMethod() ).WithL(aAudioVideoRingingTone); + + TPhoneCmdParamRingTone ringToneParam; + ringToneParam.SetVolume(5); + ringToneParam.SetRingingType(EProfileRingingTypeRingingOnce); + // Set the profile ring tone + ringToneParam.SetRingTone( ringingtone ); + ringToneParam.SetType( EPhoneRingToneProfile ); + + iRingingtoneplayer->PlayRingToneL( &ringToneParam ); + + EUNIT_ASSERT_EQUALS( KErrNone, iMockContext->VerifyExpectations() ); + delete aAudioVideoRingingTone; + } + +void ut_cphoneringingtonecontroller::T_PlayRingingtoneTTS() +{ + // Expected data + _LIT(KTextToSay, "Mr. Brownstone"); + TBuf<30> texttosay (KTextToSay); + TBuf<50> ringingtone(KNokiatune); + CPhoneRingingTone* aAudioVideoRingingTone = CPhoneRingingTone::NewL(ringingtone); + aAudioVideoRingingTone->SetRingingType(EProfileRingingTypeRinging); + aAudioVideoRingingTone->SetTtsToneToBePlayed(ETrue); + aAudioVideoRingingTone->SetVolume(5); + _LIT8( KMethod, "CPhoneTTSPlayer::NewL" ); + iMockContext->ExpectCallL( KMethod() ); + _LIT8( KMethod2, "CPhoneTTSPlayer::PlayTtsTone" ); + iMockContext->ExpectCallL( KMethod2() ).WithL(KTextToSay(), aAudioVideoRingingTone); + _LIT8( KMethod3, "CPhoneRingingtonePlayer::PlayProfileBasedTone" ); + iMockContext->ExpectCallL( KMethod3() ).WithL(aAudioVideoRingingTone); + + TPhoneCmdParamRingTone ringToneParam; + ringToneParam.SetVolume(5); + ringToneParam.SetRingingType(EProfileRingingTypeRinging); + ringToneParam.SetTextToSay(texttosay); + // Set the profile ring tone + ringToneParam.SetRingTone( ringingtone); + ringToneParam.SetType( EPhoneRingToneProfile ); + + iRingingtoneplayer->PlayRingToneL( &ringToneParam ); + + EUNIT_ASSERT_EQUALS( KErrNone, iMockContext->VerifyExpectations() ); + delete aAudioVideoRingingTone; +} + +void ut_cphoneringingtonecontroller::T_StopRingingtone() +{ + _LIT8( KMethod, "CPhoneRingingtonePlayer::StopPlaying" ); + iMockContext->ExpectCallL( KMethod() ); + + iRingingtoneplayer->StopPlaying(); + EUNIT_ASSERT_EQUALS( KErrNone, iMockContext->VerifyExpectations() ); +} +// - EUnit test table ------------------------------------------------------- + +EUNIT_BEGIN_TEST_TABLE( + ut_cphoneringingtonecontroller, + "Add test suite description here.", + "UNIT" ) + +EUNIT_TEST( + "T_PlayRingingtoneRinging", + "", + "", + "FUNCTIONALITY", + SetupL, T_PlayRingingtoneRinging, Teardown) + +EUNIT_TEST( + "T_PlayRingingtoneSilence", + "", + "", + "FUNCTIONALITY", + SetupL, T_PlayRingingtoneSilence, Teardown) + +EUNIT_TEST( + "T_PlayRingingtoneBeepOnce", + "", + "", + "FUNCTIONALITY", + SetupL, T_PlayRingingtoneBeepOnce, Teardown) + +EUNIT_TEST( + "T_PlayRingingtoneAscending", + "", + "", + "FUNCTIONALITY", + SetupL, T_PlayRingingtoneAscending, Teardown) + +EUNIT_TEST( + "T_PlayRingingtoneAscending", + "", + "", + "FUNCTIONALITY", + SetupL, T_PlayRingingtoneRingingOnce, Teardown) + +EUNIT_TEST( + "T_PlayRingingtoneTTS", + "", + "", + "FUNCTIONALITY", + SetupL, T_PlayRingingtoneTTS, Teardown) + +EUNIT_TEST( + "T_StopRingingtone", + "", + "", + "FUNCTIONALITY", + SetupL, T_StopRingingtone, Teardown) +EUNIT_END_TEST_TABLE