--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuicontrol/tsrc/ut_cphoneaccessorybthandler/Src/ut_cphoneaccessorybthandler.cpp Mon Oct 04 00:16:48 2010 +0300
@@ -0,0 +1,314 @@
+/*
+* 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 "UT_CPhoneAccessoryBTHandler.h"
+#include "FeatMgr.h"
+#include <EUnitMacros.h>
+#include <EUnitDecorators.h>
+#include <btengdomainpskeys.h>
+#include <e32property.h>
+
+#include <csmcmockcontext.h>
+#include <smcdefaultvalue.h>
+#include <msmcmockspecbuilder.h>
+#include <smcobjecttotypemapper.h>
+
+#include <coemain.h>
+
+#include "cpeengineinfo.h"
+#include "cpeengineinfoimpl.h"
+#include "cphonemainresourceresolver.h"
+#include "tphonecmdparamnote.h"
+
+#include "cphonestatemachinegsm.h"
+#include "mock_cphoneviewcommandhandle.h"
+#include "cphoneaccessorybthandler.h"
+
+
+// needed for mocking CPhoneMainResourceResolver::Instance()
+class CPhoneMainResourceResolverMock : public CPhoneMainResourceResolver
+ {
+ };
+
+// - Construction -----------------------------------------------------------
+
+UT_CPhoneAccessoryBTHandler* UT_CPhoneAccessoryBTHandler::NewL()
+ {
+ UT_CPhoneAccessoryBTHandler* self = UT_CPhoneAccessoryBTHandler::NewLC();
+ CleanupStack::Pop();
+ return self;
+ }
+
+UT_CPhoneAccessoryBTHandler* UT_CPhoneAccessoryBTHandler::NewLC()
+ {
+ UT_CPhoneAccessoryBTHandler* self = new( ELeave ) UT_CPhoneAccessoryBTHandler();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+UT_CPhoneAccessoryBTHandler::~UT_CPhoneAccessoryBTHandler()
+ {
+ CSmcMockContext::Release();
+ }
+
+UT_CPhoneAccessoryBTHandler::UT_CPhoneAccessoryBTHandler()
+ {
+ }
+
+void UT_CPhoneAccessoryBTHandler::ConstructL()
+ {
+ CEUnitTestSuiteClass::ConstructL();
+ iMockContext = CSmcMockContext::InstanceL();
+ }
+
+// - Test methods -----------------------------------------------------------
+void UT_CPhoneAccessoryBTHandler::SetupL( )
+ {
+ iEntryCleared = EFalse;
+ iMockContext->InitializeL();
+
+ iCPhoneMainResourceResolverMock = new ( ELeave ) CPhoneMainResourceResolverMock();
+ SmcDefaultValue<CPhoneMainResourceResolver*>::SetL( iCPhoneMainResourceResolverMock );
+
+ SmcDefaultValue<const TPEAudioOutput&>::SetL( EPENotActive );
+
+ iViewCmdHandleMock = new CPhoneViewCommandHandleMock();
+ iStateMachineMock = CPhoneStateMachineGSM::NewL( iViewCmdHandleMock );
+
+ iCoeEnvMock = new (ELeave ) CCoeEnv();
+ SmcDefaultValue<CCoeEnv*>::SetL( iCoeEnvMock );
+
+ iEngineInfoMock = CPEEngineInfo::NewL();
+ SmcDefaultValue<MPEEngineInfo*>::SetL( iEngineInfoMock );
+
+ iCPhoneAccessoryBTHandler =
+ CPhoneAccessoryBTHandler::NewLC(
+ iViewCmdHandleMock,
+ iStateMachineMock,
+ this );
+
+ }
+
+void UT_CPhoneAccessoryBTHandler::Teardown( )
+ {
+ delete iCPhoneMainResourceResolverMock;
+ iCPhoneMainResourceResolverMock = NULL;
+
+ CleanupStack::PopAndDestroy( iCPhoneAccessoryBTHandler );
+ iCPhoneAccessoryBTHandler = NULL;
+
+ delete iViewCmdHandleMock;
+ iViewCmdHandleMock = NULL;
+
+ delete iStateMachineMock;
+ iStateMachineMock = NULL;
+
+ delete iCoeEnvMock;
+ iCoeEnvMock = NULL;
+ SmcDefaultValue<CCoeEnv*>::Reset();
+
+ delete iEngineInfoMock;
+ iEngineInfoMock = NULL;
+
+ SmcDefaultValue<const TPEAudioOutput&>::Reset();
+
+ iMockContext->Reset();
+ }
+
+void UT_CPhoneAccessoryBTHandler::HandleNumberEntryClearedL()
+ {
+ iEntryCleared = ETrue;
+ }
+
+void UT_CPhoneAccessoryBTHandler::UT_SetBTHandsfreeModeL_ONL( )
+ {
+ iMockContext->ExpectCallL( "CPEEngineInfoImpl::AudioOutput" );
+ iMockContext->ExpectCallL( "CPEEngineInfoImpl::SetAudioOutputCommand" ).
+ WithL<TPEAudioOutput, TInt>(EPEBTAudioAccessory, ETrue);
+ iCPhoneAccessoryBTHandler->SetBTHandsfreeModeL(ETrue );
+
+ EUNIT_ASSERT_EQUALS( ETrue, iCPhoneAccessoryBTHandler->SetBTHandsfreeModeL( ETrue ) );
+ EUNIT_ASSERT_EQUALS( KErrNone, iMockContext->VerifyExpectations() );
+ }
+
+void UT_CPhoneAccessoryBTHandler::UT_SetBTHandsfreeModeL_OFFL( )
+ {
+ iMockContext->ExpectCallL( "CPEEngineInfoImpl::AudioOutput" );
+ iMockContext->ExpectCallL( "CPEEngineInfoImpl::SetAudioOutputCommand" ).
+ WithL<TPEAudioOutput, TInt>(EPEHandset, EFalse);
+
+ EUNIT_ASSERT_EQUALS( ETrue, iCPhoneAccessoryBTHandler->SetBTHandsfreeModeL( EFalse ) );
+ EUNIT_ASSERT_EQUALS( KErrNone, iMockContext->VerifyExpectations() );
+ }
+
+void UT_CPhoneAccessoryBTHandler::UT_SetBTHandsfreeModeL_ON_AudioRoutedToWiredAudioAccessoryL( )
+ {
+ SmcDefaultValue<const TPEAudioOutput&>::SetL( EPEWiredAudioAccessory );
+ iMockContext->ExpectCallL( "CPEEngineInfoImpl::AudioOutput" ).TimesL(1);
+ iMockContext->ExpectCallL( "CPEEngineInfoImpl::SetAudioOutputCommand" ).TimesL(0);
+
+ EUNIT_ASSERT_EQUALS( EFalse, iCPhoneAccessoryBTHandler->SetBTHandsfreeModeL( ETrue ) );
+ EUNIT_ASSERT_EQUALS( KErrNone, iMockContext->VerifyExpectations() );
+ }
+
+void UT_CPhoneAccessoryBTHandler::UT_SetHandsfreeModeL_ONL( )
+ {
+ iMockContext->ExpectCallL( "CPEEngineInfoImpl::AudioOutput" ).
+ ReturnsL( EPENotActive );
+ iMockContext->ExpectCallL( "CPEEngineInfoImpl::SetAudioOutputCommand" ).
+ WithL<TPEAudioOutput, TInt>(EPELoudspeaker, ETrue);
+ iCPhoneAccessoryBTHandler->SetBTHandsfreeModeL( ETrue );
+
+ EUNIT_ASSERT_EQUALS( ETrue, iCPhoneAccessoryBTHandler->SetHandsfreeModeL( ETrue ) );
+ EUNIT_ASSERT_EQUALS( KErrNone, iMockContext->VerifyExpectations() );
+ }
+
+void UT_CPhoneAccessoryBTHandler::UT_SetHandsfreeModeL_OFFL( )
+ {
+ iMockContext->ExpectCallL( "CPEEngineInfoImpl::AudioOutput" ).
+ ReturnsL( EPENotActive );
+ iMockContext->ExpectCallL( "CPEEngineInfoImpl::SetAudioOutputCommand" ).
+ WithL<TPEAudioOutput, TInt>(EPEHandset, EFalse);
+
+ EUNIT_ASSERT_EQUALS( ETrue, iCPhoneAccessoryBTHandler->SetHandsfreeModeL( EFalse ) );
+ EUNIT_ASSERT_EQUALS( KErrNone, iMockContext->VerifyExpectations() );
+ }
+
+void UT_CPhoneAccessoryBTHandler::UT_SetHandsfreeModeL_ON_AudioRoutedToWiredAudioAccessoryL( )
+ {
+ SmcDefaultValue<const TPEAudioOutput&>::SetL( EPEWiredAudioAccessory );
+ iMockContext->ExpectCallL( "CPEEngineInfoImpl::AudioOutput" ).TimesL(1);
+ iMockContext->ExpectCallL( "CPEEngineInfoImpl::SetAudioOutputCommand" ).TimesL(0);
+
+ EUNIT_ASSERT_EQUALS( EFalse, iCPhoneAccessoryBTHandler->SetHandsfreeModeL( ETrue ) );
+ EUNIT_ASSERT_EQUALS( KErrNone, iMockContext->VerifyExpectations() );
+ }
+
+void UT_CPhoneAccessoryBTHandler::UT_ShowBTAddressLL( )
+ {
+ // dummy test.
+ iMockContext->ExpectCallL( "CPhoneViewCommandHandleMock::ExecuteCommandL" ).
+ WithL( EPhoneViewClearNumberEntryContent );
+
+ TPhoneCmdParamNote noteParam;
+ noteParam.SetType( EPhoneNoteCustom );
+ iMockContext->ExpectCallL( "CPhoneViewCommandHandleMock::ExecuteCommandL" ).
+ WithL<TPhoneViewCommandId, TPhoneCommandParam&> ( EPhoneViewShowNote, noteParam );
+
+ iCPhoneAccessoryBTHandler->ShowBTAddressL();
+ EUNIT_ASSERT_EQUALS( KErrNone, iMockContext->VerifyExpectations() );
+ }
+
+void UT_CPhoneAccessoryBTHandler::UT_ShowBTLoopbackL( )
+ {
+ // dummy test.
+ iMockContext->ExpectCallL( "CPhoneViewCommandHandleMock::ExecuteCommandL" ).
+ WithL( EPhoneViewClearNumberEntryContent );
+
+ TPhoneCmdParamNote noteParam;
+ noteParam.SetType( EPhoneNoteCustom );
+ iMockContext->ExpectCallL( "CPhoneViewCommandHandleMock::ExecuteCommandL" ).
+ WithL<TPhoneViewCommandId, TPhoneCommandParam&> ( EPhoneViewShowNote, noteParam );
+
+ iCPhoneAccessoryBTHandler->ShowBTLoopbackL();
+ EUNIT_ASSERT_EQUALS( KErrNone, iMockContext->VerifyExpectations() );
+ }
+
+void UT_CPhoneAccessoryBTHandler::UT_ShowBTActivatedL( )
+ {
+ // dummy test.
+ TPhoneCmdParamNote noteParam;
+ noteParam.SetType( EPhoneNoteConfirmation );
+ iMockContext->ExpectCallL( "CPhoneViewCommandHandleMock::ExecuteCommandL" ).
+ WithL<TPhoneViewCommandId, TPhoneCommandParam&> ( EPhoneViewShowNote, noteParam );
+
+ iCPhoneAccessoryBTHandler->ShowBTActivatedL();
+ EUNIT_ASSERT_EQUALS( KErrNone, iMockContext->VerifyExpectations() );
+ }
+
+// - EUnit test table -------------------------------------------------------
+
+EUNIT_BEGIN_TEST_TABLE(
+ UT_CPhoneAccessoryBTHandler,
+ "Add test suite description here.",
+ "UNIT" )
+
+EUNIT_TEST(
+ "SetBTHandsfreeModeL_ONL - test1",
+ "CPhoneAccessoryBTHandler",
+ "SetBTHandsfreeModeL_ONL - test1",
+ "FUNCTIONALITY",
+ SetupL, UT_SetBTHandsfreeModeL_ONL, Teardown)
+
+EUNIT_TEST(
+ "SetBTHandsfreeModeL_OFFL - test2",
+ "CPhoneAccessoryBTHandler",
+ "SetBTHandsfreeModeL_OFFL - test2",
+ "FUNCTIONALITY",
+ SetupL, UT_SetBTHandsfreeModeL_OFFL, Teardown)
+
+EUNIT_TEST(
+ "SetBTHandsfreeModeL_ON_AudioRoutedToWiredAudioAccessoryL - test3",
+ "CPhoneAccessoryBTHandler",
+ "SetBTHandsfreeModeL_ON_AudioRoutedToWiredAudioAccessoryL - test3",
+ "FUNCTIONALITY",
+ SetupL, UT_SetBTHandsfreeModeL_ON_AudioRoutedToWiredAudioAccessoryL, Teardown)
+
+EUNIT_TEST(
+ "SetHandsfreeModeL_ONL - test4",
+ "CPhoneAccessoryBTHandler",
+ "SetHandsfreeModeL_ONL - test4",
+ "FUNCTIONALITY",
+ SetupL, UT_SetHandsfreeModeL_ONL, Teardown)
+
+EUNIT_TEST(
+ "SetHandsfreeModeL_OFFL - test5",
+ "CPhoneAccessoryBTHandler",
+ "SetHandsfreeModeL_OFFL - test5",
+ "FUNCTIONALITY",
+ SetupL, UT_SetHandsfreeModeL_OFFL, Teardown)
+
+EUNIT_TEST(
+ "SetHandsfreeModeL_ON_AudioRoutedToWiredAudioAccessoryL - test6",
+ "CPhoneAccessoryBTHandler",
+ "SetHandsfreeModeL_ON_AudioRoutedToWiredAudioAccessoryL - test6",
+ "FUNCTIONALITY",
+ SetupL, UT_SetHandsfreeModeL_ON_AudioRoutedToWiredAudioAccessoryL, Teardown)
+
+EUNIT_TEST(
+ "ShowBTAddressLL - test7",
+ "CPhoneAccessoryBTHandler",
+ "ShowBTAddressLL - test7",
+ "FUNCTIONALITY",
+ SetupL, UT_ShowBTAddressLL, Teardown)
+
+EUNIT_TEST(
+ "ShowBTLoopbackL - test8",
+ "CPhoneAccessoryBTHandler",
+ "ShowBTLoopbackL - test8",
+ "FUNCTIONALITY",
+ SetupL, UT_ShowBTLoopbackL, Teardown)
+
+EUNIT_TEST(
+ "ShowBTActivatedL - test9",
+ "CPhoneAccessoryBTHandler",
+ "ShowBTActivatedL - test9",
+ "FUNCTIONALITY",
+ SetupL, UT_ShowBTActivatedL, Teardown)
+
+EUNIT_END_TEST_TABLE