diff -r 6b1d113cdff3 -r 6638e7f4bd8f telephonyserverplugins/common_tsy/test/component/src/cctsyphonestorefu.cpp --- a/telephonyserverplugins/common_tsy/test/component/src/cctsyphonestorefu.cpp Mon May 03 13:37:20 2010 +0300 +++ b/telephonyserverplugins/common_tsy/test/component/src/cctsyphonestorefu.cpp Thu May 06 15:10:38 2010 +0100 @@ -1,401 +1,401 @@ -// 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 PhoneStore in the Common TSY. -// -// - -/** - @file -*/ - -#include "cctsyphonestorefu.h" -#include -#include -#include -#include -#include -#include "tmockltsydata.h" -#include - -CTestSuite* CCTsyPhoneStoreFU::CreateSuiteL(const TDesC& aName) - { - SUB_SUITE; - - ADD_TEST_STEP_ISO_CPP(CCTsyPhoneStoreFU, TestGetPhoneStoreInfo0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyPhoneStoreFU, TestGetPhoneStoreInfo0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyPhoneStoreFU, TestGetPhoneStoreInfo0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyPhoneStoreFU, TestGetPhoneStoreInfo0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyPhoneStoreFU, TestGetPhoneStoreInfo0005L); - - END_SUITE; - } - - -// -// Actual test cases -// -void CCTsyPhoneStoreFU::TestUnsupportedPhoneBookL(const TDesC& aUnsupportedPhbk) - { - // result storage - RMobilePhoneStore::TMobilePhoneStoreInfoV1 info; - RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg infoPckg(info); - - TRequestStatus status; - iPhone.GetPhoneStoreInfo(status, infoPckg, aUnsupportedPhbk); - User::WaitForRequest(status); - ASSERT_EQUALS(KErrNotSupported, status.Int()) - AssertMockLtsyStatusL(); - } - - -/** -@SYMTestCaseID BA-CTSY-PSTR-MGPSI-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMobilePhone::GetPhoneStoreInfo -@SYMTestPriority High -@SYMTestActions Invokes RMobilePhone::GetPhoneStoreInfo -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyPhoneStoreFU::TestGetPhoneStoreInfo0001L() - { - OpenEtelServerL(); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - // Test A for this API consists of two tests - - // CASE 1 - client supplies an unsupported phonebook. - // No need for Expect / Complete, as never reaches LTSY - // try ALL unsupported phonebooks to improve code coverage - - TestUnsupportedPhoneBookL(KETelMeAdnPhoneBook); - TestUnsupportedPhoneBookL(KETelMeDialledPhoneBook); - TestUnsupportedPhoneBookL(KETelMeMissedPhoneBook); - TestUnsupportedPhoneBookL(KETelMeReceivedPhoneBook); - TestUnsupportedPhoneBookL(KETelCombinedAdnPhoneBook); - TestUnsupportedPhoneBookL(KETelCombinedSmsStore); - TestUnsupportedPhoneBookL(KETelMeSmsStore); - - // CASE 2 - client supplies a supported phonebook but - // LTSY completes with an error immediately - - // prepare "ExpectL" data - RMobilePhone::TMobileName fdnPbkName(KETelIccFdnPhoneBook); - TPckg expectData(fdnPbkName); - - // prepare "CompleteL" data - RMobilePhoneStore::TMobilePhoneStoreInfoV1 storeInfo; - storeInfo.iType = RMobilePhoneStore::EPhoneBookStore; - storeInfo.iTotalEntries = 50; - storeInfo.iUsedEntries = 20; - storeInfo.iName = fdnPbkName; - - RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg completeData(storeInfo); - - // result storage - RMobilePhoneStore::TMobilePhoneStoreInfoV1 info; - RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg infoPckg(info); - - TRequestStatus status; - - iMockLTSY.ExpectL(EMobilePhoneGetPhoneStoreInfo, expectData, KErrNotSupported); - iPhone.GetPhoneStoreInfo(status, infoPckg, fdnPbkName); - User::WaitForRequest(status); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNotSupported, status.Int()) - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(EMobilePhoneGetPhoneStoreInfo, expectData); - iMockLTSY.CompleteL(EMobilePhoneGetPhoneStoreInfo,KErrGeneral, completeData); - iPhone.GetPhoneStoreInfo(status,infoPckg,fdnPbkName); - User::WaitForRequest(status); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrGeneral, status.Int()) - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMobilePhone::GetPhoneStoreInfo when result is not cached. - //------------------------------------------------------------------------- - - // CASE 1: completion request of RMobilePhone::GetPhoneStoreInfo taking 3 arguments - iMockLTSY.ExpectL(EMobilePhoneGetPhoneStoreInfo,expectData); - iMockLTSY.CompleteL(EMobilePhoneGetPhoneStoreInfo,KErrNone, completeData); - iPhone.GetPhoneStoreInfo(status,infoPckg,fdnPbkName); - User::WaitForRequest(status); - - ASSERT_EQUALS(KErrNone, status.Int()) - ASSERT_EQUALS(storeInfo.iTotalEntries, info.iTotalEntries) - ASSERT_EQUALS(storeInfo.iUsedEntries, info.iUsedEntries) - ASSERT_EQUALS(storeInfo.iType, info.iType) - ASSERT_TRUE(0 == storeInfo.iName.Compare(info.iName)) - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMobilePhone::GetPhoneStoreInfo - // from LTSY. - //------------------------------------------------------------------------- - TRequestStatus mockLtsyStatus; - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(EMobilePhoneGetPhoneStoreInfo,KErrNone, completeData); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone,mockLtsyStatus.Int()) - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMobilePhone::GetPhoneStoreInfo when result is not cached. - //------------------------------------------------------------------------- - - // CASE 2: completion request of RMobilePhone::GetPhoneStoreInfo taking 4 arguments - iPhone.GetPhoneStoreInfo(status, infoPckg, KETelIccAdnPhoneBook,KEtelGsmPhoneBookType); - User::WaitForRequest(status); - - // Overloaded RMobilePhone::GetPhoneStoreInfo(TRequestStatus &aStatus, - // TDes8 &aInfo, const TDesC &aStoreName, const TDesC &aMode) method is not - // supported by CTSY. - ASSERT_EQUALS(KErrNotSupported, status.Int()) - - CleanupStack::PopAndDestroy(this); - } - -/** -@SYMTestCaseID BA-CTSY-PSTR-MGPSI-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMobilePhone::GetPhoneStoreInfo -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMobilePhone::GetPhoneStoreInfo -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyPhoneStoreFU::TestGetPhoneStoreInfo0002L() - { - OpenEtelServerL(); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMobilePhone::TMobileName adnPbkName(KETelIccAdnPhoneBook); - TPckg expectData(adnPbkName); - - RMobilePhoneStore::TMobilePhoneStoreInfoV1 storeInfo; - storeInfo.iType = RMobilePhoneStore::EPhoneBookStore; - storeInfo.iTotalEntries = 50; - storeInfo.iUsedEntries = 20; - storeInfo.iName = adnPbkName; - - RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg completeData(storeInfo); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.ExpectL(EMobilePhoneGetPhoneStoreInfo,expectData); - iMockLTSY.CompleteL(EMobilePhoneGetPhoneStoreInfo, KErrNone, completeData, 10); - - TRequestStatus status; - - RMobilePhoneStore::TMobilePhoneStoreInfoV1 info; - RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg infoPckg(info); - - iPhone.GetPhoneStoreInfo(status,infoPckg,adnPbkName); - iPhone.CancelAsyncRequest(EMobilePhoneGetPhoneStoreInfo); - - User::WaitForRequest(status); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrCancel,status.Int()) - ASSERT_EQUALS(KErrNone,mockLtsyStatus.Int()) - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(this); // this - } - - -/** -@SYMTestCaseID BA-CTSY-PSTR-MGPSI-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMobilePhone::GetPhoneStoreInfo with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMobilePhone::GetPhoneStoreInfo with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyPhoneStoreFU::TestGetPhoneStoreInfo0003L() - { - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMobilePhone::TMobileName adnPbkName(KETelIccAdnPhoneBook); - - TRequestStatus status; - - // Try to pass aInfo twice smaller than RMobilePhoneStore::TMobilePhoneStoreInfoV1 - TBuf8 badParam; - - iPhone.GetPhoneStoreInfo(status,badParam,adnPbkName); - User::WaitForRequest(status); - ASSERT_EQUALS(KErrArgument,status.Int()) - - CleanupStack::PopAndDestroy(this); // this - } - -/** -@SYMTestCaseID BA-CTSY-PSTR-MGPSI-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobilePhone::GetPhoneStoreInfo -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMobilePhone::GetPhoneStoreInfo -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyPhoneStoreFU::TestGetPhoneStoreInfo0004L() - { - 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); - - // prepare "ExpectL" data 1 - RMobilePhone::TMobileName pbkName1(KETelIccAdnPhoneBook); - TPckg expectData1(pbkName1); - - // prepare "ExpectL" data 2 - RMobilePhone::TMobileName pbkName2(KETelIccFdnPhoneBook); - TPckg expectData2(pbkName2); - - // prepare "CompleteL" data 1 - RMobilePhoneStore::TMobilePhoneStoreInfoV1 store1; - store1.iType = RMobilePhoneStore::EPhoneBookStore; - store1.iTotalEntries = 50; - store1.iUsedEntries = 20; - store1.iCaps = RMobilePhoneStore::KCapsDeleteAll; - store1.iName = pbkName1; - - RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg completeData1(store1); - - // prepare "CompleteL" data 2 - RMobilePhoneStore::TMobilePhoneStoreInfoV1 store2; - store2.iType = RMobilePhoneStore::EPhoneStoreTypeUnknown; - store2.iTotalEntries = 20; - store2.iUsedEntries = 10; - store2.iCaps = RMobilePhoneStore::KCapsWholeStore; - store2.iName = pbkName2; - - RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg completeData2(store2); - - // create two EMobilePhoneGetPhoneStoreInfo events - iMockLTSY.ExpectL(EMobilePhoneGetPhoneStoreInfo,expectData1); - iMockLTSY.CompleteL(EMobilePhoneGetPhoneStoreInfo,KErrNone, completeData1); - iMockLTSY.ExpectL(EMobilePhoneGetPhoneStoreInfo,expectData2); - iMockLTSY.CompleteL(EMobilePhoneGetPhoneStoreInfo,KErrNone, completeData2); - - // issue two simulteneous requests - - RMobilePhoneStore::TMobilePhoneStoreInfoV1 storeInfo1; - TPckg storeInfoPckg1(storeInfo1); - - RMobilePhoneStore::TMobilePhoneStoreInfoV1 storeInfo2; - TPckg storeInfoPckg2(storeInfo2); - - TRequestStatus status1; - TRequestStatus status2; - - iPhone.GetPhoneStoreInfo(status1,storeInfoPckg1,pbkName1); - phone2.GetPhoneStoreInfo(status2,storeInfoPckg2,pbkName2); - - User::WaitForRequest(status1); - User::WaitForRequest(status2); - - ASSERT_EQUALS(KErrNone,status1.Int()) - ASSERT_EQUALS(store1.iType,storeInfo1.iType) - ASSERT_EQUALS(store1.iTotalEntries,storeInfo1.iTotalEntries) - ASSERT_EQUALS(store1.iUsedEntries,storeInfo1.iUsedEntries) - ASSERT_EQUALS(store1.iCaps,storeInfo1.iCaps) - ASSERT_TRUE(0 == store1.iName.Compare(storeInfo1.iName)) - - ASSERT_EQUALS(KErrNone,status2.Int()) - ASSERT_EQUALS(store2.iType,storeInfo2.iType) - ASSERT_EQUALS(store2.iTotalEntries,storeInfo2.iTotalEntries) - ASSERT_EQUALS(store2.iUsedEntries,storeInfo2.iUsedEntries) - ASSERT_EQUALS(store2.iCaps,storeInfo2.iCaps) - ASSERT_TRUE(0 == store2.iName.Compare(storeInfo2.iName)) - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3,this);//phone2, telServer2, this - - } - -/** -@SYMTestCaseID BA-CTSY-PSTR-MGPSI-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMobilePhone::GetPhoneStoreInfo with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMobilePhone::GetPhoneStoreInfo and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyPhoneStoreFU::TestGetPhoneStoreInfo0005L() - { - // ************************************************************************************************* - // * Note: script timeout should be set to a value greater than KMmPhoneGetPhoneStoreInfoTimeOut !!! - // ************************************************************************************************* - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - //------------------------------------------------------------------------- - // Test A: Test timeout of RMobilePhone::GetPhoneStoreInfo - //------------------------------------------------------------------------- - - RMobilePhone::TMobileName adnPbkName(KETelIccAdnPhoneBook); - TPckg expectData(adnPbkName); - - RMobilePhoneStore::TMobilePhoneStoreInfoV1 info; - RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg infoPckg(info); - - TRequestStatus status; - - // Call the Etel API without doing the CompleteL - iMockLTSY.ExpectL(EMobilePhoneGetPhoneStoreInfo,expectData); - iPhone.GetPhoneStoreInfo(status,infoPckg,adnPbkName); - User::WaitForRequest(status); - - // Check status is KErrTimedOut - ASSERT_EQUALS(KErrTimedOut, status.Int()) - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(this); // this - } - - - +// 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 PhoneStore in the Common TSY. +// +// + +/** + @file +*/ + +#include "cctsyphonestorefu.h" +#include +#include +#include +#include +#include +#include "tmockltsydata.h" +#include + +CTestSuite* CCTsyPhoneStoreFU::CreateSuiteL(const TDesC& aName) + { + SUB_SUITE; + + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneStoreFU, TestGetPhoneStoreInfo0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneStoreFU, TestGetPhoneStoreInfo0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneStoreFU, TestGetPhoneStoreInfo0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneStoreFU, TestGetPhoneStoreInfo0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneStoreFU, TestGetPhoneStoreInfo0005L); + + END_SUITE; + } + + +// +// Actual test cases +// +void CCTsyPhoneStoreFU::TestUnsupportedPhoneBookL(const TDesC& aUnsupportedPhbk) + { + // result storage + RMobilePhoneStore::TMobilePhoneStoreInfoV1 info; + RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg infoPckg(info); + + TRequestStatus status; + iPhone.GetPhoneStoreInfo(status, infoPckg, aUnsupportedPhbk); + User::WaitForRequest(status); + ASSERT_EQUALS(KErrNotSupported, status.Int()) + AssertMockLtsyStatusL(); + } + + +/** +@SYMTestCaseID BA-CTSY-PSTR-MGPSI-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMobilePhone::GetPhoneStoreInfo +@SYMTestPriority High +@SYMTestActions Invokes RMobilePhone::GetPhoneStoreInfo +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyPhoneStoreFU::TestGetPhoneStoreInfo0001L() + { + OpenEtelServerL(); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + // Test A for this API consists of two tests + + // CASE 1 - client supplies an unsupported phonebook. + // No need for Expect / Complete, as never reaches LTSY + // try ALL unsupported phonebooks to improve code coverage + + TestUnsupportedPhoneBookL(KETelMeAdnPhoneBook); + TestUnsupportedPhoneBookL(KETelMeDialledPhoneBook); + TestUnsupportedPhoneBookL(KETelMeMissedPhoneBook); + TestUnsupportedPhoneBookL(KETelMeReceivedPhoneBook); + TestUnsupportedPhoneBookL(KETelCombinedAdnPhoneBook); + TestUnsupportedPhoneBookL(KETelCombinedSmsStore); + TestUnsupportedPhoneBookL(KETelMeSmsStore); + + // CASE 2 - client supplies a supported phonebook but + // LTSY completes with an error immediately + + // prepare "ExpectL" data + RMobilePhone::TMobileName fdnPbkName(KETelIccFdnPhoneBook); + TPckg expectData(fdnPbkName); + + // prepare "CompleteL" data + RMobilePhoneStore::TMobilePhoneStoreInfoV1 storeInfo; + storeInfo.iType = RMobilePhoneStore::EPhoneBookStore; + storeInfo.iTotalEntries = 50; + storeInfo.iUsedEntries = 20; + storeInfo.iName = fdnPbkName; + + RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg completeData(storeInfo); + + // result storage + RMobilePhoneStore::TMobilePhoneStoreInfoV1 info; + RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg infoPckg(info); + + TRequestStatus status; + + iMockLTSY.ExpectL(EMobilePhoneGetPhoneStoreInfo, expectData, KErrNotSupported); + iPhone.GetPhoneStoreInfo(status, infoPckg, fdnPbkName); + User::WaitForRequest(status); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNotSupported, status.Int()) + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(EMobilePhoneGetPhoneStoreInfo, expectData); + iMockLTSY.CompleteL(EMobilePhoneGetPhoneStoreInfo,KErrGeneral, completeData); + iPhone.GetPhoneStoreInfo(status,infoPckg,fdnPbkName); + User::WaitForRequest(status); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrGeneral, status.Int()) + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMobilePhone::GetPhoneStoreInfo when result is not cached. + //------------------------------------------------------------------------- + + // CASE 1: completion request of RMobilePhone::GetPhoneStoreInfo taking 3 arguments + iMockLTSY.ExpectL(EMobilePhoneGetPhoneStoreInfo,expectData); + iMockLTSY.CompleteL(EMobilePhoneGetPhoneStoreInfo,KErrNone, completeData); + iPhone.GetPhoneStoreInfo(status,infoPckg,fdnPbkName); + User::WaitForRequest(status); + + ASSERT_EQUALS(KErrNone, status.Int()) + ASSERT_EQUALS(storeInfo.iTotalEntries, info.iTotalEntries) + ASSERT_EQUALS(storeInfo.iUsedEntries, info.iUsedEntries) + ASSERT_EQUALS(storeInfo.iType, info.iType) + ASSERT_TRUE(0 == storeInfo.iName.Compare(info.iName)) + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMobilePhone::GetPhoneStoreInfo + // from LTSY. + //------------------------------------------------------------------------- + TRequestStatus mockLtsyStatus; + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(EMobilePhoneGetPhoneStoreInfo,KErrNone, completeData); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone,mockLtsyStatus.Int()) + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMobilePhone::GetPhoneStoreInfo when result is not cached. + //------------------------------------------------------------------------- + + // CASE 2: completion request of RMobilePhone::GetPhoneStoreInfo taking 4 arguments + iPhone.GetPhoneStoreInfo(status, infoPckg, KETelIccAdnPhoneBook,KEtelGsmPhoneBookType); + User::WaitForRequest(status); + + // Overloaded RMobilePhone::GetPhoneStoreInfo(TRequestStatus &aStatus, + // TDes8 &aInfo, const TDesC &aStoreName, const TDesC &aMode) method is not + // supported by CTSY. + ASSERT_EQUALS(KErrNotSupported, status.Int()) + + CleanupStack::PopAndDestroy(this); + } + +/** +@SYMTestCaseID BA-CTSY-PSTR-MGPSI-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMobilePhone::GetPhoneStoreInfo +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMobilePhone::GetPhoneStoreInfo +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyPhoneStoreFU::TestGetPhoneStoreInfo0002L() + { + OpenEtelServerL(); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMobilePhone::TMobileName adnPbkName(KETelIccAdnPhoneBook); + TPckg expectData(adnPbkName); + + RMobilePhoneStore::TMobilePhoneStoreInfoV1 storeInfo; + storeInfo.iType = RMobilePhoneStore::EPhoneBookStore; + storeInfo.iTotalEntries = 50; + storeInfo.iUsedEntries = 20; + storeInfo.iName = adnPbkName; + + RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg completeData(storeInfo); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.ExpectL(EMobilePhoneGetPhoneStoreInfo,expectData); + iMockLTSY.CompleteL(EMobilePhoneGetPhoneStoreInfo, KErrNone, completeData, 10); + + TRequestStatus status; + + RMobilePhoneStore::TMobilePhoneStoreInfoV1 info; + RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg infoPckg(info); + + iPhone.GetPhoneStoreInfo(status,infoPckg,adnPbkName); + iPhone.CancelAsyncRequest(EMobilePhoneGetPhoneStoreInfo); + + User::WaitForRequest(status); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrCancel,status.Int()) + ASSERT_EQUALS(KErrNone,mockLtsyStatus.Int()) + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(this); // this + } + + +/** +@SYMTestCaseID BA-CTSY-PSTR-MGPSI-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMobilePhone::GetPhoneStoreInfo with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMobilePhone::GetPhoneStoreInfo with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyPhoneStoreFU::TestGetPhoneStoreInfo0003L() + { + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMobilePhone::TMobileName adnPbkName(KETelIccAdnPhoneBook); + + TRequestStatus status; + + // Try to pass aInfo twice smaller than RMobilePhoneStore::TMobilePhoneStoreInfoV1 + TBuf8 badParam; + + iPhone.GetPhoneStoreInfo(status,badParam,adnPbkName); + User::WaitForRequest(status); + ASSERT_EQUALS(KErrArgument,status.Int()) + + CleanupStack::PopAndDestroy(this); // this + } + +/** +@SYMTestCaseID BA-CTSY-PSTR-MGPSI-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobilePhone::GetPhoneStoreInfo +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMobilePhone::GetPhoneStoreInfo +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyPhoneStoreFU::TestGetPhoneStoreInfo0004L() + { + 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); + + // prepare "ExpectL" data 1 + RMobilePhone::TMobileName pbkName1(KETelIccAdnPhoneBook); + TPckg expectData1(pbkName1); + + // prepare "ExpectL" data 2 + RMobilePhone::TMobileName pbkName2(KETelIccFdnPhoneBook); + TPckg expectData2(pbkName2); + + // prepare "CompleteL" data 1 + RMobilePhoneStore::TMobilePhoneStoreInfoV1 store1; + store1.iType = RMobilePhoneStore::EPhoneBookStore; + store1.iTotalEntries = 50; + store1.iUsedEntries = 20; + store1.iCaps = RMobilePhoneStore::KCapsDeleteAll; + store1.iName = pbkName1; + + RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg completeData1(store1); + + // prepare "CompleteL" data 2 + RMobilePhoneStore::TMobilePhoneStoreInfoV1 store2; + store2.iType = RMobilePhoneStore::EPhoneStoreTypeUnknown; + store2.iTotalEntries = 20; + store2.iUsedEntries = 10; + store2.iCaps = RMobilePhoneStore::KCapsWholeStore; + store2.iName = pbkName2; + + RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg completeData2(store2); + + // create two EMobilePhoneGetPhoneStoreInfo events + iMockLTSY.ExpectL(EMobilePhoneGetPhoneStoreInfo,expectData1); + iMockLTSY.CompleteL(EMobilePhoneGetPhoneStoreInfo,KErrNone, completeData1); + iMockLTSY.ExpectL(EMobilePhoneGetPhoneStoreInfo,expectData2); + iMockLTSY.CompleteL(EMobilePhoneGetPhoneStoreInfo,KErrNone, completeData2); + + // issue two simulteneous requests + + RMobilePhoneStore::TMobilePhoneStoreInfoV1 storeInfo1; + TPckg storeInfoPckg1(storeInfo1); + + RMobilePhoneStore::TMobilePhoneStoreInfoV1 storeInfo2; + TPckg storeInfoPckg2(storeInfo2); + + TRequestStatus status1; + TRequestStatus status2; + + iPhone.GetPhoneStoreInfo(status1,storeInfoPckg1,pbkName1); + phone2.GetPhoneStoreInfo(status2,storeInfoPckg2,pbkName2); + + User::WaitForRequest(status1); + User::WaitForRequest(status2); + + ASSERT_EQUALS(KErrNone,status1.Int()) + ASSERT_EQUALS(store1.iType,storeInfo1.iType) + ASSERT_EQUALS(store1.iTotalEntries,storeInfo1.iTotalEntries) + ASSERT_EQUALS(store1.iUsedEntries,storeInfo1.iUsedEntries) + ASSERT_EQUALS(store1.iCaps,storeInfo1.iCaps) + ASSERT_TRUE(0 == store1.iName.Compare(storeInfo1.iName)) + + ASSERT_EQUALS(KErrNone,status2.Int()) + ASSERT_EQUALS(store2.iType,storeInfo2.iType) + ASSERT_EQUALS(store2.iTotalEntries,storeInfo2.iTotalEntries) + ASSERT_EQUALS(store2.iUsedEntries,storeInfo2.iUsedEntries) + ASSERT_EQUALS(store2.iCaps,storeInfo2.iCaps) + ASSERT_TRUE(0 == store2.iName.Compare(storeInfo2.iName)) + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3,this);//phone2, telServer2, this + + } + +/** +@SYMTestCaseID BA-CTSY-PSTR-MGPSI-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMobilePhone::GetPhoneStoreInfo with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMobilePhone::GetPhoneStoreInfo and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyPhoneStoreFU::TestGetPhoneStoreInfo0005L() + { + // ************************************************************************************************* + // * Note: script timeout should be set to a value greater than KMmPhoneGetPhoneStoreInfoTimeOut !!! + // ************************************************************************************************* + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + //------------------------------------------------------------------------- + // Test A: Test timeout of RMobilePhone::GetPhoneStoreInfo + //------------------------------------------------------------------------- + + RMobilePhone::TMobileName adnPbkName(KETelIccAdnPhoneBook); + TPckg expectData(adnPbkName); + + RMobilePhoneStore::TMobilePhoneStoreInfoV1 info; + RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg infoPckg(info); + + TRequestStatus status; + + // Call the Etel API without doing the CompleteL + iMockLTSY.ExpectL(EMobilePhoneGetPhoneStoreInfo,expectData); + iPhone.GetPhoneStoreInfo(status,infoPckg,adnPbkName); + User::WaitForRequest(status); + + // Check status is KErrTimedOut + ASSERT_EQUALS(KErrTimedOut, status.Int()) + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(this); // this + } + + +