diff -r c76a0b1755b9 -r 2be0b271d017 phoneapp/phoneuiqtviewadapter/tsrc/ut_phonecallheaderutil/unit_tests.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneapp/phoneuiqtviewadapter/tsrc/ut_phonecallheaderutil/unit_tests.cpp Mon Oct 04 00:16:48 2010 +0300 @@ -0,0 +1,313 @@ +/*! +* 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: Unit tests for PhoneUIQtButtonsController. +* +*/ + +#include +#include +#include "qtestmains60.h" +#include "phonecallheaderutil.h" +#include "pevirtualengine.h" +#include "cpeengineinfo.h" +#include "tphonecmdparamcallheaderdata.h" +#include "cphonemainresourceresolver.h" +#include "cphonecenrepproxy.h" +#include "phonerssbase.h" +#include +#include + +_LIT(KSimulatedStringLoaderString,"1234567890"); + +class CPhoneMainResourceResolverMock : public CPhoneMainResourceResolver + { + }; + +class CPhoneCenRepProxyMock : public CPhoneCenRepProxy + { +public: + CPhoneCenRepProxyMock() {}; + }; + +void simulateStringLoad(TDes& buf, TInt /*id*/, CCoeEnv* /*coeenv*/) +{ + buf.Append(KSimulatedStringLoaderString()); +} + +class TestPhoneCallHeaderUtil : public QObject, MockService +{ + Q_OBJECT +public: + TestPhoneCallHeaderUtil(); + virtual ~TestPhoneCallHeaderUtil(); + +public slots: + void initTestCase (); + void cleanupTestCase (); + void init (); + void cleanup (); + +private slots: + void testSetIncomingCallHeaderParams(); + void testSetOutgoingCallHeaderParams(); + void testUpdateCallHeaderInfo(); + void testSetCallHeaderType(); + void testSetDivertIndication(); + void testGetRemoteInfoData(); + void testSetCallHeaderTexts(); + void testLabelText(); + void testEmergencyHeaderText(); + void testAttemptingEmergencyText(); + void testCallState(); + void testLoadResource(); + +private: + CPEEngineInfo* m_engineInfo; + PhoneCallHeaderUtil* m_util; + CPhoneMainResourceResolverMock* m_resourceResolverMock; + CPhoneCenRepProxyMock* m_cenrepProxyMock; +}; + +TestPhoneCallHeaderUtil::TestPhoneCallHeaderUtil () +{ + +} + +TestPhoneCallHeaderUtil::~TestPhoneCallHeaderUtil () +{ +} + +void TestPhoneCallHeaderUtil::initTestCase () +{ + m_engineInfo = CPEEngineInfo::NewL(); + m_util = new PhoneCallHeaderUtil(*m_engineInfo); + + m_resourceResolverMock = new CPhoneMainResourceResolverMock(); + SmcDefaultValue::SetL( m_resourceResolverMock ); + + m_cenrepProxyMock = new CPhoneCenRepProxyMock(); + SmcDefaultValue::SetL( m_cenrepProxyMock ); +} + +void TestPhoneCallHeaderUtil::cleanupTestCase () +{ + delete m_util; + delete m_engineInfo; + delete m_resourceResolverMock; +} + +void TestPhoneCallHeaderUtil::init () +{ + initialize(); +} + +void TestPhoneCallHeaderUtil::cleanup () +{ + reset(); +} + +void TestPhoneCallHeaderUtil::testSetIncomingCallHeaderParams() +{ + TPhoneCmdParamCallHeaderData data; + + const int callId = 1; + const int serviceId = 100; + _LIT(KPhoneNumber,"123456"); + _LIT(KCallerImage,"image.jpg"); + + m_engineInfo->SetCallState(EPEStateRinging, callId); + m_engineInfo->SetCallType(EPECallTypeCSVoice, callId); + m_engineInfo->SetCallSecureStatus(EFalse, callId); + m_engineInfo->SetSecureSpecified(ETrue); + m_engineInfo->SetServiceId(callId, serviceId); + m_engineInfo->SetRemotePhoneNumber(KPhoneNumber(), callId); + m_engineInfo->SetRemotePhoneNumberType(EPEMobileNumber, callId); + m_engineInfo->SetCallerImage(KCallerImage(), callId); + m_engineInfo->SetIncomingCallForwarded(ETrue, callId); + + EXPECT(CPhoneMainResourceResolver,ResolveResourceID).with(EPhoneIncomingCallLabel); + m_util->SetIncomingCallHeaderParams(callId,EFalse,EFalse,&data); + QVERIFY(verify()); + + QVERIFY(data.CallState()==EPEStateRinging); + QVERIFY(data.CallType()==EPECallTypeCSVoice); + QVERIFY(data.Ciphering()==EFalse); + QVERIFY(data.CipheringIndicatorAllowed()==ETrue); + QVERIFY(data.ServiceId()==serviceId); + QVERIFY(data.RemotePhoneNumber()==KPhoneNumber); + QVERIFY(data.NumberType()==EPEMobileNumber); + QVERIFY(data.Picture()==KCallerImage); + QVERIFY(data.Diverted()==ETrue); +} + +void TestPhoneCallHeaderUtil::testSetOutgoingCallHeaderParams() +{ + TPhoneCmdParamCallHeaderData data; + + const int callId = 1; + const int serviceId = 100; + _LIT(KPhoneNumber,"123456"); + _LIT(KCallerImage,"image.jpg"); + + m_engineInfo->SetCallState(EPEStateDialing, callId); + m_engineInfo->SetCallType(EPECallTypeCSVoice, callId); + m_engineInfo->SetCallSecureStatus(EFalse, callId); + m_engineInfo->SetSecureSpecified(ETrue); + m_engineInfo->SetServiceId(callId, serviceId); + m_engineInfo->SetRemotePhoneNumber(KPhoneNumber(), callId); + m_engineInfo->SetRemotePhoneNumberType(EPEMobileNumber, callId); + m_engineInfo->SetCallerImage(KCallerImage(), callId); + + EXPECT(CPhoneMainResourceResolver,ResolveResourceID).with(EPhoneOutgoingCallLabel); + m_util->SetOutgoingCallHeaderParams(callId,&data); + QVERIFY(verify()); + + QVERIFY(data.CallState()==EPEStateDialing); + QVERIFY(data.CallType()==EPECallTypeCSVoice); + QVERIFY(data.Ciphering()==EFalse); + QVERIFY(data.CipheringIndicatorAllowed()==ETrue); + QVERIFY(data.ServiceId()==serviceId); + QVERIFY(data.RemotePhoneNumber()==KPhoneNumber); + QVERIFY(data.NumberType()==EPEMobileNumber); + QVERIFY(data.Picture()==KCallerImage); +} + +void TestPhoneCallHeaderUtil::testUpdateCallHeaderInfo() +{ + TPhoneCmdParamCallHeaderData data; + + const int callId = 1; + const int serviceId = 100; + _LIT(KPhoneNumber,"123456"); + _LIT(KCallerImage,"image.jpg"); + + m_engineInfo->SetRemotePhoneNumber(KPhoneNumber(), callId); + m_engineInfo->SetRemotePhoneNumberType(EPEMobileNumber, callId); + m_engineInfo->SetRemoteIdentity(RMobileCall::ERemoteIdentityAvailable, callId); + m_engineInfo->SetCallerImage(KCallerImage(), callId); + + EXPECT(CPhoneMainResourceResolver,ResolveResourceID).with(EPhoneIncomingCallLabel); + m_util->UpdateCallHeaderInfo(1,0,0,&data); + QVERIFY(verify()); + + QVERIFY(data.CLIText()==KPhoneNumber); + QVERIFY(data.Picture()==KCallerImage); +} + +void TestPhoneCallHeaderUtil::testSetCallHeaderType() +{ + m_util->SetCallHeaderType(EPECallTypeCSVoice); + QVERIFY(m_util->CallHeaderType()==EPECallTypeCSVoice); +} + +void TestPhoneCallHeaderUtil::testSetDivertIndication() +{ + m_util->SetDivertIndication(ETrue); +} + +void TestPhoneCallHeaderUtil::testGetRemoteInfoData() +{ + TBuf<100> buf; + const int callId = 1; + _LIT(KPhoneNumber,"123456"); + + m_engineInfo->SetRemotePhoneNumber(KPhoneNumber(), callId); + m_engineInfo->SetRemotePhoneNumberType(EPEMobileNumber, callId); + m_engineInfo->SetCallDirection(RMobileCall::EMobileTerminated, callId); + m_engineInfo->SetRemoteIdentity(RMobileCall::ERemoteIdentityAvailable, callId); + + m_util->GetRemoteInfoData(callId,buf); + QVERIFY(buf==KPhoneNumber()); +} + +void TestPhoneCallHeaderUtil::testSetCallHeaderTexts() +{ + TPhoneCmdParamCallHeaderData data; + + const int callId = 1; + const int serviceId = 100; + _LIT(KPhoneNumber,"123456"); + + m_engineInfo->SetRemotePhoneNumber(KPhoneNumber(), callId); + m_engineInfo->SetRemotePhoneNumberType(EPEMobileNumber, callId); + m_engineInfo->SetALSLine(CCCECallParameters::ECCELineTypePrimary); + + EXPECT(CPhoneMainResourceResolver,ResolveResourceID).with(EPhoneIncomingCallLabel); + m_util->SetCallHeaderTexts(1,0,0,&data); + + QVERIFY(verify()); +} + +void TestPhoneCallHeaderUtil::testLabelText() +{ + const int callId = 1; + + m_engineInfo->SetCallState(EPEStateHeld, callId); + m_engineInfo->SetCallType(EPECallTypeCSVoice, callId); + + TBuf<100> label = m_util->LabelText(1); + EXPECT(CPhoneMainResourceResolver,ResolveResourceID).with(EPhoneCallOnHold); +} + +void TestPhoneCallHeaderUtil::testEmergencyHeaderText() +{ + _LIT( KResourceText, "emergency" ); + HBufC* text = KResourceText().AllocLC(); + EXPECT(StringLoader,LoadL).returns(0); + QVERIFY(m_util->EmergencyHeaderText()==KNullDesC); + verify(); + EXPECT(StringLoader,LoadL).returns(text); + QVERIFY(m_util->EmergencyHeaderText()==text->Des()); + verify(); +} + +void TestPhoneCallHeaderUtil::testAttemptingEmergencyText() +{ + _LIT( KResourceText, "attempting" ); + HBufC* text = KResourceText().AllocLC(); + EXPECT(StringLoader,LoadL).returns(0); + QVERIFY(m_util->AttemptingEmergencyText()==KNullDesC); + verify(); + EXPECT(StringLoader,LoadL).returns(text); + QVERIFY(m_util->AttemptingEmergencyText()==text->Des()); + verify(); +} + +void TestPhoneCallHeaderUtil::testCallState() +{ + m_engineInfo->SetCallState(EPEStateDialing,1); + QVERIFY(m_util->CallState(1)==EPEStateDialing); +} + +void TestPhoneCallHeaderUtil::testLoadResource() +{ + TBuf<100> buf; + + EXPECT(CPhoneMainResourceResolver,ResolveResourceID).with(1).returns(1); + EXPECT(StringLoader,Load).willOnce(invoke(simulateStringLoad)); + m_util->LoadResource(buf,1); + QVERIFY(verify()); + QVERIFY(buf==KSimulatedStringLoaderString()); + + _LIT( KResourceText, "resource" ); + HBufC* text = KResourceText().AllocLC(); + EXPECT(CPhoneMainResourceResolver,ResolveResourceID).with(1).returns(1); + EXPECT(StringLoader,LoadL).returns(text); + HBufC* ret = m_util->LoadResource(1); + QVERIFY(ret==text); + delete text; +} + +QTEST_MAIN_S60(TestPhoneCallHeaderUtil) +#include "unit_tests.moc"