diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/common_tsy/test/component/src/cctsyphonecapabilityfu.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyserverplugins/common_tsy/test/component/src/cctsyphonecapabilityfu.cpp Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,470 @@ +// Copyright (c) 2007-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: +// The TEFUnit test suite for PhoneCapability in the Common TSY. +// +// + +/** + @file +*/ + +#include "cctsyphonecapabilityfu.h" +#include +#include +#include +#include +#include +#include "tmockltsydata.h" +#include "MmTsy_conf.h" + +CTestSuite* CCTsyPhoneCapabilityFU::CreateSuiteL(const TDesC& aName) + { + SUB_SUITE; + + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneCapabilityFU, TestNotifyCapsChange0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneCapabilityFU, TestNotifyCapsChange0001aL); + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneCapabilityFU, TestNotifyCapsChange0001bL); + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneCapabilityFU, TestNotifyCapsChange0001cL); + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneCapabilityFU, TestNotifyCapsChange0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneCapabilityFU, TestNotifyCapsChange0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneCapabilityFU, TestGetMultimodeCaps0001L); + + END_SUITE; + } + + +// +// Actual test cases +// + + +/** +@SYMTestCaseID BA-CTSY-PCAP-PCC-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RPhone::NotifyCapsChange +@SYMTestPriority High +@SYMTestActions Invokes RPhone::NotifyCapsChange +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyPhoneCapabilityFU::TestNotifyCapsChange0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + // invoke caps change, invoke completion of not requested NotifyCapsChange + RLine line; + TInt err = line.Open(iPhone, KMmTsyVoice1LineName); + ASSERT_EQUALS(KErrNone, err) + line.Close(); + + RLine line2; + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RPhone::NotifyCapsChange. + //------------------------------------------------------------------------- + + TRequestStatus status; + RPhone::TCaps caps; + iPhone.NotifyCapsChange(status, caps); + + // invoke caps change (open data line) + err = line.Open(iPhone, KMmTsyDataLineName); + ASSERT_EQUALS(KErrNone, err); + + // check results + User::WaitForRequest(status); + ASSERT_EQUALS(KErrNone, status.Int()); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(static_cast( + RPhone::KCapsData | + RPhone::KCapsEventModemDetection | + RPhone::KCapsStealCommPort), + caps.iFlags); + + iPhone.NotifyCapsChange(status, caps); + + // invoke caps change (open auxilliary voice line) + err = line2.Open(iPhone, KMmTsyVoice2LineName); + ASSERT_EQUALS(KErrNone, err) + + + // check results + User::WaitForRequest(status); + ASSERT_EQUALS(KErrNone, status.Int()); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(static_cast( + RPhone::KCapsData | + RPhone::KCapsEventModemDetection | + RPhone::KCapsStealCommPort | + RPhone::KCapsVoice) , + caps.iFlags); + + iPhone.NotifyCapsChange(status, caps); + + // invoke caps change + line.Close(); + + // check results + User::WaitForRequest(status); + ASSERT_EQUALS(KErrNone, status.Int()); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(static_cast(RPhone::KCapsVoice), caps.iFlags); + + iPhone.NotifyCapsChange(status, caps); + + line2.Close(); + + // check results + User::WaitForRequest(status); + ASSERT_EQUALS(KErrNone, status.Int()); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(static_cast(0), caps.iFlags); + + CleanupStack::PopAndDestroy(this); + + } + + +/** +@SYMTestCaseID BA-CTSY-PCAP-PCC-0001a +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RPhone::NotifyCapsChange for voice calls +@SYMTestPriority High +@SYMTestActions Invokes RPhone::NotifyCapsChange for voice calls +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyPhoneCapabilityFU::TestNotifyCapsChange0001aL() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RLine line; + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RPhone::NotifyCapsChange. + //------------------------------------------------------------------------- + + TRequestStatus status; + RPhone::TCaps caps; + iPhone.NotifyCapsChange(status, caps); + + // invoke caps change + TInt err = line.Open(iPhone, KMmTsyVoice1LineName); + ASSERT_EQUALS(KErrNone, err) + + // check results + User::WaitForRequest(status); + ASSERT_EQUALS(KErrNone, status.Int()); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(static_cast(RPhone::KCapsVoice), caps.iFlags); + + iPhone.NotifyCapsChange(status, caps); + + // invoke caps change + line.Close(); + + // check results + User::WaitForRequest(status); + ASSERT_EQUALS(KErrNone, status.Int()); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(static_cast(0), caps.iFlags); + + iPhone.NotifyCapsChange(status, caps); + + // invoke caps change + // now we open auxilliary voice line + err = line.Open(iPhone, KMmTsyVoice2LineName); + ASSERT_EQUALS(KErrNone, err) + + // check results + User::WaitForRequest(status); + ASSERT_EQUALS(KErrNone, status.Int()); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(static_cast(RPhone::KCapsVoice), caps.iFlags); + + iPhone.NotifyCapsChange(status, caps); + + // invoke caps change + line.Close(); + + // check results + User::WaitForRequest(status); + ASSERT_EQUALS(KErrNone, status.Int()); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(static_cast(0), caps.iFlags); + + CleanupStack::PopAndDestroy(this); + + } + + +/** +@SYMTestCaseID BA-CTSY-PCAP-PCC-0001b +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RPhone::NotifyCapsChange for data calls +@SYMTestPriority High +@SYMTestActions Invokes RPhone::NotifyCapsChange for data calls +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyPhoneCapabilityFU::TestNotifyCapsChange0001bL() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RLine line; + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RPhone::NotifyCapsChange. + //------------------------------------------------------------------------- + + TRequestStatus status; + RPhone::TCaps caps; + iPhone.NotifyCapsChange(status, caps); + + // invoke caps change + TInt err = line.Open(iPhone, KMmTsyDataLineName); + ASSERT_EQUALS(KErrNone, err); + + // check results + User::WaitForRequest(status); + ASSERT_EQUALS(KErrNone, status.Int()); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(static_cast( + RPhone::KCapsData | + RPhone::KCapsEventModemDetection | + RPhone::KCapsStealCommPort), + caps.iFlags); + + iPhone.NotifyCapsChange(status, caps); + + // invoke caps change + line.Close(); + + // check results + User::WaitForRequest(status); + ASSERT_EQUALS(KErrNone, status.Int()); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(static_cast(0), caps.iFlags); + + CleanupStack::PopAndDestroy(this); + + } + + +/** +@SYMTestCaseID BA-CTSY-PCAP-PCC-0001c +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RPhone::NotifyCapsChange for fax calls +@SYMTestPriority High +@SYMTestActions Invokes RPhone::NotifyCapsChange for fax calls +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyPhoneCapabilityFU::TestNotifyCapsChange0001cL() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RLine line; + RLine line2; + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RPhone::NotifyCapsChange. + //------------------------------------------------------------------------- + + TRequestStatus status; + RPhone::TCaps caps; + iPhone.NotifyCapsChange(status, caps); + + // open fax line + TInt err = line.Open(iPhone, KMmTsyFaxLineName); + ASSERT_EQUALS(KErrNone, err); + // open voice line + err = line2.Open(iPhone, KMmTsyVoice1LineName); + ASSERT_EQUALS(KErrNone, err); + + // check results + User::WaitForRequest(status); + ASSERT_EQUALS(KErrNone, status.Int()); + AssertMockLtsyStatusL(); + // fax line availability does not have sense for phone capabilities in CTSY + // so request completes after voice line is opened with RPhone::KCapsVoice + ASSERT_EQUALS(static_cast(RPhone::KCapsVoice), caps.iFlags); + + iPhone.NotifyCapsChange(status, caps); + + // close fax line + line.Close(); + // close voice line + line2.Close(); + + // check results + User::WaitForRequest(status); + ASSERT_EQUALS(KErrNone, status.Int()); + AssertMockLtsyStatusL(); + // fax line availability does not have sense for phone capabilities in CTSY + // so request completes after closing voice line + ASSERT_EQUALS(static_cast(0), caps.iFlags); + + CleanupStack::PopAndDestroy(this); + + } + + +/** +@SYMTestCaseID BA-CTSY-PCAP-PCC-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RPhone::NotifyCapsChange +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RPhone::NotifyCapsChange +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyPhoneCapabilityFU::TestNotifyCapsChange0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + //------------------------------------------------------------------------- + // Test cancelling of RPhone::NotifyCapsChange + //------------------------------------------------------------------------- + + TRequestStatus status; + RPhone::TCaps caps; + iPhone.NotifyCapsChange(status, caps); + + iPhone.NotifyCapsChangeCancel(); + + User::WaitForRequest(status); + ASSERT_EQUALS(KErrCancel, status.Int()); + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(this); + + } + + +/** +@SYMTestCaseID BA-CTSY-PCAP-PCC-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPhone::NotifyCapsChange +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RPhone::NotifyCapsChange +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyPhoneCapabilityFU::TestNotifyCapsChange0004L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + // Open second client + RTelServer telServer2; + TInt ret = telServer2.Connect(); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(telServer2); + + RMobilePhone phone2; + ret = phone2.Open(telServer2,KMmTsyPhoneName); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(phone2); + + // open voice line + RLine line; + TInt err = line.Open(iPhone, KMmTsyVoice1LineName); + ASSERT_EQUALS(KErrNone, err) + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RPhone::NotifyCapsChange + //------------------------------------------------------------------------- + + // request notifys + TRequestStatus status; + RPhone::TCaps caps; + iPhone.NotifyCapsChange(status, caps); + + TRequestStatus status2; + RPhone::TCaps caps2; + phone2.NotifyCapsChange(status2, caps2); + + // invoke caps change + line.Close(); + + // check results + User::WaitForRequest(status); + ASSERT_EQUALS(KErrNone, status.Int()); + TUint expCaps(0); + ASSERT_EQUALS(expCaps, caps.iFlags); + + User::WaitForRequest(status2); + ASSERT_EQUALS(KErrNone, status2.Int()); + ASSERT_EQUALS(expCaps, caps2.iFlags); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); // phone2, telServer2, this + + } + + +/** +@SYMTestCaseID BA-CTSY-PCAP-MGMC-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMobilePhone::GetMultimodeCaps +@SYMTestPriority High +@SYMTestActions Invokes RMobilePhone::GetMultimodeCaps +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyPhoneCapabilityFU::TestGetMultimodeCaps0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + //------------------------------------------------------------------------- + // TEST: Successful completion request of RMobilePhone::GetMultimodeCaps. + //------------------------------------------------------------------------- + + TUint32 caps; + TInt err = iPhone.GetMultimodeCaps(caps); + ASSERT_EQUALS(KErrNone, err); + // CTSY allways returns KMultimodeCaps + TUint32 expCaps(KMultimodeCaps); + ASSERT_EQUALS(expCaps, caps); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(this); + + }