--- a/telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestbroadcastmessaging.cpp Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestbroadcastmessaging.cpp Thu May 06 15:10:38 2010 +0100
@@ -1,2264 +1,2264 @@
-// 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:
-// Test step definitions for the BroadcastMessaging functional unit.
-//
-//
-
-/**
- @internalTechnology
-*/
-
-#include "cctsyintegrationtestbroadcastmessaging.h"
-#include "listretrievalhelpers.h"
-
-
-
-CCTSYIntegrationTestBroadcastMessagingBase::CCTSYIntegrationTestBroadcastMessagingBase(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestSuiteStepBase(aEtelSessionMgr), iBroadcastMessagingTestHelper(*this), iNetworkTestHelper(*this)
-/**
- * Constructor
- */
- {
- }
-
-CCTSYIntegrationTestBroadcastMessagingBase::~CCTSYIntegrationTestBroadcastMessagingBase()
-/*
- * Destructor
- */
- {
- }
-
-
-CCTSYIntegrationTestBroadcastMessaging0001::CCTSYIntegrationTestBroadcastMessaging0001(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0001::GetTestStepName());
- }
-
-CCTSYIntegrationTestBroadcastMessaging0001::~CCTSYIntegrationTestBroadcastMessaging0001()
-/**
- * Destructor.
- */
- {
- }
-
-TBool CCTSYIntegrationTestBroadcastMessagingBase::AssertValidBroadcastMessage(const RMobileBroadcastMessaging::TMobileBroadcastAttributesV2 &aBraodcastAttributes)
-/*
- * This function checks the validity of received Broadcastmessage
- *
- * @param aBraodcastAttributes Reference to attributes of received messages.
- * @return true if the received message is not valid.
- */
- {
- TBool ret=EFalse;
-
- // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgAttributes.iFlags in set of KBroadcastDataFormat
- ASSERT_BITS_SET(aBraodcastAttributes.iFlags, RMobileBroadcastMessaging::KBroadcastDataFormat ,KNoUnwantedBits, _L("RMobileBroadcastMessaging::ReceiveMessage did not return desired Message Flags"));
-
- // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgAttributes.iFormat of EFormatGsmTpdu
- ASSERT_EQUALS(aBraodcastAttributes.iFormat, RMobileBroadcastMessaging::EFormatGsmTpdu, _L("RMobileBroadcastMessaging::ReceiveMessage did not return desired Message Format"));
-
- // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgAttributes.iDCS > 0
- ASSERT_TRUE(aBraodcastAttributes.iDCS > 0, _L("RMobileBroadcastMessaging::ReceiveMessage did not return DCS > 0"));
-
- // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgAttributes.iMessageId > 0
- ASSERT_TRUE(aBraodcastAttributes.iMessageId> 0, _L("RMobileBroadcastMessaging::ReceiveMessage did not return MessageId > 0"));
-
- // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgAttributes.iMessageType of EGsmBroadcastId
- ASSERT_EQUALS((int)aBraodcastAttributes.iMessageType , (int)RMobileBroadcastMessaging::EGsmBroadcastId, _L("RMobileBroadcastMessaging::ReceiveMessage did not return desired MessageType"));
-
- // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgAttributes.iNumberOfPages > 0
- ASSERT_TRUE(aBraodcastAttributes.iNumberOfPages > 0, _L("RMobileBroadcastMessaging::ReceiveMessage did not return NumberOfPages > 0"));
-
- if((aBraodcastAttributes.iFlags && RMobileBroadcastMessaging::KBroadcastDataFormat)
- && (aBraodcastAttributes.iFormat== RMobileBroadcastMessaging::EFormatGsmTpdu)
- && (aBraodcastAttributes.iDCS>0) && (aBraodcastAttributes.iMessageId> 0)
- && ((int)aBraodcastAttributes.iMessageType ==(int)RMobileBroadcastMessaging::EGsmBroadcastId)
- && (aBraodcastAttributes.iNumberOfPages > 0) )
- {
- ret= ETrue;
- }
-
- return ret;
- }
-
-TVerdict CCTSYIntegrationTestBroadcastMessaging0001::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-BRMSG-0001
- * @SYMFssID BA/CTSY/BRMSG-0001
- * @SYMTestCaseDesc Set the broadcast messaging simple filter.
- * @SYMTestPriority High
- * @SYMTestActions RMobileBroadcastMessaging::NotifyFilterSettingChange,RMobileBroadcastMessaging::GetFilterSetting, RMobileBroadcastMessaging::SetFilterSetting
- * @SYMTestExpectedResults Pass - Simple filter notifications complete and are set correctly.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify filter change notification completes and correct filter has been set.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
- RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging) ;
-
- // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iFilterCaps in set of KCapsSimpleFilter
- RMobileBroadcastMessaging::TMobileBroadcastCapsV1 caps;
- RMobileBroadcastMessaging::TMobileBroadcastCapsV1Pckg capPkg(caps);
- TUint32 expectedCaps = RMobileBroadcastMessaging::KCapsSimpleFilter;
-
- CHECK_EQUALS_L(broadcastMessaging.GetCaps(capPkg), KErrNone, _L("RMobileBroadcastMessaging::GetCaps returned with an error"));
- CHECK_BITS_SET_L(caps.iFilterCaps,expectedCaps ,KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Filter caps"));
-
- // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iModeCaps in set of KCapsGsmTpduFormat
- CHECK_BITS_SET_L(caps.iModeCaps, RMobileBroadcastMessaging::KCapsGsmTpduFormat, KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Mode caps"));
-
- // Registered with the network
- TInt ret = iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
- CHECK_EQUALS_L(ret, KErrNone,
- _L("RMobilePhone::NotifyNetworkRegistrationStatusChange network registration failed"));
-
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- // === Set the simple filter setting to accept none ===
-
- // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting;
- TExtEtelRequestStatus notifyFilterSettingChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyFilterSettingChange);
- CleanupStack::PushL(notifyFilterSettingChangeStatus);
- broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
-
- // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastAcceptNone
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting1 = RMobileBroadcastMessaging::EBroadcastAcceptNone;
- TExtEtelRequestStatus setFilterSettingStatus(broadcastMessaging, EMobileBroadcastMessagingSetFilterSetting);
- CleanupStack::PushL(setFilterSettingStatus);
- broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting1);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
- ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
-
- // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastAcceptNone
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
- broadcastMessaging,
- notifyFilterSettingChangeStatus,
- filterSetting,
- filterSetting1,
- KErrNone );
-
- // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastAcceptNone
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSettingObtained;
- ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
- ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastAcceptNone, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptNone"))
-
- // === Set the simple filter setting to accept all ===
-
- // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
- broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10026);
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10027);
- CHECK_EQUALS_L(1, 2, _L("This test has been made to leave intentially.The purpose of this leave is to avoid the board crashing"));
-
- // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastAcceptAll
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting2 = RMobileBroadcastMessaging::EBroadcastAcceptAll;
- broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting2);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
- ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
-
- // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastAcceptAll
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
- broadcastMessaging,
- notifyFilterSettingChangeStatus,
- filterSetting,
- filterSetting2,
- KErrNone );
-
- // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastAcceptAll
- ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
- ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastAcceptAll, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptAll"))
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Pop:
- // notifyFilterSettingChangeStatus
- // setFilterSettingStatus
- CleanupStack::PopAndDestroy(2,¬ifyFilterSettingChangeStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestBroadcastMessaging0001::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestBroadcastMessaging0001");
- }
-
-
-
-CCTSYIntegrationTestBroadcastMessaging0002::CCTSYIntegrationTestBroadcastMessaging0002(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0002::GetTestStepName());
- }
-
-CCTSYIntegrationTestBroadcastMessaging0002::~CCTSYIntegrationTestBroadcastMessaging0002()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestBroadcastMessaging0002::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-BRMSG-0002
- * @SYMFssID BA/CTSY/BRMSG-0002
- * @SYMTestCaseDesc Set the broadcast messaging ID filter
- * @SYMTestPriority High
- * @SYMTestActions CRetrieveMobilePhoneBroadcastIdList::Start, RMobileBroadcastMessaging::NotifyFilterSettingChange, CRetrieveMobilePhoneBroadcastIdList::RetrieveListL, RMobileBroadcastMessaging::GetFilterSetting, RMobileBroadcastMessaging::SetFilterSetting, CMobilePhoneBroadcastIdList::Enumerate, RMobileBroadcastMessaging::NotifyBroadcastIdListChange, RMobileBroadcastMessaging::StoreBroadcastIdListL, CMobilePhoneBroadcastIdList::AddRangeEntryL
- * @SYMTestExpectedResults Pass - Filter setting and notification returned KErrNotSuppoerted and no value can be retrieved .
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify filter change notification completes with KErrNotSupported and no filter has been set.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
- RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging) ;
-
- // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iModeCaps in set of KCapsGsmTpduFormat
- RMobileBroadcastMessaging::TMobileBroadcastCapsV1 caps;
- RMobileBroadcastMessaging::TMobileBroadcastCapsV1Pckg capPkg(caps);
- CHECK_EQUALS_L(broadcastMessaging.GetCaps(capPkg), KErrNone, _L("RMobileBroadcastMessaging::GetCaps returned with an error"));
- CHECK_BITS_SET_L(caps.iModeCaps, RMobileBroadcastMessaging::KCapsGsmTpduFormat, KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Mode caps"));
-
- // Registered with the network
- TInt ret = iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
- CHECK_EQUALS_L(ret, KErrNone,
- _L("RMobilePhone::NotifyNetworkRegistrationStatusChange network registration failed"));
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- // === Set broadcast ID filter ===
-
- // Create a CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
- CMobilePhoneBroadcastIdList* broadcastIdList= CMobilePhoneBroadcastIdList::NewL();
- CleanupStack::PushL(broadcastIdList);
-
- // Add an entry to the list with CMobilePhoneBroadcastIdList::AddRangeEntryL with aStart.iId=1 and aEnd.iId=100
- RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry;
- idEntry.iId = 1;
- RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry2;
- idEntry2.iId = 100;
- broadcastIdList->AddRangeEntryL(idEntry, idEntry2);
-
- // Post a notification RMobileBroadcastMessaging::NotifyBroadcastIdListChange
- TExtEtelRequestStatus notifyBroadcastIdListChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyIdListChange);
- CleanupStack::PushL(notifyBroadcastIdListChangeStatus);
- broadcastMessaging.NotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus);
-
- // This is deliberate action to open a session because the API in Etelmm allocates memory
- // The Session Manager should be used in all other places.
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- RMobileBroadcastMessaging broadcastMessagingStore;
- broadcastMessagingStore.Open(phone);
-
- // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with KErrNotSupported having aIdType=EGsmBroadcastId
- RMobileBroadcastMessaging::TMobileBroadcastIdType idType=RMobileBroadcastMessaging::EGsmBroadcastId;
- TExtEtelRequestStatus storeBroadcastIdList(broadcastMessaging, EMobileBroadcastMessagingStoreIdList);
- CleanupStack::PushL(storeBroadcastIdList);
- broadcastMessagingStore.StoreBroadcastIdListL(storeBroadcastIdList,broadcastIdList,idType);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(storeBroadcastIdList, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL timed out"));
- ASSERT_EQUALS(storeBroadcastIdList.Int(), KErrNotSupported, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL did not return KErrNotSupported"));
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d </font>"), 10028);
- broadcastMessagingStore.Close();
-
- // Check RMobileBroadcastMessaging::NotifyBroadcastIdListChange completes with KErrNotSupported
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus, KErrNotSupported);
-
- // === Get the broadcast ID filter ===
-
- // Use helper class for CRetrieveMobilePhoneBroadcastIdList to retrieve the broadcast ID list.
- TInt err;
- CRetrieveMobilePhoneBroadcastIdListExec* broadcastIdListExec = CRetrieveMobilePhoneBroadcastIdListHelper::NewL(broadcastMessaging,idType);
- CleanupStack::PushL(broadcastIdListExec);
-
- // Get the CMobilePhoneBroadcastIdList list using the helper class function which will call CRetrieveMobilePhoneBroadcastIdList::RetrieveListL
- CMobilePhoneBroadcastIdList* broadcastIdList2 = broadcastIdListExec ->DoGetList(err);
- ASSERT_EQUALS(err, KErrNone, _L("CRetrieveMobilePhoneBroadcastIdList::RetrieveListL is not able to get the list"))
-
- // Check CMobilePhoneBroadcastIdList::Enumerate returns 0
- ASSERT_EQUALS(broadcastIdList2->Enumerate(),0 , _L("CMobilePhoneBroadcastIdList::Enumerate did not return an 99 as expected"));
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Pop:
- // broadcastIdList
- // notifyBroadcastIdListChangeStatus
- // storeBroadcastIdList
- // broadcastIdListExec
- CleanupStack::PopAndDestroy(4, broadcastIdList);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestBroadcastMessaging0002::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestBroadcastMessaging0002");
- }
-
-
-
-CCTSYIntegrationTestBroadcastMessaging0003::CCTSYIntegrationTestBroadcastMessaging0003(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0003::GetTestStepName());
- }
-
-CCTSYIntegrationTestBroadcastMessaging0003::~CCTSYIntegrationTestBroadcastMessaging0003()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestBroadcastMessaging0003::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-BRMSG-0003
- * @SYMFssID BA/CTSY/BRMSG-0003
- * @SYMTestCaseDesc Receive cell broadcast with different filter settings.
- * @SYMTestPriority High
- * @SYMTestActions RMobileBroadcastMessaging::NotifyFilterSettingChange, RMobileBroadcastMessaging::SetLanguageFilter, RMobileBroadcastMessaging::GetFilterSetting, RMobileBroadcastMessaging::SetFilterSetting, RMobileBroadcastMessaging::GetLanguageFilter, RMobileBroadcastMessaging::ReceiveMessage
- * @SYMTestExpectedResults Pass - Broadcast messages that should not be filtered received. Messages that should be filtered not received.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/manual
- *
- * Reason for test: Verify cell broadcast message is received.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
- ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10072);
- User::Leave(KErrNone);
-
- RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging) ;
-
-
- // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iFilterCaps in set of KCapsSimpleFilter
- RMobileBroadcastMessaging::TMobileBroadcastCapsV1 caps;
- RMobileBroadcastMessaging::TMobileBroadcastCapsV1Pckg capPkg(caps);
- TUint32 expectedCaps = RMobileBroadcastMessaging::KCapsSimpleFilter;
-
- CHECK_EQUALS_L(broadcastMessaging.GetCaps(capPkg), KErrNone, _L("RMobileBroadcastMessaging::GetCaps returned with an error"));
- CHECK_BITS_SET_L(caps.iFilterCaps,expectedCaps ,KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Filter caps"));
-
- // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iModeCaps in set of KCapsGsmTpduFormat
- CHECK_BITS_SET_L(caps.iModeCaps, RMobileBroadcastMessaging::KCapsGsmTpduFormat, KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Mode caps"));
-
- // Registered with the network
- TInt ret = iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
- CHECK_EQUALS_L(ret, KErrNone,
- _L("RMobilePhone::NotifyNetworkRegistrationStatusChange network registration failed"));
-
-
-
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- // === Set the simple filter setting to accept all and receive a message ===
-
- // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting;
- TExtEtelRequestStatus notifyFilterSettingChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyFilterSettingChange);
- CleanupStack::PushL(notifyFilterSettingChangeStatus);
- broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
-
- // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastAcceptAll
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting1 = RMobileBroadcastMessaging::EBroadcastAcceptAll;
- TExtEtelRequestStatus setFilterSettingStatus(broadcastMessaging, EMobileBroadcastMessagingSetFilterSetting);
- CleanupStack::PushL(setFilterSettingStatus);
- broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting1);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
- ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
-
- // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastAcceptAll
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
- broadcastMessaging,
- notifyFilterSettingChangeStatus,
- filterSetting,
- filterSetting1,
- KErrNone );
-
- // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastAcceptAll
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSettingObtained;
- ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
- ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastAcceptAll, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptNone"))
-
- // Call RMobileBroadcastMessaging::ReceiveMessage
- RMobileBroadcastMessaging::TGsmBroadcastMessageData rxMsgData;
- RMobileBroadcastMessaging::TMobileBroadcastAttributesV2 rxMsgAttributes;
- RMobileBroadcastMessaging::TMobileBroadcastAttributesV2Pckg rxMsgAttributePackage(rxMsgAttributes);
- TExtEtelRequestStatus receiveMessageStatus(broadcastMessaging, EMobileBroadcastMessagingReceiveMessage);
- CleanupStack::PushL(receiveMessageStatus);
- broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
-
- // Simulated network sends a GSM formatted broadcast message.
- TBuf<120> prompt(_L("Waiting for the CBM, notification of a directly delivered cell broadcast message from the network operator"));
- DisplayUserInteractionPromptL(prompt); // 30 seconds
-
- // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgData with length > 0 characters
- ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage timed out"));
- ASSERT_EQUALS(receiveMessageStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage returned with an error"));
- ASSERT_TRUE(rxMsgData.Length()>0, _L("RMobileBroadcastMessaging::ReceiveMessage did not complete with aMsgData with length > 0 characters"));
-
- ASSERT_TRUE(AssertValidBroadcastMessage(rxMsgAttributes), _L("AssertValidBroadcastMessage returned with failure"));
-
- // === Set the simple filter setting to accept none and receive a message ===
-
- // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
- broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10027);
- CHECK_EQUALS_L(1, 2, _L("This test has been made to leave intentially. The purpose of this leave is to avoid the board crashing"));
-
- // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastAcceptNone
- filterSetting1 = RMobileBroadcastMessaging::EBroadcastAcceptNone;
- broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting1);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
- ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
-
- // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastAcceptNone
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
- broadcastMessaging,
- notifyFilterSettingChangeStatus,
- filterSetting,
- filterSetting1,
- KErrNone );
-
- // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastAcceptNone
- ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
- ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastAcceptNone, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptNone"))
-
- // Call RMobileBroadcastMessaging::ReceiveMessage
- broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
-
- // Simulated network sends a GSM formatted broadcast message.
- DisplayUserInteractionPromptL(prompt); // 30 seconds
-
- // Check RMobileBroadcastMessaging::ReceiveMessage is still pending 2 minutes after the message was sent
- ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeVeryLong),KErrTimedOut, _L("RMobileBroadcastMessaging::ReceiveMessage did not pend 2 mins after the message was sent"));
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Pop:
- // notifyFilterSettingChangeStatus
- // setFilterSettingStatus
- // receiveMessageStatus
-
- CleanupStack::PopAndDestroy(3,¬ifyFilterSettingChangeStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestBroadcastMessaging0003::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestBroadcastMessaging0003");
- }
-
-
-
-CCTSYIntegrationTestBroadcastMessaging0004::CCTSYIntegrationTestBroadcastMessaging0004(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0004::GetTestStepName());
- }
-
-CCTSYIntegrationTestBroadcastMessaging0004::~CCTSYIntegrationTestBroadcastMessaging0004()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestBroadcastMessaging0004::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-BRMSG-0004
- * @SYMFssID BA/CTSY/BRMSG-0004
- * @SYMTestCaseDesc Receive broadcast messages when ID filter has been defined but filter is set to accept all messages.
- * @SYMTestPriority High
- * @SYMTestActions RMobileBroadcastMessaging::GetFilterSetting, RMobileBroadcastMessaging::SetFilterSetting, RMobileBroadcastMessaging::ReceiveMessage, RMobileBroadcastMessaging::NotifyBroadcastIdListChange, RMobileBroadcastMessaging::StoreBroadcastIdListL, CMobilePhoneBroadcastIdList::AddRangeEntryL
- * @SYMTestExpectedResults Pass - All broadcast messages received when filter is set to accept all.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/manual
- *
- * Reason for test: Verify all messages received.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
-
- ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10073);
- User::Leave(KErrNone);
-
-
- RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging) ;
-
- // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iFilterCaps in set of KCapsSimpleFilter
- RMobileBroadcastMessaging::TMobileBroadcastCapsV1 caps;
- RMobileBroadcastMessaging::TMobileBroadcastCapsV1Pckg capPkg(caps);
- TUint32 expectedCaps = RMobileBroadcastMessaging::KCapsSimpleFilter;
-
- CHECK_EQUALS_L(broadcastMessaging.GetCaps(capPkg), KErrNone, _L("RMobileBroadcastMessaging::GetCaps returned with an error"));
- CHECK_BITS_SET_L(caps.iFilterCaps,expectedCaps ,KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Filter caps"));
-
- // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iModeCaps in set of KCapsGsmTpduFormat
- CHECK_BITS_SET_L(caps.iModeCaps, RMobileBroadcastMessaging::KCapsGsmTpduFormat, KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Mode caps"));
-
- // Registered with the network
- TInt ret = iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
- CHECK_EQUALS_L(ret, KErrNone,
- _L("RMobilePhone::NotifyNetworkRegistrationStatusChange network registration failed"));
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
-
- // === Set broadcast ID filter ===
-
- // Create a new CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
- CMobilePhoneBroadcastIdList* broadcastIdList= CMobilePhoneBroadcastIdList::NewL();
- CleanupStack::PushL(broadcastIdList);
-
- // Add an entry to the list with CMobilePhoneBroadcastIdList::AddRangeEntryL with aStart.iId=1 and aEnd.iId=100
- RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry;
- idEntry.iId = 1;
- RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry2;
- idEntry2.iId = 100;
- broadcastIdList->AddRangeEntryL(idEntry, idEntry2);
-
- // Post a notification RMobileBroadcastMessaging::NotifyBroadcastIdListChange
- TExtEtelRequestStatus notifyBroadcastIdListChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyIdListChange);
- CleanupStack::PushL(notifyBroadcastIdListChangeStatus);
- broadcastMessaging.NotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus);
-
- // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with aIdType=EGsmBroadcastId
- RMobileBroadcastMessaging::TMobileBroadcastIdType idType=RMobileBroadcastMessaging::EGsmBroadcastId;
- TExtEtelRequestStatus storeBroadcastIdList(broadcastMessaging, EMobileBroadcastMessagingStoreIdList);
- CleanupStack::PushL(storeBroadcastIdList);
- broadcastMessaging.StoreBroadcastIdListL(storeBroadcastIdList,broadcastIdList,idType);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(storeBroadcastIdList, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL timed out"));
- ASSERT_EQUALS(storeBroadcastIdList.Int(), KErrNotSupported, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL did not return KErrNotSupported"));
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10028);
-
- // Check RMobileBroadcastMessaging::NotifyBroadcastIdListChange completes with KRequestPending
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus, KRequestPending );
-
- // === Set filter to accept all messages and receive a message within and out of the ID range ===
-
- // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting;
- TExtEtelRequestStatus notifyFilterSettingChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyFilterSettingChange);
- CleanupStack::PushL(notifyFilterSettingChangeStatus);
- broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
-
- // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastAcceptAll
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting1 = RMobileBroadcastMessaging::EBroadcastAcceptAll;
- TExtEtelRequestStatus setFilterSettingStatus(broadcastMessaging, EMobileBroadcastMessagingSetFilterSetting);
- CleanupStack::PushL(setFilterSettingStatus);
- broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting1);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
- ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
-
- // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastAcceptAll
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
- broadcastMessaging,
- notifyFilterSettingChangeStatus,
- filterSetting,
- filterSetting1,
- KErrNone );
-
- // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastAcceptAll
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSettingObtained;
- ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
- ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastAcceptAll, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptNone"))
-
- // Call RMobileBroadcastMessaging::ReceiveMessage
- RMobileBroadcastMessaging::TGsmBroadcastMessageData rxMsgData;
- RMobileBroadcastMessaging::TMobileBroadcastAttributesV2 rxMsgAttributes;
- RMobileBroadcastMessaging::TMobileBroadcastAttributesV2Pckg rxMsgAttributePackage(rxMsgAttributes);
- TExtEtelRequestStatus receiveMessageStatus(broadcastMessaging, EMobileBroadcastMessagingReceiveMessage);
- CleanupStack::PushL(receiveMessageStatus);
- broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
-
- // Simulator sends a broadcast message with an ID = 1
- TBuf<110> prompt(_L("Waiting for the CBM, notification of a directly delivered cell broadcast message from the network operator"));
- DisplayUserInteractionPromptL(prompt); // 30 seconds
-
- // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgData with length > 0 characters
- ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage timed out"));
- ASSERT_EQUALS(receiveMessageStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage returned with an error"));
- ASSERT_TRUE(rxMsgData.Length()>0, _L("RMobileBroadcastMessaging::ReceiveMessage did not complete with aMsgData with length > 0 characters"));
-
- ASSERT_TRUE(AssertValidBroadcastMessage(rxMsgAttributes), _L("AssertValidBroadcastMessage returned with failure"));
-
- // Call RMobileBroadcastMessaging::ReceiveMessage
- broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
-
- // Simulator sends a broadcast message with an ID = 50
- DisplayUserInteractionPromptL(prompt); // 30 seconds
-
- // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgData with length > 0 characters
- ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage timed out"));
- ASSERT_EQUALS(receiveMessageStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage returned with an error"));
- ASSERT_TRUE(rxMsgData.Length()>0, _L("RMobileBroadcastMessaging::ReceiveMessage did not complete with aMsgData with length > 0 characters"));
-
- ASSERT_TRUE(AssertValidBroadcastMessage(rxMsgAttributes), _L("AssertValidBroadcastMessage returned with failure"));
-
- // Call RMobileBroadcastMessaging::ReceiveMessage
- broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
-
- // Simulator sends a broadcast message with an ID = 99
- DisplayUserInteractionPromptL(prompt); // 30 seconds
-
- // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgData with length > 0 characters
- ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage timed out"));
- ASSERT_EQUALS(receiveMessageStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage returned with an error"));
- ASSERT_TRUE(rxMsgData.Length()>0, _L("RMobileBroadcastMessaging::ReceiveMessage did not complete with aMsgData with length > 0 characters"));
-
- ASSERT_TRUE(AssertValidBroadcastMessage(rxMsgAttributes), _L("AssertValidBroadcastMessage returned with failure"));
- // === Should also receive messages outside of the range ===
-
- // Call RMobileBroadcastMessaging::ReceiveMessage
- broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
-
- // Simulator sends a broadcast message with an ID = 100.
- DisplayUserInteractionPromptL(prompt); // 30 seconds
-
- // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgData with length > 0 characters
- ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage timed out"));
- ASSERT_EQUALS(receiveMessageStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage returned with an error"));
- ASSERT_TRUE(rxMsgData.Length()>0, _L("RMobileBroadcastMessaging::ReceiveMessage did not complete with aMsgData with length > 0 characters"));
-
- ASSERT_TRUE(AssertValidBroadcastMessage(rxMsgAttributes), _L("AssertValidBroadcastMessage returned with failure"));
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Pop:
- // broadcastIdList
- // notifyBroadcastIdListChangeStatus
- // storeBroadcastIdList
- // notifyFilterSettingChangeStatus
- // setFilterSettingStatus
- // receiveMessageStatus
- CleanupStack::PopAndDestroy(6,broadcastIdList);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestBroadcastMessaging0004::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestBroadcastMessaging0004");
- }
-
-
-
-CCTSYIntegrationTestBroadcastMessaging0005::CCTSYIntegrationTestBroadcastMessaging0005(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0005::GetTestStepName());
- }
-
-CCTSYIntegrationTestBroadcastMessaging0005::~CCTSYIntegrationTestBroadcastMessaging0005()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestBroadcastMessaging0005::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-BRMSG-0005
- * @SYMFssID BA/CTSY/BRMSG-0005
- * @SYMTestCaseDesc Receive broadcast messages when ID filter has been defined and filter is set to accept filter.
- * @SYMTestPriority High
- * @SYMTestActions RMobileBroadcastMessaging::GetFilterSetting, RMobileBroadcastMessaging::SetFilterSetting, RMobileBroadcastMessaging::ReceiveMessage, RMobileBroadcastMessaging::NotifyBroadcastIdListChange, RMobileBroadcastMessaging::StoreBroadcastIdListL, CMobilePhoneBroadcastIdList::AddRangeEntryL
- * @SYMTestExpectedResults Pass - Only messages within the filter range are accepted.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/manual
- *
- * Reason for test: Verify messages with an ID within the filter range are accepted.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
- ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10074);
- User::Leave(KErrNone);
-
-
-
-
- RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging) ;
-
- // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iFilterCaps in set of KCapsSimpleFilter
- RMobileBroadcastMessaging::TMobileBroadcastCapsV1 caps;
- RMobileBroadcastMessaging::TMobileBroadcastCapsV1Pckg capPkg(caps);
- TUint32 expectedCaps = RMobileBroadcastMessaging::KCapsSimpleFilter;
-
- CHECK_EQUALS_L(broadcastMessaging.GetCaps(capPkg), KErrNone, _L("RMobileBroadcastMessaging::GetCaps returned with an error"));
- CHECK_BITS_SET_L(caps.iFilterCaps,expectedCaps ,KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Filter caps"));
-
- // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iModeCaps in set of KCapsGsmTpduFormat
- CHECK_BITS_SET_L(caps.iModeCaps, RMobileBroadcastMessaging::KCapsGsmTpduFormat, KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Mode caps"));
-
- // Registered with the network
- TInt ret = iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
- CHECK_EQUALS_L(ret, KErrNone,
- _L("RMobilePhone::NotifyNetworkRegistrationStatusChange network registration failed"));
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
-
- // === Set broadcast ID filter ===
-
- // Create a new CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
- CMobilePhoneBroadcastIdList* broadcastIdList= CMobilePhoneBroadcastIdList::NewL();
- CleanupStack::PushL(broadcastIdList);
-
- // Add an entry to the list with CMobilePhoneBroadcastIdList::AddRangeEntryL with aStart.iId=1 and aEnd.iId=100
- RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry;
- idEntry.iId = 1;
- RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry2;
- idEntry2.iId = 100;
- broadcastIdList->AddRangeEntryL(idEntry, idEntry2);
-
- // Post a notification RMobileBroadcastMessaging::NotifyBroadcastIdListChange
- TExtEtelRequestStatus notifyBroadcastIdListChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyIdListChange);
- CleanupStack::PushL(notifyBroadcastIdListChangeStatus);
- broadcastMessaging.NotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus);
-
- // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with aIdType=EGsmBroadcastId
- RMobileBroadcastMessaging::TMobileBroadcastIdType idType=RMobileBroadcastMessaging::EGsmBroadcastId;
- TExtEtelRequestStatus storeBroadcastIdList(broadcastMessaging, EMobileBroadcastMessagingStoreIdList);
- CleanupStack::PushL(storeBroadcastIdList);
- broadcastMessaging.StoreBroadcastIdListL(storeBroadcastIdList,broadcastIdList,idType);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(storeBroadcastIdList, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL timed out"));
- ASSERT_EQUALS(storeBroadcastIdList.Int(), KErrNotSupported, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL did not return KErrNotSupported"));
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10028);
-
- // Check RMobileBroadcastMessaging::NotifyBroadcastIdListChange completes with KRequestPending
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus, KRequestPending );
-
- // === Set filter to accept filter settings ===
-
- // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting;
- TExtEtelRequestStatus notifyFilterSettingChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyFilterSettingChange);
- CleanupStack::PushL(notifyFilterSettingChangeStatus);
- broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
-
- // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastAcceptFilter
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting1 = RMobileBroadcastMessaging::EBroadcastAcceptFilter;
- TExtEtelRequestStatus setFilterSettingStatus(broadcastMessaging, EMobileBroadcastMessagingSetFilterSetting);
- CleanupStack::PushL(setFilterSettingStatus);
- broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting1);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
- ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
-
- // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastAcceptFilter
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
- broadcastMessaging,
- notifyFilterSettingChangeStatus,
- filterSetting,
- filterSetting1,
- KErrNone );
-
- // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastAcceptFilter
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSettingObtained;
- ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
- ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastAcceptFilter, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptNone"))
-
- // === Check messages with IDs in range are received ===
-
- //Call RMobileBroadcastMessaging::ReceiveMessage
- RMobileBroadcastMessaging::TGsmBroadcastMessageData rxMsgData;
- RMobileBroadcastMessaging::TMobileBroadcastAttributesV2 rxMsgAttributes;
- RMobileBroadcastMessaging::TMobileBroadcastAttributesV2Pckg rxMsgAttributePackage(rxMsgAttributes);
- TExtEtelRequestStatus receiveMessageStatus(broadcastMessaging, EMobileBroadcastMessagingReceiveMessage);
- CleanupStack::PushL(receiveMessageStatus);
- broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
-
- // Simulator sends a broadcast message with an ID = 1
- TBuf<110> prompt(_L("Waiting for the CBM, notification of a directly delivered cell broadcast message from the network operator"));
- DisplayUserInteractionPromptL(prompt); // 30 seconds
-
- // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgData with length > 0 characters
- ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage timed out"));
- ASSERT_EQUALS(receiveMessageStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage returned with an error"));
- ASSERT_TRUE(rxMsgData.Length()>0, _L("RMobileBroadcastMessaging::ReceiveMessage did not complete with aMsgData with length > 0 characters"));
-
- ASSERT_TRUE(AssertValidBroadcastMessage(rxMsgAttributes), _L("AssertValidBroadcastMessage returned with failure"));
-
- // Call RMobileBroadcastMessaging::ReceiveMessage
- broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
-
- // Simulator sends a broadcast message with an ID = 50
- DisplayUserInteractionPromptL(prompt); // 30 seconds
-
- // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgData with length > 0 characters
- ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage timed out"));
- ASSERT_EQUALS(receiveMessageStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage returned with an error"));
- ASSERT_TRUE(rxMsgData.Length()>0, _L("RMobileBroadcastMessaging::ReceiveMessage did not complete with aMsgData with length > 0 characters"));
-
- ASSERT_TRUE(AssertValidBroadcastMessage(rxMsgAttributes), _L("AssertValidBroadcastMessage returned with failure"));
-
- // Call RMobileBroadcastMessaging::ReceiveMessage
- broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
-
- // Simulator sends a broadcast message with an ID = 99
- DisplayUserInteractionPromptL(prompt); // 30 seconds
-
- // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgData with length > 0 characters
- ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage timed out"));
- ASSERT_EQUALS(receiveMessageStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage returned with an error"));
- ASSERT_TRUE(rxMsgData.Length()>0, _L("RMobileBroadcastMessaging::ReceiveMessage did not complete with aMsgData with length > 0 characters"));
-
- ASSERT_TRUE(AssertValidBroadcastMessage(rxMsgAttributes), _L("AssertValidBroadcastMessage returned with failure"));
-
- // === Check messages not in range are not received ===
-
- //Call RMobileBroadcastMessaging::ReceiveMessage
- broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
-
- // Simulator sends a broadcast message with an ID = 100.
- DisplayUserInteractionPromptL(prompt); // 30 seconds
-
- // Check RMobileBroadcastMessaging::ReceiveMessage is still pending 2 minutes after the message was sent
- ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeVeryLong),KErrTimedOut, _L("RMobileBroadcastMessaging::ReceiveMessage did not pend 2 mins after the message was sent"));
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Pop:
- // broadcastIdList
- // notifyBroadcastIdListChangeStatus
- // storeBroadcastIdList
- // notifyFilterSettingChangeStatus
- // setFilterSettingStatus
- // receiveMessageStatus
-
- CleanupStack::PopAndDestroy(6, broadcastIdList);
-
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestBroadcastMessaging0005::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestBroadcastMessaging0005");
- }
-
-
-
-CCTSYIntegrationTestBroadcastMessaging0006::CCTSYIntegrationTestBroadcastMessaging0006(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0006::GetTestStepName());
- }
-
-CCTSYIntegrationTestBroadcastMessaging0006::~CCTSYIntegrationTestBroadcastMessaging0006()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestBroadcastMessaging0006::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-BRMSG-0006
- * @SYMFssID BA/CTSY/BRMSG-0006
- * @SYMTestCaseDesc Receive broadcast messages when ID filter has been defined and filter is set to reject filter.
- * @SYMTestPriority High
- * @SYMTestActions RMobileBroadcastMessaging::GetFilterSetting, RMobileBroadcastMessaging::SetFilterSetting, RMobileBroadcastMessaging::ReceiveMessage, RMobileBroadcastMessaging::NotifyBroadcastIdListChange, RMobileBroadcastMessaging::StoreBroadcastIdListL, CMobilePhoneBroadcastIdList::AddRangeEntryL
- * @SYMTestExpectedResults Pass - Messages within ID range are not received, messages outside of the range are received.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/manual
- *
- * Reason for test: Verify messages within the ID range are not received and messages outside the range are.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
- RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging) ;
-
- // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iFilterCaps in set of KCapsSimpleFilter
- RMobileBroadcastMessaging::TMobileBroadcastCapsV1 caps;
- RMobileBroadcastMessaging::TMobileBroadcastCapsV1Pckg capPkg(caps);
- TUint32 expectedCaps = RMobileBroadcastMessaging::KCapsSimpleFilter;
-
- CHECK_EQUALS_L(broadcastMessaging.GetCaps(capPkg), KErrNone, _L("RMobileBroadcastMessaging::GetCaps returned with an error"));
- CHECK_BITS_SET_L(caps.iFilterCaps,expectedCaps ,KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Filter caps"));
-
- // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iModeCaps in set of KCapsGsmTpduFormat
- CHECK_BITS_SET_L(caps.iModeCaps, RMobileBroadcastMessaging::KCapsGsmTpduFormat, KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Mode caps"));
-
- // Registered with the network
- TInt ret = iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
- CHECK_EQUALS_L(ret, KErrNone,
- _L("RMobilePhone::NotifyNetworkRegistrationStatusChange network registration failed"));
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
-
- // === Set broadcast ID filter ===
-
- // Create a new CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
- CMobilePhoneBroadcastIdList* broadcastIdList= CMobilePhoneBroadcastIdList::NewL();
- CleanupStack::PushL(broadcastIdList);
-
- // Add an entry to the list with CMobilePhoneBroadcastIdList::AddRangeEntryL with aStart.iId=1 and aEnd.iId=100
- RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry;
- idEntry.iId = 1;
- RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry2;
- idEntry2.iId = 100;
- broadcastIdList->AddRangeEntryL(idEntry, idEntry2);
-
- // Post a notification RMobileBroadcastMessaging::NotifyBroadcastIdListChange
- TExtEtelRequestStatus notifyBroadcastIdListChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyIdListChange);
- CleanupStack::PushL(notifyBroadcastIdListChangeStatus);
- broadcastMessaging.NotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus);
-
- // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with aIdType=EGsmBroadcastId
- RMobileBroadcastMessaging::TMobileBroadcastIdType idType=RMobileBroadcastMessaging::EGsmBroadcastId;
- TExtEtelRequestStatus storeBroadcastIdList(broadcastMessaging, EMobileBroadcastMessagingStoreIdList);
- CleanupStack::PushL(storeBroadcastIdList);
- broadcastMessaging.StoreBroadcastIdListL(storeBroadcastIdList,broadcastIdList,idType);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(storeBroadcastIdList, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL timed out"));
- ASSERT_EQUALS(storeBroadcastIdList.Int(), KErrNotSupported, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL did not return KErrNotSupported"));
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10028);
-
- // Check RMobileBroadcastMessaging::NotifyBroadcastIdListChange completes with KRequestPending
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus, KRequestPending );
-
- // === Set filter to reject filter settings ===
-
- // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting;
- TExtEtelRequestStatus notifyFilterSettingChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyFilterSettingChange);
- CleanupStack::PushL(notifyFilterSettingChangeStatus);
- broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
-
- // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastRejectFilter
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting1 = RMobileBroadcastMessaging::EBroadcastRejectFilter;
- TExtEtelRequestStatus setFilterSettingStatus(broadcastMessaging, EMobileBroadcastMessagingSetFilterSetting);
- CleanupStack::PushL(setFilterSettingStatus);
- broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting1);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
- ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
-
- // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastRejectFilter
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
- broadcastMessaging,
- notifyFilterSettingChangeStatus,
- filterSetting,
- filterSetting1,
- KErrNone );
-
- // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastRejectFilter
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSettingObtained;
- ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
- ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastRejectFilter, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptNone"))
-
- // === Check messages with IDs in range are not received ===
-
- // Call RMobileBroadcastMessaging::ReceiveMessage
- RMobileBroadcastMessaging::TGsmBroadcastMessageData rxMsgData;
- RMobileBroadcastMessaging::TMobileBroadcastAttributesV2 rxMsgAttributes;
- RMobileBroadcastMessaging::TMobileBroadcastAttributesV2Pckg rxMsgAttributePackage(rxMsgAttributes);
- TExtEtelRequestStatus receiveMessageStatus(broadcastMessaging, EMobileBroadcastMessagingReceiveMessage);
- CleanupStack::PushL(receiveMessageStatus);
- broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
-
- // Simulator sends a broadcast message with an ID = 1
- TBuf<110> prompt(_L("Waiting for the CBM, notification of a directly delivered cell broadcast message from the network operator"));
- DisplayUserInteractionPromptL(prompt); // 30 seconds
-
- // Check RMobileBroadcastMessaging::ReceiveMessage is still pending 2 minutes after the message was sent
- ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeVeryLong),KErrTimedOut, _L("RMobileBroadcastMessaging::ReceiveMessage did not pend 2 mins after the message was sent"));
-
- // Call RMobileBroadcastMessaging::ReceiveMessage
- broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
-
- // Simulator sends a broadcast message with an ID = 50
- DisplayUserInteractionPromptL(prompt); // 30 seconds
-
- // Check RMobileBroadcastMessaging::ReceiveMessage is still pending 2 minutes after the message was sent
- ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeVeryLong),KErrTimedOut, _L("RMobileBroadcastMessaging::ReceiveMessage did not pend 2 mins after the message was sent"));
-
- // Call RMobileBroadcastMessaging::ReceiveMessage
- broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
-
- // Simulator sends a broadcast message with an ID = 99
- DisplayUserInteractionPromptL(prompt); // 30 seconds
-
- // Check RMobileBroadcastMessaging::ReceiveMessage is still pending 2 minutes after the message was sent
- ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeVeryLong),KErrTimedOut, _L("RMobileBroadcastMessaging::ReceiveMessage did not pend 2 mins after the message was sent"));
-
- // === Check messages not in range are received ===
-
- // Call RMobileBroadcastMessaging::ReceiveMessage
- broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
-
- // Simulator sends a broadcast message with an ID = 100.
- DisplayUserInteractionPromptL(prompt); // 30 seconds
-
- // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgData with length > 0 characters
- ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage timed out"));
- ASSERT_EQUALS(receiveMessageStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage returned with an error"));
- ASSERT_TRUE(rxMsgData.Length()>0, _L("RMobileBroadcastMessaging::ReceiveMessage did not complete with aMsgData with length > 0 characters"));
-
- ASSERT_TRUE(AssertValidBroadcastMessage(rxMsgAttributes), _L("AssertValidBroadcastMessage returned with failure"));
-
- // Call RMobileBroadcastMessaging::ReceiveMessage
- broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
-
- // Simulator sends a broadcast message with an ID = 0.
- DisplayUserInteractionPromptL(prompt); // 30 seconds
-
- // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgData with length > 0 characters
- ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage timed out"));
- ASSERT_EQUALS(receiveMessageStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage returned with an error"));
- ASSERT_TRUE(rxMsgData.Length()>0, _L("RMobileBroadcastMessaging::ReceiveMessage did not complete with aMsgData with length > 0 characters"));
-
- ASSERT_TRUE(AssertValidBroadcastMessage(rxMsgAttributes), _L("AssertValidBroadcastMessage returned with failure"));
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Pop:
- // broadcastIdList
- // notifyBroadcastIdListChangeStatus
- // storeBroadcastIdList
- // notifyFilterSettingChangeStatus
- // setFilterSettingStatus
- // receiveMessageStatus
- CleanupStack::PopAndDestroy(6,broadcastIdList);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestBroadcastMessaging0006::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestBroadcastMessaging0006");
- }
-
-
-
-CCTSYIntegrationTestBroadcastMessaging0007::CCTSYIntegrationTestBroadcastMessaging0007(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0007::GetTestStepName());
- }
-
-CCTSYIntegrationTestBroadcastMessaging0007::~CCTSYIntegrationTestBroadcastMessaging0007()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestBroadcastMessaging0007::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-BRMSG-0007
- * @SYMFssID BA/CTSY/BRMSG-0007
- * @SYMTestCaseDesc Receive broadcast messages when ID filter has been defined and fliter is set to reject all messages.
- * @SYMTestPriority High
- * @SYMTestActions RMobileBroadcastMessaging::GetFilterSetting, RMobileBroadcastMessaging::SetFilterSetting, RMobileBroadcastMessaging::ReceiveMessage, RMobileBroadcastMessaging::NotifyBroadcastIdListChange, RMobileBroadcastMessaging::StoreBroadcastIdListL, CMobilePhoneBroadcastIdList::AddRangeEntryL
- * @SYMTestExpectedResults Pass - No messages received.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/manual
- *
- * Reason for test: Verify no messages are received.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
- RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging) ;
-
- // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iFilterCaps in set of KCapsSimpleFilter
- RMobileBroadcastMessaging::TMobileBroadcastCapsV1 caps;
- RMobileBroadcastMessaging::TMobileBroadcastCapsV1Pckg capPkg(caps);
- TUint32 expectedCaps = RMobileBroadcastMessaging::KCapsSimpleFilter;
-
- CHECK_EQUALS_L(broadcastMessaging.GetCaps(capPkg), KErrNone, _L("RMobileBroadcastMessaging::GetCaps returned with an error"));
- CHECK_BITS_SET_L(caps.iFilterCaps,expectedCaps ,KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Filter caps"));
-
- // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iModeCaps in set of KCapsGsmTpduFormat
- CHECK_BITS_SET_L(caps.iModeCaps, RMobileBroadcastMessaging::KCapsGsmTpduFormat, KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Mode caps"));
-
- // Registered with the network
- TInt ret = iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
- CHECK_EQUALS_L(ret, KErrNone,
- _L("RMobilePhone::NotifyNetworkRegistrationStatusChange network registration failed"));
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- // === Set broadcast ID filter ===
-
- // Create a new CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
- CMobilePhoneBroadcastIdList* broadcastIdList= CMobilePhoneBroadcastIdList::NewL();
- CleanupStack::PushL(broadcastIdList);
-
- // Add an entry to the list with CMobilePhoneBroadcastIdList::AddRangeEntryL with aStart.iId=1 and aEnd.iId=100
- RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry;
- idEntry.iId = 1;
- RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry2;
- idEntry2.iId = 100;
- broadcastIdList->AddRangeEntryL(idEntry, idEntry2);
-
- // Post a notification RMobileBroadcastMessaging::NotifyBroadcastIdListChange
- TExtEtelRequestStatus notifyBroadcastIdListChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyIdListChange);
- CleanupStack::PushL(notifyBroadcastIdListChangeStatus);
- broadcastMessaging.NotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus);
-
- // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with aIdType=EGsmBroadcastId
- RMobileBroadcastMessaging::TMobileBroadcastIdType idType=RMobileBroadcastMessaging::EGsmBroadcastId;
- TExtEtelRequestStatus storeBroadcastIdList(broadcastMessaging, EMobileBroadcastMessagingStoreIdList);
- CleanupStack::PushL(storeBroadcastIdList);
- broadcastMessaging.StoreBroadcastIdListL(storeBroadcastIdList,broadcastIdList,idType);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(storeBroadcastIdList, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL timed out"));
- ASSERT_EQUALS(storeBroadcastIdList.Int(), KErrNotSupported, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL did not return KErrNotSupported"));
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10028);
-
- // Check RMobileBroadcastMessaging::NotifyBroadcastIdListChange completes with KRequestPending
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus, KRequestPending );
-
- // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting;
- TExtEtelRequestStatus notifyFilterSettingChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyFilterSettingChange);
- CleanupStack::PushL(notifyFilterSettingChangeStatus);
- broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
-
- // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastAcceptNone
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting1 = RMobileBroadcastMessaging::EBroadcastAcceptNone;
- TExtEtelRequestStatus setFilterSettingStatus(broadcastMessaging, EMobileBroadcastMessagingSetFilterSetting);
- CleanupStack::PushL(setFilterSettingStatus);
- broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting1);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
- ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
-
- // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastAcceptNone
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
- broadcastMessaging,
- notifyFilterSettingChangeStatus,
- filterSetting,
- filterSetting1,
- KErrNone );
-
- // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastAcceptNone
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSettingObtained;
- ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
- ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastAcceptNone, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptNone"))
-
- // === Check messages with IDs in range are not received ===
-
- // Call RMobileBroadcastMessaging::ReceiveMessage
- RMobileBroadcastMessaging::TGsmBroadcastMessageData rxMsgData;
- RMobileBroadcastMessaging::TMobileBroadcastAttributesV2 rxMsgAttributes;
- RMobileBroadcastMessaging::TMobileBroadcastAttributesV2Pckg rxMsgAttributePackage(rxMsgAttributes);
- TExtEtelRequestStatus receiveMessageStatus(broadcastMessaging, EMobileBroadcastMessagingReceiveMessage);
- CleanupStack::PushL(receiveMessageStatus);
- broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
-
- // Simulator sends a broadcast message with an ID = 1
- TBuf<110> prompt(_L("Waiting for the CBM, notification of a directly delivered cell broadcast message from the network operator"));
- DisplayUserInteractionPromptL(prompt); // 30 seconds
-
- // Check RMobileBroadcastMessaging::ReceiveMessage is still pending 2 minutes after the message was sent
- ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeVeryLong),KErrTimedOut, _L("RMobileBroadcastMessaging::ReceiveMessage did not pend 2 mins after the message was sent"));
-
- // Call RMobileBroadcastMessaging::ReceiveMessage
- broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
-
- // Simulator sends a broadcast message with an ID = 50
- DisplayUserInteractionPromptL(prompt); // 30 seconds
-
- // Check RMobileBroadcastMessaging::ReceiveMessage is still pending 2 minutes after the message was sent
- ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeVeryLong),KErrTimedOut, _L("RMobileBroadcastMessaging::ReceiveMessage did not pend 2 mins after the message was sent"));
-
- // Call RMobileBroadcastMessaging::ReceiveMessage
- broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
-
- // Simulator sends a broadcast message with an ID = 99
- DisplayUserInteractionPromptL(prompt); // 30 seconds
-
- // Check RMobileBroadcastMessaging::ReceiveMessage is still pending 2 minutes after the message was sent
- ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeVeryLong),KErrTimedOut, _L("RMobileBroadcastMessaging::ReceiveMessage did not pend 2 mins after the message was sent"));
-
-
- // === Check messages not in range are not received ===
-
- // Call RMobileBroadcastMessaging::ReceiveMessage
- broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
-
- // Simulator sends a broadcast message with an ID = 100.
- DisplayUserInteractionPromptL(prompt); // 30 seconds
-
- // Check RMobileBroadcastMessaging::ReceiveMessage is still pending 2 minutes after the message was sent
- ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeVeryLong),KErrTimedOut, _L("RMobileBroadcastMessaging::ReceiveMessage did not pend 2 mins after the message was sent"));
-
- // Call RMobileBroadcastMessaging::ReceiveMessage
- broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
-
- // Simulator sends a broadcast message with an ID = 0.
- DisplayUserInteractionPromptL(prompt); // 30 seconds
-
- // Check RMobileBroadcastMessaging::ReceiveMessage is still pending 2 minutes after the message was sent
- ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeVeryLong),KErrTimedOut, _L("RMobileBroadcastMessaging::ReceiveMessage did not pend 2 mins after the message was sent"));
-
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Pop:
- // broadcastIdList
- // notifyBroadcastIdListChangeStatus
- // storeBroadcastIdList
- // notifyFilterSettingChangeStatus
- // setFilterSettingStatus
- // receiveMessageStatus
- CleanupStack::PopAndDestroy(6,broadcastIdList);
-
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestBroadcastMessaging0007::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestBroadcastMessaging0007");
- }
-
-
-
-CCTSYIntegrationTestBroadcastMessaging0008::CCTSYIntegrationTestBroadcastMessaging0008(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0008::GetTestStepName());
- }
-
-CCTSYIntegrationTestBroadcastMessaging0008::~CCTSYIntegrationTestBroadcastMessaging0008()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestBroadcastMessaging0008::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-BRMSG-0008
- * @SYMFssID BA/CTSY/BRMSG-0008
- * @SYMTestCaseDesc Store a broadcast ID list with no IDs
- * @SYMTestPriority High
- * @SYMTestActions RMobileBroadcastMessaging::StoreBroadcastIdListL
- * @SYMTestExpectedResults Pass - No entry is stored.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify list returns KErrNotSupported when stored.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
- RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging);
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- // Create a new CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
- CMobilePhoneBroadcastIdList* broadcastIdList= CMobilePhoneBroadcastIdList::NewL();
- CleanupStack::PushL(broadcastIdList);
-
- // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with aIdType=EGsmBroadcastId
- RMobileBroadcastMessaging::TMobileBroadcastIdType idType=RMobileBroadcastMessaging::EGsmBroadcastId;
- TExtEtelRequestStatus storeBroadcastIdList(broadcastMessaging, EMobileBroadcastMessagingStoreIdList);
- CleanupStack::PushL(storeBroadcastIdList);
- broadcastMessaging.StoreBroadcastIdListL(storeBroadcastIdList,broadcastIdList,idType);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(storeBroadcastIdList, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL timed out"));
-
- // Check RMobileBroadcastMessaging::StoreBroadcastIdListL returns KErrNotSupported
- ASSERT_EQUALS(storeBroadcastIdList.Int(), KErrNotSupported, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL did not return KErrNotSupported"));
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10028);
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
- // Pop:
- // broadcastIdList
- // storeBroadcastIdList
-
- CleanupStack::PopAndDestroy(2,broadcastIdList);
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestBroadcastMessaging0008::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestBroadcastMessaging0008");
- }
-
-
-
-CCTSYIntegrationTestBroadcastMessaging0009::CCTSYIntegrationTestBroadcastMessaging0009(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0009::GetTestStepName());
- }
-
-CCTSYIntegrationTestBroadcastMessaging0009::~CCTSYIntegrationTestBroadcastMessaging0009()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestBroadcastMessaging0009::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-BRMSG-0009
- * @SYMFssID BA/CTSY/BRMSG-0009
- * @SYMTestCaseDesc Store 999 IDs with broadcast ID list
- * @SYMTestPriority High
- * @SYMTestActions RMobileBroadcastMessaging::StoreBroadcastIdListL
- * @SYMTestExpectedResults Pass - List is not stored.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify list can not be stored.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
- RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging);
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- // Create a new CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
- CMobilePhoneBroadcastIdList* broadcastIdList= CMobilePhoneBroadcastIdList::NewL();
- CleanupStack::PushL(broadcastIdList);
-
- // Add an entry to the list with CMobilePhoneBroadcastIdList::AddRangeEntryL with aStart.iId=1 and aEnd.iId=1000
- RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry;
- idEntry.iId = 1;
- RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry2;
- idEntry2.iId = 1000;
- broadcastIdList->AddRangeEntryL(idEntry, idEntry2);
-
- // Post a notification RMobileBroadcastMessaging::NotifyBroadcastIdListChange
- TExtEtelRequestStatus notifyBroadcastIdListChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyIdListChange);
- CleanupStack::PushL(notifyBroadcastIdListChangeStatus);
- broadcastMessaging.NotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus);
-
- // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with aIdType=EGsmBroadcastId
- RMobileBroadcastMessaging::TMobileBroadcastIdType idType=RMobileBroadcastMessaging::EGsmBroadcastId;
- TExtEtelRequestStatus storeBroadcastIdList(broadcastMessaging, EMobileBroadcastMessagingStoreIdList);
- CleanupStack::PushL(storeBroadcastIdList);
- broadcastMessaging.StoreBroadcastIdListL(storeBroadcastIdList,broadcastIdList,idType);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(storeBroadcastIdList, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL timed out"));
- ASSERT_EQUALS(storeBroadcastIdList.Int(), KErrNotSupported, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL did not return KErrNotSupported"));
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10028);
-
- // Check RMobileBroadcastMessaging::NotifyBroadcastIdListChange completes with KErrNotSupported
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus, KErrNotSupported);
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Pop:
- // broadcastIdList
- // notifyBroadcastIdListChangeStatus
- // storeBroadcastIdList
-
- CleanupStack::PopAndDestroy(3,broadcastIdList);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestBroadcastMessaging0009::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestBroadcastMessaging0009");
- }
-
-
-
-CCTSYIntegrationTestBroadcastMessaging0010::CCTSYIntegrationTestBroadcastMessaging0010(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0010::GetTestStepName());
- }
-
-CCTSYIntegrationTestBroadcastMessaging0010::~CCTSYIntegrationTestBroadcastMessaging0010()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestBroadcastMessaging0010::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-BRMSG-0010
- * @SYMFssID BA/CTSY/BRMSG-0010
- * @SYMTestCaseDesc Store maximum number of broadcast IDs for the phone.
- * @SYMTestPriority High
- * @SYMTestActions RMobileBroadcastMessaging::StoreBroadcastIdListL
- * @SYMTestExpectedResults Pass - List is stored.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify list can be stored.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
-
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
-
- // Create a new CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
-
- // Add an entry to the list with CMobilePhoneBroadcastIdList::AddRangeEntryL with aStart.iId=1 and aEnd.iId=X where X=maximum number of entries supported
-
- // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with aIdType=EGsmBroadcastId
-
- // Check RMobileBroadcastMessaging::NotifyBroadcastIdListChange completes with KErrNone
-
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestBroadcastMessaging0010::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestBroadcastMessaging0010");
- }
-
-
-
-CCTSYIntegrationTestBroadcastMessaging0011::CCTSYIntegrationTestBroadcastMessaging0011(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0011::GetTestStepName());
- }
-
-CCTSYIntegrationTestBroadcastMessaging0011::~CCTSYIntegrationTestBroadcastMessaging0011()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestBroadcastMessaging0011::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-BRMSG-0011
- * @SYMFssID BA/CTSY/BRMSG-0011
- * @SYMTestCaseDesc Store broadcast ID list with duplicate IDs
- * @SYMTestPriority High
- * @SYMTestActions RMobileBroadcastMessaging::StoreBroadcastIdListL
- * @SYMTestExpectedResults Pass - List is not stored.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify list can not be stored.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
- RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging);
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- // Create a new CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
- CMobilePhoneBroadcastIdList* broadcastIdList= CMobilePhoneBroadcastIdList::NewL();
- CleanupStack::PushL(broadcastIdList);
-
- // Add an entry to the list with CMobilePhoneBroadcastIdList::AddRangeEntryL with aStart.iId=1 and aEnd.iId=3
- RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry;
- idEntry.iId = 1;
- RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry2;
- idEntry2.iId = 3;
- broadcastIdList->AddRangeEntryL(idEntry, idEntry2);
-
- // Add another entry to the list with CMobilePhoneBroadcastIdList::AddRangeEntryL with aStart.iId=1 and aEnd.iId=3
- broadcastIdList->AddRangeEntryL(idEntry, idEntry2);
-
- // Post a notification RMobileBroadcastMessaging::NotifyBroadcastIdListChange
- TExtEtelRequestStatus notifyBroadcastIdListChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyIdListChange);
- CleanupStack::PushL(notifyBroadcastIdListChangeStatus);
- broadcastMessaging.NotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus);
-
- // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with aIdType=EGsmBroadcastId
- RMobileBroadcastMessaging::TMobileBroadcastIdType idType=RMobileBroadcastMessaging::EGsmBroadcastId;
- TExtEtelRequestStatus storeBroadcastIdList(broadcastMessaging, EMobileBroadcastMessagingStoreIdList);
- CleanupStack::PushL(storeBroadcastIdList);
- broadcastMessaging.StoreBroadcastIdListL(storeBroadcastIdList,broadcastIdList,idType);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(storeBroadcastIdList, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL timed out"));
- ASSERT_EQUALS(storeBroadcastIdList.Int(), KErrNotSupported, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL did not return KErrNotSupported"));
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10028);
-
- // Check RMobileBroadcastMessaging::NotifyBroadcastIdListChange completes with KErrNotSupported
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus, KErrNotSupported);
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Pop:
- // broadcastIdList
- // notifyBroadcastIdListChangeStatus
- // storeBroadcastIdList
- CleanupStack::PopAndDestroy(3, broadcastIdList);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestBroadcastMessaging0011::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestBroadcastMessaging0011");
- }
-
-
-
-CCTSYIntegrationTestBroadcastMessaging0012::CCTSYIntegrationTestBroadcastMessaging0012(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0012::GetTestStepName());
- }
-
-CCTSYIntegrationTestBroadcastMessaging0012::~CCTSYIntegrationTestBroadcastMessaging0012()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestBroadcastMessaging0012::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-BRMSG-0012
- * @SYMFssID BA/CTSY/BRMSG-0012
- * @SYMTestCaseDesc Store and retrieve broadcast ID list.
- * @SYMTestPriority High
- * @SYMTestActions
- * @SYMTestExpectedResults Pass - List retrieved is empty.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify store returned KErrNotSupported and retrieved an empty list.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
- RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging);
-
- // Registered with the network
- TInt ret = iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
- CHECK_EQUALS_L(ret, KErrNone,
- _L("RMobilePhone::NotifyNetworkRegistrationStatusChange network registration failed"));
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- // Create a new CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
- CMobilePhoneBroadcastIdList* broadcastIdList= CMobilePhoneBroadcastIdList::NewL();
- CleanupStack::PushL(broadcastIdList);
-
- // Add an entry to the list with CMobilePhoneBroadcastIdList::AddRangeEntryL with aStart.iId=1 and aEnd.iId=4
- RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry;
- idEntry.iId = 1;
- RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry2;
- idEntry2.iId = 4;
- broadcastIdList->AddRangeEntryL(idEntry, idEntry2);
-
- // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with aIdType=EGsmBroadcastId
- RMobileBroadcastMessaging::TMobileBroadcastIdType idType=RMobileBroadcastMessaging::EGsmBroadcastId;
- TExtEtelRequestStatus storeBroadcastIdList(broadcastMessaging, EMobileBroadcastMessagingStoreIdList);
- CleanupStack::PushL(storeBroadcastIdList);
- broadcastMessaging.StoreBroadcastIdListL(storeBroadcastIdList,broadcastIdList,idType);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(storeBroadcastIdList, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL timed out"));
-
- // Check store returned KErrNotSupported
- ASSERT_EQUALS(storeBroadcastIdList.Int(), KErrNotSupported, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL did not return KErrNotSupported"));
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10028);
-
- // Use Retrieval helper class to retrieve broadcast Id entries from the list
- TInt err;
- CRetrieveMobilePhoneBroadcastIdListExec* broadcastIdListExec = CRetrieveMobilePhoneBroadcastIdListHelper::NewL(broadcastMessaging,idType);
- CleanupStack::PushL(broadcastIdListExec);
- CMobilePhoneBroadcastIdList* broadcastIdList2 = broadcastIdListExec ->DoGetList(err);
- ASSERT_EQUALS(err, KErrNone, _L("CRetrieveMobilePhoneBroadcastIdList::RetrieveListL is not able to get the list"))
-
- // Check CMobilePhoneBroadcastIdList::Enumerate returns 0 entry
- ASSERT_EQUALS(broadcastIdList2->Enumerate(), 0, _L("CMobilePhoneBroadcastIdList::Enumerate did not return an empty list"));
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Pop:
- // broadcastIdList
- // storeBroadcastIdList
- // broadcastIdListExec
- CleanupStack::PopAndDestroy(3, broadcastIdList);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestBroadcastMessaging0012::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestBroadcastMessaging0012");
- }
-
-
-
-CCTSYIntegrationTestBroadcastMessaging0013::CCTSYIntegrationTestBroadcastMessaging0013(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0013::GetTestStepName());
- }
-
-CCTSYIntegrationTestBroadcastMessaging0013::~CCTSYIntegrationTestBroadcastMessaging0013()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestBroadcastMessaging0013::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-BRMSG-0013
- * @SYMFssID BA/CTSY/BRMSG-0013
- * @SYMTestCaseDesc Store and retrieve an empty broadcast ID list.
- * @SYMTestPriority High
- * @SYMTestActions
- * @SYMTestExpectedResults Pass - List retrieved is same as that stored.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify an empty list is retrieved.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
- RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging);
-
- // Registered with the network
- TInt ret = iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
- CHECK_EQUALS_L(ret, KErrNone,
- _L("RMobilePhone::NotifyNetworkRegistrationStatusChange network registration failed"));
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- // Create a new CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
- CMobilePhoneBroadcastIdList* broadcastIdList= CMobilePhoneBroadcastIdList::NewL();
- CleanupStack::PushL(broadcastIdList);
-
- // This is deliberate action to open a session because the API in Etelmm allocates memory
- // The Session Manager should be used in all other places.
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- RMobileBroadcastMessaging broadcastMessagingStore;
- broadcastMessagingStore.Open(phone);
-
- // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with aIdType=EGsmBroadcastId
- RMobileBroadcastMessaging::TMobileBroadcastIdType idType=RMobileBroadcastMessaging::EGsmBroadcastId;
- TExtEtelRequestStatus storeBroadcastIdList(broadcastMessaging, EMobileBroadcastMessagingStoreIdList);
- CleanupStack::PushL(storeBroadcastIdList);
- broadcastMessagingStore.StoreBroadcastIdListL(storeBroadcastIdList,broadcastIdList,idType);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(storeBroadcastIdList, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL timed out"));
- ASSERT_EQUALS(storeBroadcastIdList.Int(), KErrNotSupported, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL did not return KErrNotSupported"));
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10028);
- broadcastMessagingStore.Close();
-
- // Use Retrieval helper class to retrieve broadcast Id entries from the list
- TInt err;
- CRetrieveMobilePhoneBroadcastIdListExec* broadcastIdListExec = CRetrieveMobilePhoneBroadcastIdListHelper::NewL(broadcastMessaging,idType);
- CleanupStack::PushL(broadcastIdListExec);
- CMobilePhoneBroadcastIdList* broadcastIdList2 = broadcastIdListExec ->DoGetList(err);
- ASSERT_EQUALS(err, KErrNone, _L("CRetrieveMobilePhoneBroadcastIdList::RetrieveListL is not able to get the list"))
-
- // Check CMobilePhoneBroadcastIdList::Enumerate returns 0 entry
- ASSERT_EQUALS(broadcastIdList2->Enumerate(), 0, _L("CMobilePhoneBroadcastIdList::Enumerate did not return an empty list"));
-
- //
- // TEST END
- //
-
- StartCleanup();
- // Pop:
- // broadcastIdList
- // storeBroadcastIdList
- // broadcastIdListExec
- CleanupStack::PopAndDestroy(3, broadcastIdList);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestBroadcastMessaging0013::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestBroadcastMessaging0013");
- }
-
-CCTSYIntegrationTestBroadcastMessaging0014::CCTSYIntegrationTestBroadcastMessaging0014(CEtelSessionMgr& aEtelSessionMgr)
-: CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
-/**
-* Constructor.
-*/
-{
-SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0014::GetTestStepName());
-}
-
-CCTSYIntegrationTestBroadcastMessaging0014::~CCTSYIntegrationTestBroadcastMessaging0014()
-/**
-* Destructor.
-*/
-{
-}
-
-TVerdict CCTSYIntegrationTestBroadcastMessaging0014::doTestStepL()
-/**
-* @SYMTestCaseID BA-CTSY-INT-BRMSG-0014
-* @SYMFssID BA/CTSY/BRMSG-0014
-* @SYMTestCaseDesc Set the broadcast messaging Language filter.
-* @SYMTestPriority High
-* @SYMTestActions RMobileBroadcastMessaging::NotifyFilterSettingChange,RMobileBroadcastMessaging::GetFilterSetting, RMobileBroadcastMessaging::SetFilterSetting, RMobileBroadcastMessaging::SetLanguageFilter, RMobileBroadcastMessaging::GetLanguageFilter
-* @SYMTestExpectedResults Pass - Language filter notifications complete and are set correctly.
-* @SYMTestType CIT
-* @SYMTestCaseDependencies live/automatic
-*
-* Reason for test: Verify filter change notification completes and correct filter has been set.
-*
-* @return - TVerdict code
-*/
- {
-
- //
- // SET UP
- //
- RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging) ;
-
- // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iFilterCaps in set of KCapsSimpleFilter
- RMobileBroadcastMessaging::TMobileBroadcastCapsV1 caps;
- RMobileBroadcastMessaging::TMobileBroadcastCapsV1Pckg capPkg(caps);
- TUint32 expectedCaps = RMobileBroadcastMessaging::KCapsSimpleFilter;
-
- CHECK_EQUALS_L(broadcastMessaging.GetCaps(capPkg), KErrNone, _L("RMobileBroadcastMessaging::GetCaps returned with an error"));
- CHECK_BITS_SET_L(caps.iFilterCaps,expectedCaps ,KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Filter caps"));
-
- // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iModeCaps in set of KCapsGsmTpduFormat
- CHECK_BITS_SET_L(caps.iModeCaps, RMobileBroadcastMessaging::KCapsGsmTpduFormat, KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Mode caps"));
-
- // Registered with the network
- TInt ret = iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
- CHECK_EQUALS_L(ret, KErrNone,
- _L("RMobilePhone::NotifyNetworkRegistrationStatusChange network registration failed"));
-
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- // === Check no language filter is set, then set language filter for one language ===
-
- // Check RMobileBroadcastMessaging::GetLanguageFilter completes with KErrNotFound
- TBuf<10> langFilter;
- TExtEtelRequestStatus getLanguageFilterStatus(broadcastMessaging, EMobileBroadcastMessagingGetLanguageFilter);
- CleanupStack::PushL(getLanguageFilterStatus);
- broadcastMessaging.GetLanguageFilter(getLanguageFilterStatus, langFilter);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getLanguageFilterStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::GetLanguageFilter timed out"));
- ASSERT_EQUALS(getLanguageFilterStatus.Int(), KErrNotFound, _L("RMobileBroadcastMessaging::GetLanguageFilter returned with a language filtered unexpectedly"));
-
- // Post a notification RMobileBroadcastMessaging::NotifyLanguageFilterChange
- TBuf<1> langFilterSetting;
- TExtEtelRequestStatus notifyLanguageFilterChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyLanguageFilterChange);
- CleanupStack::PushL(notifyLanguageFilterChangeStatus);
- broadcastMessaging.NotifyLanguageFilterChange(notifyLanguageFilterChangeStatus, langFilterSetting);
-
- // Set the language filter with RMobileBroadcastMessaging::SetLanguageFilter and aLangFilter="\1" (English, see spec 03.38)
- _LIT(KEnglish, "\1");
- TBuf<1> filter(KEnglish);
- TExtEtelRequestStatus setLanguageFilterStatus(broadcastMessaging, EMobileBroadcastMessagingSetLanguageFilter);
- CleanupStack::PushL(setLanguageFilterStatus);
- broadcastMessaging.SetLanguageFilter(setLanguageFilterStatus,filter);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setLanguageFilterStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetLanguageFilter timed out"));
- ASSERT_EQUALS(setLanguageFilterStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetLanguageFilter returned with an error"));
-
- // Check RMobileBroadcastMessaging::NotifyLanguageFilterChange completes with aLangFilter="\1"
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyLanguageFilterChange(
- broadcastMessaging,
- notifyLanguageFilterChangeStatus,
- filter,
- langFilterSetting,
- KErrNone );
-
- // Check RMobileBroadcastMessaging::GetLanguageFilter completes with aLangFilter="\1"
- broadcastMessaging.GetLanguageFilter(getLanguageFilterStatus, langFilter);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getLanguageFilterStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::GetLanguageFilter timed out"));
- ASSERT_EQUALS(getLanguageFilterStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::GetLanguageFilter returned with a language filtered unexpectedly"));
- ASSERT_EQUALS_DES16(langFilter, filter, _L("RMobileBroadcastMessaging::GetLanguageFilter did not complete with a aLangFilter=KEnglish"));
-
- // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting;
- TExtEtelRequestStatus notifyFilterSettingChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyFilterSettingChange);
- CleanupStack::PushL(notifyFilterSettingChangeStatus);
- broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
-
-
- // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastAcceptFilter
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting1 = RMobileBroadcastMessaging::EBroadcastAcceptFilter;
- TExtEtelRequestStatus setFilterSettingStatus(broadcastMessaging, EMobileBroadcastMessagingSetFilterSetting);
- CleanupStack::PushL(setFilterSettingStatus);
- broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting1);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
- ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
-
- // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastAcceptFilter
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
- broadcastMessaging,
- notifyFilterSettingChangeStatus,
- filterSetting,
- filterSetting1,
- KErrNone );
-
- // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastAcceptFilter
- RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSettingObtained;
- ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
- ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastAcceptFilter, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptNone"))
-
- // === Set language filter to filter for no languages ===
-
- // Post a notification RMobileBroadcastMessaging::NotifyLanguageFilterChange
- broadcastMessaging.NotifyLanguageFilterChange(notifyLanguageFilterChangeStatus, langFilterSetting);
-
- // Set the language filter with RMobileBroadcastMessaging::SetLanguageFilter and aLangFilter=""
- _LIT(KNone, "");
- filter=KNone;
- broadcastMessaging.SetLanguageFilter(setLanguageFilterStatus,filter);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setLanguageFilterStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetLanguageFilter timed out"));
- ASSERT_EQUALS(setLanguageFilterStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetLanguageFilter returned with an error"));
-
- // Check RMobileBroadcastMessaging::NotifyLanguageFilterChange completes with aLangFilter=""
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyLanguageFilterChange(
- broadcastMessaging,
- notifyLanguageFilterChangeStatus,
- filter,
- langFilterSetting,
- KErrNone );
-
- // Check RMobileBroadcastMessaging::GetLanguageFilter completes with KErrNotFound
- broadcastMessaging.GetLanguageFilter(getLanguageFilterStatus, langFilter);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getLanguageFilterStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::GetLanguageFilter timed out"));
- ASSERT_EQUALS(getLanguageFilterStatus.Int(), KErrNotFound, _L("RMobileBroadcastMessaging::GetLanguageFilter returned with a language filtered unexpectedly"));
-
- // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
- broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
-
- // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastAcceptFilter
- filterSetting1= RMobileBroadcastMessaging::EBroadcastAcceptFilter;
- broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting1);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
- ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
-
- // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastAcceptFilter
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
- broadcastMessaging,
- notifyFilterSettingChangeStatus,
- filterSetting,
- filterSetting1,
- KErrNone );
-
- // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastAcceptFilter
- ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
- ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastAcceptFilter, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptNone"))
-
- // === Check no language filter is set, then set language filter for more than one language ===
-
- // Post a notification RMobileBroadcastMessaging::NotifyLanguageFilterChange
- broadcastMessaging.NotifyLanguageFilterChange(notifyLanguageFilterChangeStatus, langFilterSetting);
-
- // Set the language filter with RMobileBroadcastMessaging::SetLanguageFilter and aLangFilter="\7\1" (Danish + English, see spec 03.38)
- _LIT(KMultipleLang, "\7\1");
- filter=KMultipleLang;
- broadcastMessaging.SetLanguageFilter(setLanguageFilterStatus,filter);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setLanguageFilterStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetLanguageFilter timed out"));
- ASSERT_EQUALS(setLanguageFilterStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetLanguageFilter returned with an error"));
-
- // Check RMobileBroadcastMessaging::NotifyLanguageFilterChange completes with aLangFilter="\7\1"
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyLanguageFilterChange(
- broadcastMessaging,
- notifyLanguageFilterChangeStatus,
- filter,
- langFilterSetting,
- KErrNone );
-
- // Check RMobileBroadcastMessaging::GetLanguageFilter completes with aLangFilter="\7\1"
- broadcastMessaging.GetLanguageFilter(getLanguageFilterStatus, langFilter);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getLanguageFilterStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::GetLanguageFilter timed out"));
- ASSERT_EQUALS(getLanguageFilterStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::GetLanguageFilter returned with a language filtered unexpectedly"));
- ASSERT_EQUALS_DES16(langFilter, filter, _L("RMobileBroadcastMessaging::GetLanguageFilter did not complete with a aLangFilter=KEnglish"));
-
- // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
- broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
-
- // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastAcceptFilter
- filterSetting1= RMobileBroadcastMessaging::EBroadcastAcceptFilter;
- broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting1);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
- ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
-
- // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastAcceptFilter
- iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
- broadcastMessaging,
- notifyFilterSettingChangeStatus,
- filterSetting,
- filterSetting1,
- KErrNone );
-
- // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastAcceptFilter
- ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
- ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastAcceptFilter, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptNone"))
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Pop :
- // getLanguageFilterStatus
- // notifyLanguageFilterChangeStatus
- // setLanguageFilterStatus
- // notifyFilterSettingChangeStatus
- // setFilterSettingStatus
- CleanupStack::PopAndDestroy(5, &getLanguageFilterStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestBroadcastMessaging0014::GetTestStepName()
-/**
-* @return The test step name.
-*/
- {
- return _L("CCTSYIntegrationTestBroadcastMessaging0014");
- }
-
-
-
+// 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:
+// Test step definitions for the BroadcastMessaging functional unit.
+//
+//
+
+/**
+ @internalTechnology
+*/
+
+#include "cctsyintegrationtestbroadcastmessaging.h"
+#include "listretrievalhelpers.h"
+
+
+
+CCTSYIntegrationTestBroadcastMessagingBase::CCTSYIntegrationTestBroadcastMessagingBase(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestSuiteStepBase(aEtelSessionMgr), iBroadcastMessagingTestHelper(*this), iNetworkTestHelper(*this)
+/**
+ * Constructor
+ */
+ {
+ }
+
+CCTSYIntegrationTestBroadcastMessagingBase::~CCTSYIntegrationTestBroadcastMessagingBase()
+/*
+ * Destructor
+ */
+ {
+ }
+
+
+CCTSYIntegrationTestBroadcastMessaging0001::CCTSYIntegrationTestBroadcastMessaging0001(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0001::GetTestStepName());
+ }
+
+CCTSYIntegrationTestBroadcastMessaging0001::~CCTSYIntegrationTestBroadcastMessaging0001()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TBool CCTSYIntegrationTestBroadcastMessagingBase::AssertValidBroadcastMessage(const RMobileBroadcastMessaging::TMobileBroadcastAttributesV2 &aBraodcastAttributes)
+/*
+ * This function checks the validity of received Broadcastmessage
+ *
+ * @param aBraodcastAttributes Reference to attributes of received messages.
+ * @return true if the received message is not valid.
+ */
+ {
+ TBool ret=EFalse;
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgAttributes.iFlags in set of KBroadcastDataFormat
+ ASSERT_BITS_SET(aBraodcastAttributes.iFlags, RMobileBroadcastMessaging::KBroadcastDataFormat ,KNoUnwantedBits, _L("RMobileBroadcastMessaging::ReceiveMessage did not return desired Message Flags"));
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgAttributes.iFormat of EFormatGsmTpdu
+ ASSERT_EQUALS(aBraodcastAttributes.iFormat, RMobileBroadcastMessaging::EFormatGsmTpdu, _L("RMobileBroadcastMessaging::ReceiveMessage did not return desired Message Format"));
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgAttributes.iDCS > 0
+ ASSERT_TRUE(aBraodcastAttributes.iDCS > 0, _L("RMobileBroadcastMessaging::ReceiveMessage did not return DCS > 0"));
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgAttributes.iMessageId > 0
+ ASSERT_TRUE(aBraodcastAttributes.iMessageId> 0, _L("RMobileBroadcastMessaging::ReceiveMessage did not return MessageId > 0"));
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgAttributes.iMessageType of EGsmBroadcastId
+ ASSERT_EQUALS((int)aBraodcastAttributes.iMessageType , (int)RMobileBroadcastMessaging::EGsmBroadcastId, _L("RMobileBroadcastMessaging::ReceiveMessage did not return desired MessageType"));
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgAttributes.iNumberOfPages > 0
+ ASSERT_TRUE(aBraodcastAttributes.iNumberOfPages > 0, _L("RMobileBroadcastMessaging::ReceiveMessage did not return NumberOfPages > 0"));
+
+ if((aBraodcastAttributes.iFlags && RMobileBroadcastMessaging::KBroadcastDataFormat)
+ && (aBraodcastAttributes.iFormat== RMobileBroadcastMessaging::EFormatGsmTpdu)
+ && (aBraodcastAttributes.iDCS>0) && (aBraodcastAttributes.iMessageId> 0)
+ && ((int)aBraodcastAttributes.iMessageType ==(int)RMobileBroadcastMessaging::EGsmBroadcastId)
+ && (aBraodcastAttributes.iNumberOfPages > 0) )
+ {
+ ret= ETrue;
+ }
+
+ return ret;
+ }
+
+TVerdict CCTSYIntegrationTestBroadcastMessaging0001::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-BRMSG-0001
+ * @SYMFssID BA/CTSY/BRMSG-0001
+ * @SYMTestCaseDesc Set the broadcast messaging simple filter.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobileBroadcastMessaging::NotifyFilterSettingChange,RMobileBroadcastMessaging::GetFilterSetting, RMobileBroadcastMessaging::SetFilterSetting
+ * @SYMTestExpectedResults Pass - Simple filter notifications complete and are set correctly.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify filter change notification completes and correct filter has been set.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+ RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging) ;
+
+ // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iFilterCaps in set of KCapsSimpleFilter
+ RMobileBroadcastMessaging::TMobileBroadcastCapsV1 caps;
+ RMobileBroadcastMessaging::TMobileBroadcastCapsV1Pckg capPkg(caps);
+ TUint32 expectedCaps = RMobileBroadcastMessaging::KCapsSimpleFilter;
+
+ CHECK_EQUALS_L(broadcastMessaging.GetCaps(capPkg), KErrNone, _L("RMobileBroadcastMessaging::GetCaps returned with an error"));
+ CHECK_BITS_SET_L(caps.iFilterCaps,expectedCaps ,KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Filter caps"));
+
+ // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iModeCaps in set of KCapsGsmTpduFormat
+ CHECK_BITS_SET_L(caps.iModeCaps, RMobileBroadcastMessaging::KCapsGsmTpduFormat, KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Mode caps"));
+
+ // Registered with the network
+ TInt ret = iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
+ CHECK_EQUALS_L(ret, KErrNone,
+ _L("RMobilePhone::NotifyNetworkRegistrationStatusChange network registration failed"));
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ // === Set the simple filter setting to accept none ===
+
+ // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting;
+ TExtEtelRequestStatus notifyFilterSettingChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyFilterSettingChange);
+ CleanupStack::PushL(notifyFilterSettingChangeStatus);
+ broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
+
+ // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastAcceptNone
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting1 = RMobileBroadcastMessaging::EBroadcastAcceptNone;
+ TExtEtelRequestStatus setFilterSettingStatus(broadcastMessaging, EMobileBroadcastMessagingSetFilterSetting);
+ CleanupStack::PushL(setFilterSettingStatus);
+ broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting1);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
+ ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
+
+ // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastAcceptNone
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
+ broadcastMessaging,
+ notifyFilterSettingChangeStatus,
+ filterSetting,
+ filterSetting1,
+ KErrNone );
+
+ // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastAcceptNone
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSettingObtained;
+ ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
+ ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastAcceptNone, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptNone"))
+
+ // === Set the simple filter setting to accept all ===
+
+ // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
+ broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10026);
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10027);
+ CHECK_EQUALS_L(1, 2, _L("This test has been made to leave intentially.The purpose of this leave is to avoid the board crashing"));
+
+ // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastAcceptAll
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting2 = RMobileBroadcastMessaging::EBroadcastAcceptAll;
+ broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting2);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
+ ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
+
+ // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastAcceptAll
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
+ broadcastMessaging,
+ notifyFilterSettingChangeStatus,
+ filterSetting,
+ filterSetting2,
+ KErrNone );
+
+ // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastAcceptAll
+ ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
+ ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastAcceptAll, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptAll"))
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Pop:
+ // notifyFilterSettingChangeStatus
+ // setFilterSettingStatus
+ CleanupStack::PopAndDestroy(2,¬ifyFilterSettingChangeStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestBroadcastMessaging0001::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestBroadcastMessaging0001");
+ }
+
+
+
+CCTSYIntegrationTestBroadcastMessaging0002::CCTSYIntegrationTestBroadcastMessaging0002(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0002::GetTestStepName());
+ }
+
+CCTSYIntegrationTestBroadcastMessaging0002::~CCTSYIntegrationTestBroadcastMessaging0002()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestBroadcastMessaging0002::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-BRMSG-0002
+ * @SYMFssID BA/CTSY/BRMSG-0002
+ * @SYMTestCaseDesc Set the broadcast messaging ID filter
+ * @SYMTestPriority High
+ * @SYMTestActions CRetrieveMobilePhoneBroadcastIdList::Start, RMobileBroadcastMessaging::NotifyFilterSettingChange, CRetrieveMobilePhoneBroadcastIdList::RetrieveListL, RMobileBroadcastMessaging::GetFilterSetting, RMobileBroadcastMessaging::SetFilterSetting, CMobilePhoneBroadcastIdList::Enumerate, RMobileBroadcastMessaging::NotifyBroadcastIdListChange, RMobileBroadcastMessaging::StoreBroadcastIdListL, CMobilePhoneBroadcastIdList::AddRangeEntryL
+ * @SYMTestExpectedResults Pass - Filter setting and notification returned KErrNotSuppoerted and no value can be retrieved .
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify filter change notification completes with KErrNotSupported and no filter has been set.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+ RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging) ;
+
+ // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iModeCaps in set of KCapsGsmTpduFormat
+ RMobileBroadcastMessaging::TMobileBroadcastCapsV1 caps;
+ RMobileBroadcastMessaging::TMobileBroadcastCapsV1Pckg capPkg(caps);
+ CHECK_EQUALS_L(broadcastMessaging.GetCaps(capPkg), KErrNone, _L("RMobileBroadcastMessaging::GetCaps returned with an error"));
+ CHECK_BITS_SET_L(caps.iModeCaps, RMobileBroadcastMessaging::KCapsGsmTpduFormat, KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Mode caps"));
+
+ // Registered with the network
+ TInt ret = iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
+ CHECK_EQUALS_L(ret, KErrNone,
+ _L("RMobilePhone::NotifyNetworkRegistrationStatusChange network registration failed"));
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ // === Set broadcast ID filter ===
+
+ // Create a CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
+ CMobilePhoneBroadcastIdList* broadcastIdList= CMobilePhoneBroadcastIdList::NewL();
+ CleanupStack::PushL(broadcastIdList);
+
+ // Add an entry to the list with CMobilePhoneBroadcastIdList::AddRangeEntryL with aStart.iId=1 and aEnd.iId=100
+ RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry;
+ idEntry.iId = 1;
+ RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry2;
+ idEntry2.iId = 100;
+ broadcastIdList->AddRangeEntryL(idEntry, idEntry2);
+
+ // Post a notification RMobileBroadcastMessaging::NotifyBroadcastIdListChange
+ TExtEtelRequestStatus notifyBroadcastIdListChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyIdListChange);
+ CleanupStack::PushL(notifyBroadcastIdListChangeStatus);
+ broadcastMessaging.NotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus);
+
+ // This is deliberate action to open a session because the API in Etelmm allocates memory
+ // The Session Manager should be used in all other places.
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ RMobileBroadcastMessaging broadcastMessagingStore;
+ broadcastMessagingStore.Open(phone);
+
+ // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with KErrNotSupported having aIdType=EGsmBroadcastId
+ RMobileBroadcastMessaging::TMobileBroadcastIdType idType=RMobileBroadcastMessaging::EGsmBroadcastId;
+ TExtEtelRequestStatus storeBroadcastIdList(broadcastMessaging, EMobileBroadcastMessagingStoreIdList);
+ CleanupStack::PushL(storeBroadcastIdList);
+ broadcastMessagingStore.StoreBroadcastIdListL(storeBroadcastIdList,broadcastIdList,idType);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(storeBroadcastIdList, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL timed out"));
+ ASSERT_EQUALS(storeBroadcastIdList.Int(), KErrNotSupported, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL did not return KErrNotSupported"));
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d </font>"), 10028);
+ broadcastMessagingStore.Close();
+
+ // Check RMobileBroadcastMessaging::NotifyBroadcastIdListChange completes with KErrNotSupported
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus, KErrNotSupported);
+
+ // === Get the broadcast ID filter ===
+
+ // Use helper class for CRetrieveMobilePhoneBroadcastIdList to retrieve the broadcast ID list.
+ TInt err;
+ CRetrieveMobilePhoneBroadcastIdListExec* broadcastIdListExec = CRetrieveMobilePhoneBroadcastIdListHelper::NewL(broadcastMessaging,idType);
+ CleanupStack::PushL(broadcastIdListExec);
+
+ // Get the CMobilePhoneBroadcastIdList list using the helper class function which will call CRetrieveMobilePhoneBroadcastIdList::RetrieveListL
+ CMobilePhoneBroadcastIdList* broadcastIdList2 = broadcastIdListExec ->DoGetList(err);
+ ASSERT_EQUALS(err, KErrNone, _L("CRetrieveMobilePhoneBroadcastIdList::RetrieveListL is not able to get the list"))
+
+ // Check CMobilePhoneBroadcastIdList::Enumerate returns 0
+ ASSERT_EQUALS(broadcastIdList2->Enumerate(),0 , _L("CMobilePhoneBroadcastIdList::Enumerate did not return an 99 as expected"));
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Pop:
+ // broadcastIdList
+ // notifyBroadcastIdListChangeStatus
+ // storeBroadcastIdList
+ // broadcastIdListExec
+ CleanupStack::PopAndDestroy(4, broadcastIdList);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestBroadcastMessaging0002::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestBroadcastMessaging0002");
+ }
+
+
+
+CCTSYIntegrationTestBroadcastMessaging0003::CCTSYIntegrationTestBroadcastMessaging0003(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0003::GetTestStepName());
+ }
+
+CCTSYIntegrationTestBroadcastMessaging0003::~CCTSYIntegrationTestBroadcastMessaging0003()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestBroadcastMessaging0003::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-BRMSG-0003
+ * @SYMFssID BA/CTSY/BRMSG-0003
+ * @SYMTestCaseDesc Receive cell broadcast with different filter settings.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobileBroadcastMessaging::NotifyFilterSettingChange, RMobileBroadcastMessaging::SetLanguageFilter, RMobileBroadcastMessaging::GetFilterSetting, RMobileBroadcastMessaging::SetFilterSetting, RMobileBroadcastMessaging::GetLanguageFilter, RMobileBroadcastMessaging::ReceiveMessage
+ * @SYMTestExpectedResults Pass - Broadcast messages that should not be filtered received. Messages that should be filtered not received.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/manual
+ *
+ * Reason for test: Verify cell broadcast message is received.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10072);
+ User::Leave(KErrNone);
+
+ RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging) ;
+
+
+ // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iFilterCaps in set of KCapsSimpleFilter
+ RMobileBroadcastMessaging::TMobileBroadcastCapsV1 caps;
+ RMobileBroadcastMessaging::TMobileBroadcastCapsV1Pckg capPkg(caps);
+ TUint32 expectedCaps = RMobileBroadcastMessaging::KCapsSimpleFilter;
+
+ CHECK_EQUALS_L(broadcastMessaging.GetCaps(capPkg), KErrNone, _L("RMobileBroadcastMessaging::GetCaps returned with an error"));
+ CHECK_BITS_SET_L(caps.iFilterCaps,expectedCaps ,KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Filter caps"));
+
+ // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iModeCaps in set of KCapsGsmTpduFormat
+ CHECK_BITS_SET_L(caps.iModeCaps, RMobileBroadcastMessaging::KCapsGsmTpduFormat, KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Mode caps"));
+
+ // Registered with the network
+ TInt ret = iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
+ CHECK_EQUALS_L(ret, KErrNone,
+ _L("RMobilePhone::NotifyNetworkRegistrationStatusChange network registration failed"));
+
+
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ // === Set the simple filter setting to accept all and receive a message ===
+
+ // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting;
+ TExtEtelRequestStatus notifyFilterSettingChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyFilterSettingChange);
+ CleanupStack::PushL(notifyFilterSettingChangeStatus);
+ broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
+
+ // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastAcceptAll
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting1 = RMobileBroadcastMessaging::EBroadcastAcceptAll;
+ TExtEtelRequestStatus setFilterSettingStatus(broadcastMessaging, EMobileBroadcastMessagingSetFilterSetting);
+ CleanupStack::PushL(setFilterSettingStatus);
+ broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting1);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
+ ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
+
+ // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastAcceptAll
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
+ broadcastMessaging,
+ notifyFilterSettingChangeStatus,
+ filterSetting,
+ filterSetting1,
+ KErrNone );
+
+ // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastAcceptAll
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSettingObtained;
+ ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
+ ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastAcceptAll, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptNone"))
+
+ // Call RMobileBroadcastMessaging::ReceiveMessage
+ RMobileBroadcastMessaging::TGsmBroadcastMessageData rxMsgData;
+ RMobileBroadcastMessaging::TMobileBroadcastAttributesV2 rxMsgAttributes;
+ RMobileBroadcastMessaging::TMobileBroadcastAttributesV2Pckg rxMsgAttributePackage(rxMsgAttributes);
+ TExtEtelRequestStatus receiveMessageStatus(broadcastMessaging, EMobileBroadcastMessagingReceiveMessage);
+ CleanupStack::PushL(receiveMessageStatus);
+ broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
+
+ // Simulated network sends a GSM formatted broadcast message.
+ TBuf<120> prompt(_L("Waiting for the CBM, notification of a directly delivered cell broadcast message from the network operator"));
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgData with length > 0 characters
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage timed out"));
+ ASSERT_EQUALS(receiveMessageStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage returned with an error"));
+ ASSERT_TRUE(rxMsgData.Length()>0, _L("RMobileBroadcastMessaging::ReceiveMessage did not complete with aMsgData with length > 0 characters"));
+
+ ASSERT_TRUE(AssertValidBroadcastMessage(rxMsgAttributes), _L("AssertValidBroadcastMessage returned with failure"));
+
+ // === Set the simple filter setting to accept none and receive a message ===
+
+ // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
+ broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10027);
+ CHECK_EQUALS_L(1, 2, _L("This test has been made to leave intentially. The purpose of this leave is to avoid the board crashing"));
+
+ // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastAcceptNone
+ filterSetting1 = RMobileBroadcastMessaging::EBroadcastAcceptNone;
+ broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting1);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
+ ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
+
+ // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastAcceptNone
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
+ broadcastMessaging,
+ notifyFilterSettingChangeStatus,
+ filterSetting,
+ filterSetting1,
+ KErrNone );
+
+ // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastAcceptNone
+ ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
+ ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastAcceptNone, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptNone"))
+
+ // Call RMobileBroadcastMessaging::ReceiveMessage
+ broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
+
+ // Simulated network sends a GSM formatted broadcast message.
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage is still pending 2 minutes after the message was sent
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeVeryLong),KErrTimedOut, _L("RMobileBroadcastMessaging::ReceiveMessage did not pend 2 mins after the message was sent"));
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Pop:
+ // notifyFilterSettingChangeStatus
+ // setFilterSettingStatus
+ // receiveMessageStatus
+
+ CleanupStack::PopAndDestroy(3,¬ifyFilterSettingChangeStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestBroadcastMessaging0003::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestBroadcastMessaging0003");
+ }
+
+
+
+CCTSYIntegrationTestBroadcastMessaging0004::CCTSYIntegrationTestBroadcastMessaging0004(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0004::GetTestStepName());
+ }
+
+CCTSYIntegrationTestBroadcastMessaging0004::~CCTSYIntegrationTestBroadcastMessaging0004()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestBroadcastMessaging0004::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-BRMSG-0004
+ * @SYMFssID BA/CTSY/BRMSG-0004
+ * @SYMTestCaseDesc Receive broadcast messages when ID filter has been defined but filter is set to accept all messages.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobileBroadcastMessaging::GetFilterSetting, RMobileBroadcastMessaging::SetFilterSetting, RMobileBroadcastMessaging::ReceiveMessage, RMobileBroadcastMessaging::NotifyBroadcastIdListChange, RMobileBroadcastMessaging::StoreBroadcastIdListL, CMobilePhoneBroadcastIdList::AddRangeEntryL
+ * @SYMTestExpectedResults Pass - All broadcast messages received when filter is set to accept all.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/manual
+ *
+ * Reason for test: Verify all messages received.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10073);
+ User::Leave(KErrNone);
+
+
+ RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging) ;
+
+ // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iFilterCaps in set of KCapsSimpleFilter
+ RMobileBroadcastMessaging::TMobileBroadcastCapsV1 caps;
+ RMobileBroadcastMessaging::TMobileBroadcastCapsV1Pckg capPkg(caps);
+ TUint32 expectedCaps = RMobileBroadcastMessaging::KCapsSimpleFilter;
+
+ CHECK_EQUALS_L(broadcastMessaging.GetCaps(capPkg), KErrNone, _L("RMobileBroadcastMessaging::GetCaps returned with an error"));
+ CHECK_BITS_SET_L(caps.iFilterCaps,expectedCaps ,KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Filter caps"));
+
+ // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iModeCaps in set of KCapsGsmTpduFormat
+ CHECK_BITS_SET_L(caps.iModeCaps, RMobileBroadcastMessaging::KCapsGsmTpduFormat, KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Mode caps"));
+
+ // Registered with the network
+ TInt ret = iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
+ CHECK_EQUALS_L(ret, KErrNone,
+ _L("RMobilePhone::NotifyNetworkRegistrationStatusChange network registration failed"));
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Set broadcast ID filter ===
+
+ // Create a new CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
+ CMobilePhoneBroadcastIdList* broadcastIdList= CMobilePhoneBroadcastIdList::NewL();
+ CleanupStack::PushL(broadcastIdList);
+
+ // Add an entry to the list with CMobilePhoneBroadcastIdList::AddRangeEntryL with aStart.iId=1 and aEnd.iId=100
+ RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry;
+ idEntry.iId = 1;
+ RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry2;
+ idEntry2.iId = 100;
+ broadcastIdList->AddRangeEntryL(idEntry, idEntry2);
+
+ // Post a notification RMobileBroadcastMessaging::NotifyBroadcastIdListChange
+ TExtEtelRequestStatus notifyBroadcastIdListChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyIdListChange);
+ CleanupStack::PushL(notifyBroadcastIdListChangeStatus);
+ broadcastMessaging.NotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus);
+
+ // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with aIdType=EGsmBroadcastId
+ RMobileBroadcastMessaging::TMobileBroadcastIdType idType=RMobileBroadcastMessaging::EGsmBroadcastId;
+ TExtEtelRequestStatus storeBroadcastIdList(broadcastMessaging, EMobileBroadcastMessagingStoreIdList);
+ CleanupStack::PushL(storeBroadcastIdList);
+ broadcastMessaging.StoreBroadcastIdListL(storeBroadcastIdList,broadcastIdList,idType);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(storeBroadcastIdList, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL timed out"));
+ ASSERT_EQUALS(storeBroadcastIdList.Int(), KErrNotSupported, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL did not return KErrNotSupported"));
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10028);
+
+ // Check RMobileBroadcastMessaging::NotifyBroadcastIdListChange completes with KRequestPending
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus, KRequestPending );
+
+ // === Set filter to accept all messages and receive a message within and out of the ID range ===
+
+ // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting;
+ TExtEtelRequestStatus notifyFilterSettingChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyFilterSettingChange);
+ CleanupStack::PushL(notifyFilterSettingChangeStatus);
+ broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
+
+ // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastAcceptAll
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting1 = RMobileBroadcastMessaging::EBroadcastAcceptAll;
+ TExtEtelRequestStatus setFilterSettingStatus(broadcastMessaging, EMobileBroadcastMessagingSetFilterSetting);
+ CleanupStack::PushL(setFilterSettingStatus);
+ broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting1);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
+ ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
+
+ // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastAcceptAll
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
+ broadcastMessaging,
+ notifyFilterSettingChangeStatus,
+ filterSetting,
+ filterSetting1,
+ KErrNone );
+
+ // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastAcceptAll
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSettingObtained;
+ ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
+ ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastAcceptAll, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptNone"))
+
+ // Call RMobileBroadcastMessaging::ReceiveMessage
+ RMobileBroadcastMessaging::TGsmBroadcastMessageData rxMsgData;
+ RMobileBroadcastMessaging::TMobileBroadcastAttributesV2 rxMsgAttributes;
+ RMobileBroadcastMessaging::TMobileBroadcastAttributesV2Pckg rxMsgAttributePackage(rxMsgAttributes);
+ TExtEtelRequestStatus receiveMessageStatus(broadcastMessaging, EMobileBroadcastMessagingReceiveMessage);
+ CleanupStack::PushL(receiveMessageStatus);
+ broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
+
+ // Simulator sends a broadcast message with an ID = 1
+ TBuf<110> prompt(_L("Waiting for the CBM, notification of a directly delivered cell broadcast message from the network operator"));
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgData with length > 0 characters
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage timed out"));
+ ASSERT_EQUALS(receiveMessageStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage returned with an error"));
+ ASSERT_TRUE(rxMsgData.Length()>0, _L("RMobileBroadcastMessaging::ReceiveMessage did not complete with aMsgData with length > 0 characters"));
+
+ ASSERT_TRUE(AssertValidBroadcastMessage(rxMsgAttributes), _L("AssertValidBroadcastMessage returned with failure"));
+
+ // Call RMobileBroadcastMessaging::ReceiveMessage
+ broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
+
+ // Simulator sends a broadcast message with an ID = 50
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgData with length > 0 characters
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage timed out"));
+ ASSERT_EQUALS(receiveMessageStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage returned with an error"));
+ ASSERT_TRUE(rxMsgData.Length()>0, _L("RMobileBroadcastMessaging::ReceiveMessage did not complete with aMsgData with length > 0 characters"));
+
+ ASSERT_TRUE(AssertValidBroadcastMessage(rxMsgAttributes), _L("AssertValidBroadcastMessage returned with failure"));
+
+ // Call RMobileBroadcastMessaging::ReceiveMessage
+ broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
+
+ // Simulator sends a broadcast message with an ID = 99
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgData with length > 0 characters
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage timed out"));
+ ASSERT_EQUALS(receiveMessageStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage returned with an error"));
+ ASSERT_TRUE(rxMsgData.Length()>0, _L("RMobileBroadcastMessaging::ReceiveMessage did not complete with aMsgData with length > 0 characters"));
+
+ ASSERT_TRUE(AssertValidBroadcastMessage(rxMsgAttributes), _L("AssertValidBroadcastMessage returned with failure"));
+ // === Should also receive messages outside of the range ===
+
+ // Call RMobileBroadcastMessaging::ReceiveMessage
+ broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
+
+ // Simulator sends a broadcast message with an ID = 100.
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgData with length > 0 characters
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage timed out"));
+ ASSERT_EQUALS(receiveMessageStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage returned with an error"));
+ ASSERT_TRUE(rxMsgData.Length()>0, _L("RMobileBroadcastMessaging::ReceiveMessage did not complete with aMsgData with length > 0 characters"));
+
+ ASSERT_TRUE(AssertValidBroadcastMessage(rxMsgAttributes), _L("AssertValidBroadcastMessage returned with failure"));
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Pop:
+ // broadcastIdList
+ // notifyBroadcastIdListChangeStatus
+ // storeBroadcastIdList
+ // notifyFilterSettingChangeStatus
+ // setFilterSettingStatus
+ // receiveMessageStatus
+ CleanupStack::PopAndDestroy(6,broadcastIdList);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestBroadcastMessaging0004::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestBroadcastMessaging0004");
+ }
+
+
+
+CCTSYIntegrationTestBroadcastMessaging0005::CCTSYIntegrationTestBroadcastMessaging0005(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0005::GetTestStepName());
+ }
+
+CCTSYIntegrationTestBroadcastMessaging0005::~CCTSYIntegrationTestBroadcastMessaging0005()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestBroadcastMessaging0005::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-BRMSG-0005
+ * @SYMFssID BA/CTSY/BRMSG-0005
+ * @SYMTestCaseDesc Receive broadcast messages when ID filter has been defined and filter is set to accept filter.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobileBroadcastMessaging::GetFilterSetting, RMobileBroadcastMessaging::SetFilterSetting, RMobileBroadcastMessaging::ReceiveMessage, RMobileBroadcastMessaging::NotifyBroadcastIdListChange, RMobileBroadcastMessaging::StoreBroadcastIdListL, CMobilePhoneBroadcastIdList::AddRangeEntryL
+ * @SYMTestExpectedResults Pass - Only messages within the filter range are accepted.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/manual
+ *
+ * Reason for test: Verify messages with an ID within the filter range are accepted.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10074);
+ User::Leave(KErrNone);
+
+
+
+
+ RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging) ;
+
+ // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iFilterCaps in set of KCapsSimpleFilter
+ RMobileBroadcastMessaging::TMobileBroadcastCapsV1 caps;
+ RMobileBroadcastMessaging::TMobileBroadcastCapsV1Pckg capPkg(caps);
+ TUint32 expectedCaps = RMobileBroadcastMessaging::KCapsSimpleFilter;
+
+ CHECK_EQUALS_L(broadcastMessaging.GetCaps(capPkg), KErrNone, _L("RMobileBroadcastMessaging::GetCaps returned with an error"));
+ CHECK_BITS_SET_L(caps.iFilterCaps,expectedCaps ,KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Filter caps"));
+
+ // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iModeCaps in set of KCapsGsmTpduFormat
+ CHECK_BITS_SET_L(caps.iModeCaps, RMobileBroadcastMessaging::KCapsGsmTpduFormat, KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Mode caps"));
+
+ // Registered with the network
+ TInt ret = iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
+ CHECK_EQUALS_L(ret, KErrNone,
+ _L("RMobilePhone::NotifyNetworkRegistrationStatusChange network registration failed"));
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Set broadcast ID filter ===
+
+ // Create a new CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
+ CMobilePhoneBroadcastIdList* broadcastIdList= CMobilePhoneBroadcastIdList::NewL();
+ CleanupStack::PushL(broadcastIdList);
+
+ // Add an entry to the list with CMobilePhoneBroadcastIdList::AddRangeEntryL with aStart.iId=1 and aEnd.iId=100
+ RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry;
+ idEntry.iId = 1;
+ RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry2;
+ idEntry2.iId = 100;
+ broadcastIdList->AddRangeEntryL(idEntry, idEntry2);
+
+ // Post a notification RMobileBroadcastMessaging::NotifyBroadcastIdListChange
+ TExtEtelRequestStatus notifyBroadcastIdListChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyIdListChange);
+ CleanupStack::PushL(notifyBroadcastIdListChangeStatus);
+ broadcastMessaging.NotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus);
+
+ // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with aIdType=EGsmBroadcastId
+ RMobileBroadcastMessaging::TMobileBroadcastIdType idType=RMobileBroadcastMessaging::EGsmBroadcastId;
+ TExtEtelRequestStatus storeBroadcastIdList(broadcastMessaging, EMobileBroadcastMessagingStoreIdList);
+ CleanupStack::PushL(storeBroadcastIdList);
+ broadcastMessaging.StoreBroadcastIdListL(storeBroadcastIdList,broadcastIdList,idType);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(storeBroadcastIdList, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL timed out"));
+ ASSERT_EQUALS(storeBroadcastIdList.Int(), KErrNotSupported, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL did not return KErrNotSupported"));
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10028);
+
+ // Check RMobileBroadcastMessaging::NotifyBroadcastIdListChange completes with KRequestPending
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus, KRequestPending );
+
+ // === Set filter to accept filter settings ===
+
+ // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting;
+ TExtEtelRequestStatus notifyFilterSettingChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyFilterSettingChange);
+ CleanupStack::PushL(notifyFilterSettingChangeStatus);
+ broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
+
+ // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastAcceptFilter
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting1 = RMobileBroadcastMessaging::EBroadcastAcceptFilter;
+ TExtEtelRequestStatus setFilterSettingStatus(broadcastMessaging, EMobileBroadcastMessagingSetFilterSetting);
+ CleanupStack::PushL(setFilterSettingStatus);
+ broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting1);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
+ ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
+
+ // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastAcceptFilter
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
+ broadcastMessaging,
+ notifyFilterSettingChangeStatus,
+ filterSetting,
+ filterSetting1,
+ KErrNone );
+
+ // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastAcceptFilter
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSettingObtained;
+ ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
+ ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastAcceptFilter, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptNone"))
+
+ // === Check messages with IDs in range are received ===
+
+ //Call RMobileBroadcastMessaging::ReceiveMessage
+ RMobileBroadcastMessaging::TGsmBroadcastMessageData rxMsgData;
+ RMobileBroadcastMessaging::TMobileBroadcastAttributesV2 rxMsgAttributes;
+ RMobileBroadcastMessaging::TMobileBroadcastAttributesV2Pckg rxMsgAttributePackage(rxMsgAttributes);
+ TExtEtelRequestStatus receiveMessageStatus(broadcastMessaging, EMobileBroadcastMessagingReceiveMessage);
+ CleanupStack::PushL(receiveMessageStatus);
+ broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
+
+ // Simulator sends a broadcast message with an ID = 1
+ TBuf<110> prompt(_L("Waiting for the CBM, notification of a directly delivered cell broadcast message from the network operator"));
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgData with length > 0 characters
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage timed out"));
+ ASSERT_EQUALS(receiveMessageStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage returned with an error"));
+ ASSERT_TRUE(rxMsgData.Length()>0, _L("RMobileBroadcastMessaging::ReceiveMessage did not complete with aMsgData with length > 0 characters"));
+
+ ASSERT_TRUE(AssertValidBroadcastMessage(rxMsgAttributes), _L("AssertValidBroadcastMessage returned with failure"));
+
+ // Call RMobileBroadcastMessaging::ReceiveMessage
+ broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
+
+ // Simulator sends a broadcast message with an ID = 50
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgData with length > 0 characters
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage timed out"));
+ ASSERT_EQUALS(receiveMessageStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage returned with an error"));
+ ASSERT_TRUE(rxMsgData.Length()>0, _L("RMobileBroadcastMessaging::ReceiveMessage did not complete with aMsgData with length > 0 characters"));
+
+ ASSERT_TRUE(AssertValidBroadcastMessage(rxMsgAttributes), _L("AssertValidBroadcastMessage returned with failure"));
+
+ // Call RMobileBroadcastMessaging::ReceiveMessage
+ broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
+
+ // Simulator sends a broadcast message with an ID = 99
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgData with length > 0 characters
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage timed out"));
+ ASSERT_EQUALS(receiveMessageStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage returned with an error"));
+ ASSERT_TRUE(rxMsgData.Length()>0, _L("RMobileBroadcastMessaging::ReceiveMessage did not complete with aMsgData with length > 0 characters"));
+
+ ASSERT_TRUE(AssertValidBroadcastMessage(rxMsgAttributes), _L("AssertValidBroadcastMessage returned with failure"));
+
+ // === Check messages not in range are not received ===
+
+ //Call RMobileBroadcastMessaging::ReceiveMessage
+ broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
+
+ // Simulator sends a broadcast message with an ID = 100.
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage is still pending 2 minutes after the message was sent
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeVeryLong),KErrTimedOut, _L("RMobileBroadcastMessaging::ReceiveMessage did not pend 2 mins after the message was sent"));
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Pop:
+ // broadcastIdList
+ // notifyBroadcastIdListChangeStatus
+ // storeBroadcastIdList
+ // notifyFilterSettingChangeStatus
+ // setFilterSettingStatus
+ // receiveMessageStatus
+
+ CleanupStack::PopAndDestroy(6, broadcastIdList);
+
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestBroadcastMessaging0005::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestBroadcastMessaging0005");
+ }
+
+
+
+CCTSYIntegrationTestBroadcastMessaging0006::CCTSYIntegrationTestBroadcastMessaging0006(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0006::GetTestStepName());
+ }
+
+CCTSYIntegrationTestBroadcastMessaging0006::~CCTSYIntegrationTestBroadcastMessaging0006()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestBroadcastMessaging0006::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-BRMSG-0006
+ * @SYMFssID BA/CTSY/BRMSG-0006
+ * @SYMTestCaseDesc Receive broadcast messages when ID filter has been defined and filter is set to reject filter.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobileBroadcastMessaging::GetFilterSetting, RMobileBroadcastMessaging::SetFilterSetting, RMobileBroadcastMessaging::ReceiveMessage, RMobileBroadcastMessaging::NotifyBroadcastIdListChange, RMobileBroadcastMessaging::StoreBroadcastIdListL, CMobilePhoneBroadcastIdList::AddRangeEntryL
+ * @SYMTestExpectedResults Pass - Messages within ID range are not received, messages outside of the range are received.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/manual
+ *
+ * Reason for test: Verify messages within the ID range are not received and messages outside the range are.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+ RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging) ;
+
+ // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iFilterCaps in set of KCapsSimpleFilter
+ RMobileBroadcastMessaging::TMobileBroadcastCapsV1 caps;
+ RMobileBroadcastMessaging::TMobileBroadcastCapsV1Pckg capPkg(caps);
+ TUint32 expectedCaps = RMobileBroadcastMessaging::KCapsSimpleFilter;
+
+ CHECK_EQUALS_L(broadcastMessaging.GetCaps(capPkg), KErrNone, _L("RMobileBroadcastMessaging::GetCaps returned with an error"));
+ CHECK_BITS_SET_L(caps.iFilterCaps,expectedCaps ,KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Filter caps"));
+
+ // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iModeCaps in set of KCapsGsmTpduFormat
+ CHECK_BITS_SET_L(caps.iModeCaps, RMobileBroadcastMessaging::KCapsGsmTpduFormat, KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Mode caps"));
+
+ // Registered with the network
+ TInt ret = iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
+ CHECK_EQUALS_L(ret, KErrNone,
+ _L("RMobilePhone::NotifyNetworkRegistrationStatusChange network registration failed"));
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Set broadcast ID filter ===
+
+ // Create a new CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
+ CMobilePhoneBroadcastIdList* broadcastIdList= CMobilePhoneBroadcastIdList::NewL();
+ CleanupStack::PushL(broadcastIdList);
+
+ // Add an entry to the list with CMobilePhoneBroadcastIdList::AddRangeEntryL with aStart.iId=1 and aEnd.iId=100
+ RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry;
+ idEntry.iId = 1;
+ RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry2;
+ idEntry2.iId = 100;
+ broadcastIdList->AddRangeEntryL(idEntry, idEntry2);
+
+ // Post a notification RMobileBroadcastMessaging::NotifyBroadcastIdListChange
+ TExtEtelRequestStatus notifyBroadcastIdListChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyIdListChange);
+ CleanupStack::PushL(notifyBroadcastIdListChangeStatus);
+ broadcastMessaging.NotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus);
+
+ // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with aIdType=EGsmBroadcastId
+ RMobileBroadcastMessaging::TMobileBroadcastIdType idType=RMobileBroadcastMessaging::EGsmBroadcastId;
+ TExtEtelRequestStatus storeBroadcastIdList(broadcastMessaging, EMobileBroadcastMessagingStoreIdList);
+ CleanupStack::PushL(storeBroadcastIdList);
+ broadcastMessaging.StoreBroadcastIdListL(storeBroadcastIdList,broadcastIdList,idType);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(storeBroadcastIdList, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL timed out"));
+ ASSERT_EQUALS(storeBroadcastIdList.Int(), KErrNotSupported, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL did not return KErrNotSupported"));
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10028);
+
+ // Check RMobileBroadcastMessaging::NotifyBroadcastIdListChange completes with KRequestPending
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus, KRequestPending );
+
+ // === Set filter to reject filter settings ===
+
+ // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting;
+ TExtEtelRequestStatus notifyFilterSettingChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyFilterSettingChange);
+ CleanupStack::PushL(notifyFilterSettingChangeStatus);
+ broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
+
+ // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastRejectFilter
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting1 = RMobileBroadcastMessaging::EBroadcastRejectFilter;
+ TExtEtelRequestStatus setFilterSettingStatus(broadcastMessaging, EMobileBroadcastMessagingSetFilterSetting);
+ CleanupStack::PushL(setFilterSettingStatus);
+ broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting1);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
+ ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
+
+ // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastRejectFilter
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
+ broadcastMessaging,
+ notifyFilterSettingChangeStatus,
+ filterSetting,
+ filterSetting1,
+ KErrNone );
+
+ // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastRejectFilter
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSettingObtained;
+ ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
+ ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastRejectFilter, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptNone"))
+
+ // === Check messages with IDs in range are not received ===
+
+ // Call RMobileBroadcastMessaging::ReceiveMessage
+ RMobileBroadcastMessaging::TGsmBroadcastMessageData rxMsgData;
+ RMobileBroadcastMessaging::TMobileBroadcastAttributesV2 rxMsgAttributes;
+ RMobileBroadcastMessaging::TMobileBroadcastAttributesV2Pckg rxMsgAttributePackage(rxMsgAttributes);
+ TExtEtelRequestStatus receiveMessageStatus(broadcastMessaging, EMobileBroadcastMessagingReceiveMessage);
+ CleanupStack::PushL(receiveMessageStatus);
+ broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
+
+ // Simulator sends a broadcast message with an ID = 1
+ TBuf<110> prompt(_L("Waiting for the CBM, notification of a directly delivered cell broadcast message from the network operator"));
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage is still pending 2 minutes after the message was sent
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeVeryLong),KErrTimedOut, _L("RMobileBroadcastMessaging::ReceiveMessage did not pend 2 mins after the message was sent"));
+
+ // Call RMobileBroadcastMessaging::ReceiveMessage
+ broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
+
+ // Simulator sends a broadcast message with an ID = 50
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage is still pending 2 minutes after the message was sent
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeVeryLong),KErrTimedOut, _L("RMobileBroadcastMessaging::ReceiveMessage did not pend 2 mins after the message was sent"));
+
+ // Call RMobileBroadcastMessaging::ReceiveMessage
+ broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
+
+ // Simulator sends a broadcast message with an ID = 99
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage is still pending 2 minutes after the message was sent
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeVeryLong),KErrTimedOut, _L("RMobileBroadcastMessaging::ReceiveMessage did not pend 2 mins after the message was sent"));
+
+ // === Check messages not in range are received ===
+
+ // Call RMobileBroadcastMessaging::ReceiveMessage
+ broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
+
+ // Simulator sends a broadcast message with an ID = 100.
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgData with length > 0 characters
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage timed out"));
+ ASSERT_EQUALS(receiveMessageStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage returned with an error"));
+ ASSERT_TRUE(rxMsgData.Length()>0, _L("RMobileBroadcastMessaging::ReceiveMessage did not complete with aMsgData with length > 0 characters"));
+
+ ASSERT_TRUE(AssertValidBroadcastMessage(rxMsgAttributes), _L("AssertValidBroadcastMessage returned with failure"));
+
+ // Call RMobileBroadcastMessaging::ReceiveMessage
+ broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
+
+ // Simulator sends a broadcast message with an ID = 0.
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage completes with aMsgData with length > 0 characters
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage timed out"));
+ ASSERT_EQUALS(receiveMessageStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::ReceiveMessage returned with an error"));
+ ASSERT_TRUE(rxMsgData.Length()>0, _L("RMobileBroadcastMessaging::ReceiveMessage did not complete with aMsgData with length > 0 characters"));
+
+ ASSERT_TRUE(AssertValidBroadcastMessage(rxMsgAttributes), _L("AssertValidBroadcastMessage returned with failure"));
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Pop:
+ // broadcastIdList
+ // notifyBroadcastIdListChangeStatus
+ // storeBroadcastIdList
+ // notifyFilterSettingChangeStatus
+ // setFilterSettingStatus
+ // receiveMessageStatus
+ CleanupStack::PopAndDestroy(6,broadcastIdList);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestBroadcastMessaging0006::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestBroadcastMessaging0006");
+ }
+
+
+
+CCTSYIntegrationTestBroadcastMessaging0007::CCTSYIntegrationTestBroadcastMessaging0007(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0007::GetTestStepName());
+ }
+
+CCTSYIntegrationTestBroadcastMessaging0007::~CCTSYIntegrationTestBroadcastMessaging0007()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestBroadcastMessaging0007::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-BRMSG-0007
+ * @SYMFssID BA/CTSY/BRMSG-0007
+ * @SYMTestCaseDesc Receive broadcast messages when ID filter has been defined and fliter is set to reject all messages.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobileBroadcastMessaging::GetFilterSetting, RMobileBroadcastMessaging::SetFilterSetting, RMobileBroadcastMessaging::ReceiveMessage, RMobileBroadcastMessaging::NotifyBroadcastIdListChange, RMobileBroadcastMessaging::StoreBroadcastIdListL, CMobilePhoneBroadcastIdList::AddRangeEntryL
+ * @SYMTestExpectedResults Pass - No messages received.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/manual
+ *
+ * Reason for test: Verify no messages are received.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging) ;
+
+ // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iFilterCaps in set of KCapsSimpleFilter
+ RMobileBroadcastMessaging::TMobileBroadcastCapsV1 caps;
+ RMobileBroadcastMessaging::TMobileBroadcastCapsV1Pckg capPkg(caps);
+ TUint32 expectedCaps = RMobileBroadcastMessaging::KCapsSimpleFilter;
+
+ CHECK_EQUALS_L(broadcastMessaging.GetCaps(capPkg), KErrNone, _L("RMobileBroadcastMessaging::GetCaps returned with an error"));
+ CHECK_BITS_SET_L(caps.iFilterCaps,expectedCaps ,KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Filter caps"));
+
+ // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iModeCaps in set of KCapsGsmTpduFormat
+ CHECK_BITS_SET_L(caps.iModeCaps, RMobileBroadcastMessaging::KCapsGsmTpduFormat, KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Mode caps"));
+
+ // Registered with the network
+ TInt ret = iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
+ CHECK_EQUALS_L(ret, KErrNone,
+ _L("RMobilePhone::NotifyNetworkRegistrationStatusChange network registration failed"));
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ // === Set broadcast ID filter ===
+
+ // Create a new CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
+ CMobilePhoneBroadcastIdList* broadcastIdList= CMobilePhoneBroadcastIdList::NewL();
+ CleanupStack::PushL(broadcastIdList);
+
+ // Add an entry to the list with CMobilePhoneBroadcastIdList::AddRangeEntryL with aStart.iId=1 and aEnd.iId=100
+ RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry;
+ idEntry.iId = 1;
+ RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry2;
+ idEntry2.iId = 100;
+ broadcastIdList->AddRangeEntryL(idEntry, idEntry2);
+
+ // Post a notification RMobileBroadcastMessaging::NotifyBroadcastIdListChange
+ TExtEtelRequestStatus notifyBroadcastIdListChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyIdListChange);
+ CleanupStack::PushL(notifyBroadcastIdListChangeStatus);
+ broadcastMessaging.NotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus);
+
+ // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with aIdType=EGsmBroadcastId
+ RMobileBroadcastMessaging::TMobileBroadcastIdType idType=RMobileBroadcastMessaging::EGsmBroadcastId;
+ TExtEtelRequestStatus storeBroadcastIdList(broadcastMessaging, EMobileBroadcastMessagingStoreIdList);
+ CleanupStack::PushL(storeBroadcastIdList);
+ broadcastMessaging.StoreBroadcastIdListL(storeBroadcastIdList,broadcastIdList,idType);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(storeBroadcastIdList, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL timed out"));
+ ASSERT_EQUALS(storeBroadcastIdList.Int(), KErrNotSupported, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL did not return KErrNotSupported"));
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10028);
+
+ // Check RMobileBroadcastMessaging::NotifyBroadcastIdListChange completes with KRequestPending
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus, KRequestPending );
+
+ // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting;
+ TExtEtelRequestStatus notifyFilterSettingChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyFilterSettingChange);
+ CleanupStack::PushL(notifyFilterSettingChangeStatus);
+ broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
+
+ // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastAcceptNone
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting1 = RMobileBroadcastMessaging::EBroadcastAcceptNone;
+ TExtEtelRequestStatus setFilterSettingStatus(broadcastMessaging, EMobileBroadcastMessagingSetFilterSetting);
+ CleanupStack::PushL(setFilterSettingStatus);
+ broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting1);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
+ ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
+
+ // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastAcceptNone
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
+ broadcastMessaging,
+ notifyFilterSettingChangeStatus,
+ filterSetting,
+ filterSetting1,
+ KErrNone );
+
+ // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastAcceptNone
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSettingObtained;
+ ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
+ ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastAcceptNone, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptNone"))
+
+ // === Check messages with IDs in range are not received ===
+
+ // Call RMobileBroadcastMessaging::ReceiveMessage
+ RMobileBroadcastMessaging::TGsmBroadcastMessageData rxMsgData;
+ RMobileBroadcastMessaging::TMobileBroadcastAttributesV2 rxMsgAttributes;
+ RMobileBroadcastMessaging::TMobileBroadcastAttributesV2Pckg rxMsgAttributePackage(rxMsgAttributes);
+ TExtEtelRequestStatus receiveMessageStatus(broadcastMessaging, EMobileBroadcastMessagingReceiveMessage);
+ CleanupStack::PushL(receiveMessageStatus);
+ broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
+
+ // Simulator sends a broadcast message with an ID = 1
+ TBuf<110> prompt(_L("Waiting for the CBM, notification of a directly delivered cell broadcast message from the network operator"));
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage is still pending 2 minutes after the message was sent
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeVeryLong),KErrTimedOut, _L("RMobileBroadcastMessaging::ReceiveMessage did not pend 2 mins after the message was sent"));
+
+ // Call RMobileBroadcastMessaging::ReceiveMessage
+ broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
+
+ // Simulator sends a broadcast message with an ID = 50
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage is still pending 2 minutes after the message was sent
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeVeryLong),KErrTimedOut, _L("RMobileBroadcastMessaging::ReceiveMessage did not pend 2 mins after the message was sent"));
+
+ // Call RMobileBroadcastMessaging::ReceiveMessage
+ broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
+
+ // Simulator sends a broadcast message with an ID = 99
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage is still pending 2 minutes after the message was sent
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeVeryLong),KErrTimedOut, _L("RMobileBroadcastMessaging::ReceiveMessage did not pend 2 mins after the message was sent"));
+
+
+ // === Check messages not in range are not received ===
+
+ // Call RMobileBroadcastMessaging::ReceiveMessage
+ broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
+
+ // Simulator sends a broadcast message with an ID = 100.
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage is still pending 2 minutes after the message was sent
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeVeryLong),KErrTimedOut, _L("RMobileBroadcastMessaging::ReceiveMessage did not pend 2 mins after the message was sent"));
+
+ // Call RMobileBroadcastMessaging::ReceiveMessage
+ broadcastMessaging.ReceiveMessage(receiveMessageStatus, rxMsgData, rxMsgAttributePackage);
+
+ // Simulator sends a broadcast message with an ID = 0.
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobileBroadcastMessaging::ReceiveMessage is still pending 2 minutes after the message was sent
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(receiveMessageStatus, ETimeVeryLong),KErrTimedOut, _L("RMobileBroadcastMessaging::ReceiveMessage did not pend 2 mins after the message was sent"));
+
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Pop:
+ // broadcastIdList
+ // notifyBroadcastIdListChangeStatus
+ // storeBroadcastIdList
+ // notifyFilterSettingChangeStatus
+ // setFilterSettingStatus
+ // receiveMessageStatus
+ CleanupStack::PopAndDestroy(6,broadcastIdList);
+
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestBroadcastMessaging0007::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestBroadcastMessaging0007");
+ }
+
+
+
+CCTSYIntegrationTestBroadcastMessaging0008::CCTSYIntegrationTestBroadcastMessaging0008(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0008::GetTestStepName());
+ }
+
+CCTSYIntegrationTestBroadcastMessaging0008::~CCTSYIntegrationTestBroadcastMessaging0008()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestBroadcastMessaging0008::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-BRMSG-0008
+ * @SYMFssID BA/CTSY/BRMSG-0008
+ * @SYMTestCaseDesc Store a broadcast ID list with no IDs
+ * @SYMTestPriority High
+ * @SYMTestActions RMobileBroadcastMessaging::StoreBroadcastIdListL
+ * @SYMTestExpectedResults Pass - No entry is stored.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify list returns KErrNotSupported when stored.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging);
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ // Create a new CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
+ CMobilePhoneBroadcastIdList* broadcastIdList= CMobilePhoneBroadcastIdList::NewL();
+ CleanupStack::PushL(broadcastIdList);
+
+ // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with aIdType=EGsmBroadcastId
+ RMobileBroadcastMessaging::TMobileBroadcastIdType idType=RMobileBroadcastMessaging::EGsmBroadcastId;
+ TExtEtelRequestStatus storeBroadcastIdList(broadcastMessaging, EMobileBroadcastMessagingStoreIdList);
+ CleanupStack::PushL(storeBroadcastIdList);
+ broadcastMessaging.StoreBroadcastIdListL(storeBroadcastIdList,broadcastIdList,idType);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(storeBroadcastIdList, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL timed out"));
+
+ // Check RMobileBroadcastMessaging::StoreBroadcastIdListL returns KErrNotSupported
+ ASSERT_EQUALS(storeBroadcastIdList.Int(), KErrNotSupported, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL did not return KErrNotSupported"));
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10028);
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+ // Pop:
+ // broadcastIdList
+ // storeBroadcastIdList
+
+ CleanupStack::PopAndDestroy(2,broadcastIdList);
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestBroadcastMessaging0008::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestBroadcastMessaging0008");
+ }
+
+
+
+CCTSYIntegrationTestBroadcastMessaging0009::CCTSYIntegrationTestBroadcastMessaging0009(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0009::GetTestStepName());
+ }
+
+CCTSYIntegrationTestBroadcastMessaging0009::~CCTSYIntegrationTestBroadcastMessaging0009()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestBroadcastMessaging0009::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-BRMSG-0009
+ * @SYMFssID BA/CTSY/BRMSG-0009
+ * @SYMTestCaseDesc Store 999 IDs with broadcast ID list
+ * @SYMTestPriority High
+ * @SYMTestActions RMobileBroadcastMessaging::StoreBroadcastIdListL
+ * @SYMTestExpectedResults Pass - List is not stored.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify list can not be stored.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging);
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ // Create a new CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
+ CMobilePhoneBroadcastIdList* broadcastIdList= CMobilePhoneBroadcastIdList::NewL();
+ CleanupStack::PushL(broadcastIdList);
+
+ // Add an entry to the list with CMobilePhoneBroadcastIdList::AddRangeEntryL with aStart.iId=1 and aEnd.iId=1000
+ RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry;
+ idEntry.iId = 1;
+ RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry2;
+ idEntry2.iId = 1000;
+ broadcastIdList->AddRangeEntryL(idEntry, idEntry2);
+
+ // Post a notification RMobileBroadcastMessaging::NotifyBroadcastIdListChange
+ TExtEtelRequestStatus notifyBroadcastIdListChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyIdListChange);
+ CleanupStack::PushL(notifyBroadcastIdListChangeStatus);
+ broadcastMessaging.NotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus);
+
+ // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with aIdType=EGsmBroadcastId
+ RMobileBroadcastMessaging::TMobileBroadcastIdType idType=RMobileBroadcastMessaging::EGsmBroadcastId;
+ TExtEtelRequestStatus storeBroadcastIdList(broadcastMessaging, EMobileBroadcastMessagingStoreIdList);
+ CleanupStack::PushL(storeBroadcastIdList);
+ broadcastMessaging.StoreBroadcastIdListL(storeBroadcastIdList,broadcastIdList,idType);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(storeBroadcastIdList, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL timed out"));
+ ASSERT_EQUALS(storeBroadcastIdList.Int(), KErrNotSupported, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL did not return KErrNotSupported"));
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10028);
+
+ // Check RMobileBroadcastMessaging::NotifyBroadcastIdListChange completes with KErrNotSupported
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus, KErrNotSupported);
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Pop:
+ // broadcastIdList
+ // notifyBroadcastIdListChangeStatus
+ // storeBroadcastIdList
+
+ CleanupStack::PopAndDestroy(3,broadcastIdList);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestBroadcastMessaging0009::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestBroadcastMessaging0009");
+ }
+
+
+
+CCTSYIntegrationTestBroadcastMessaging0010::CCTSYIntegrationTestBroadcastMessaging0010(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0010::GetTestStepName());
+ }
+
+CCTSYIntegrationTestBroadcastMessaging0010::~CCTSYIntegrationTestBroadcastMessaging0010()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestBroadcastMessaging0010::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-BRMSG-0010
+ * @SYMFssID BA/CTSY/BRMSG-0010
+ * @SYMTestCaseDesc Store maximum number of broadcast IDs for the phone.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobileBroadcastMessaging::StoreBroadcastIdListL
+ * @SYMTestExpectedResults Pass - List is stored.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify list can be stored.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // Create a new CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
+
+ // Add an entry to the list with CMobilePhoneBroadcastIdList::AddRangeEntryL with aStart.iId=1 and aEnd.iId=X where X=maximum number of entries supported
+
+ // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with aIdType=EGsmBroadcastId
+
+ // Check RMobileBroadcastMessaging::NotifyBroadcastIdListChange completes with KErrNone
+
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestBroadcastMessaging0010::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestBroadcastMessaging0010");
+ }
+
+
+
+CCTSYIntegrationTestBroadcastMessaging0011::CCTSYIntegrationTestBroadcastMessaging0011(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0011::GetTestStepName());
+ }
+
+CCTSYIntegrationTestBroadcastMessaging0011::~CCTSYIntegrationTestBroadcastMessaging0011()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestBroadcastMessaging0011::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-BRMSG-0011
+ * @SYMFssID BA/CTSY/BRMSG-0011
+ * @SYMTestCaseDesc Store broadcast ID list with duplicate IDs
+ * @SYMTestPriority High
+ * @SYMTestActions RMobileBroadcastMessaging::StoreBroadcastIdListL
+ * @SYMTestExpectedResults Pass - List is not stored.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify list can not be stored.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging);
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ // Create a new CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
+ CMobilePhoneBroadcastIdList* broadcastIdList= CMobilePhoneBroadcastIdList::NewL();
+ CleanupStack::PushL(broadcastIdList);
+
+ // Add an entry to the list with CMobilePhoneBroadcastIdList::AddRangeEntryL with aStart.iId=1 and aEnd.iId=3
+ RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry;
+ idEntry.iId = 1;
+ RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry2;
+ idEntry2.iId = 3;
+ broadcastIdList->AddRangeEntryL(idEntry, idEntry2);
+
+ // Add another entry to the list with CMobilePhoneBroadcastIdList::AddRangeEntryL with aStart.iId=1 and aEnd.iId=3
+ broadcastIdList->AddRangeEntryL(idEntry, idEntry2);
+
+ // Post a notification RMobileBroadcastMessaging::NotifyBroadcastIdListChange
+ TExtEtelRequestStatus notifyBroadcastIdListChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyIdListChange);
+ CleanupStack::PushL(notifyBroadcastIdListChangeStatus);
+ broadcastMessaging.NotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus);
+
+ // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with aIdType=EGsmBroadcastId
+ RMobileBroadcastMessaging::TMobileBroadcastIdType idType=RMobileBroadcastMessaging::EGsmBroadcastId;
+ TExtEtelRequestStatus storeBroadcastIdList(broadcastMessaging, EMobileBroadcastMessagingStoreIdList);
+ CleanupStack::PushL(storeBroadcastIdList);
+ broadcastMessaging.StoreBroadcastIdListL(storeBroadcastIdList,broadcastIdList,idType);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(storeBroadcastIdList, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL timed out"));
+ ASSERT_EQUALS(storeBroadcastIdList.Int(), KErrNotSupported, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL did not return KErrNotSupported"));
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10028);
+
+ // Check RMobileBroadcastMessaging::NotifyBroadcastIdListChange completes with KErrNotSupported
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyBroadcastIdListChange(notifyBroadcastIdListChangeStatus, KErrNotSupported);
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Pop:
+ // broadcastIdList
+ // notifyBroadcastIdListChangeStatus
+ // storeBroadcastIdList
+ CleanupStack::PopAndDestroy(3, broadcastIdList);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestBroadcastMessaging0011::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestBroadcastMessaging0011");
+ }
+
+
+
+CCTSYIntegrationTestBroadcastMessaging0012::CCTSYIntegrationTestBroadcastMessaging0012(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0012::GetTestStepName());
+ }
+
+CCTSYIntegrationTestBroadcastMessaging0012::~CCTSYIntegrationTestBroadcastMessaging0012()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestBroadcastMessaging0012::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-BRMSG-0012
+ * @SYMFssID BA/CTSY/BRMSG-0012
+ * @SYMTestCaseDesc Store and retrieve broadcast ID list.
+ * @SYMTestPriority High
+ * @SYMTestActions
+ * @SYMTestExpectedResults Pass - List retrieved is empty.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify store returned KErrNotSupported and retrieved an empty list.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+ RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging);
+
+ // Registered with the network
+ TInt ret = iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
+ CHECK_EQUALS_L(ret, KErrNone,
+ _L("RMobilePhone::NotifyNetworkRegistrationStatusChange network registration failed"));
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ // Create a new CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
+ CMobilePhoneBroadcastIdList* broadcastIdList= CMobilePhoneBroadcastIdList::NewL();
+ CleanupStack::PushL(broadcastIdList);
+
+ // Add an entry to the list with CMobilePhoneBroadcastIdList::AddRangeEntryL with aStart.iId=1 and aEnd.iId=4
+ RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry;
+ idEntry.iId = 1;
+ RMobileBroadcastMessaging::TMobileBroadcastIdEntryV1 idEntry2;
+ idEntry2.iId = 4;
+ broadcastIdList->AddRangeEntryL(idEntry, idEntry2);
+
+ // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with aIdType=EGsmBroadcastId
+ RMobileBroadcastMessaging::TMobileBroadcastIdType idType=RMobileBroadcastMessaging::EGsmBroadcastId;
+ TExtEtelRequestStatus storeBroadcastIdList(broadcastMessaging, EMobileBroadcastMessagingStoreIdList);
+ CleanupStack::PushL(storeBroadcastIdList);
+ broadcastMessaging.StoreBroadcastIdListL(storeBroadcastIdList,broadcastIdList,idType);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(storeBroadcastIdList, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL timed out"));
+
+ // Check store returned KErrNotSupported
+ ASSERT_EQUALS(storeBroadcastIdList.Int(), KErrNotSupported, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL did not return KErrNotSupported"));
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10028);
+
+ // Use Retrieval helper class to retrieve broadcast Id entries from the list
+ TInt err;
+ CRetrieveMobilePhoneBroadcastIdListExec* broadcastIdListExec = CRetrieveMobilePhoneBroadcastIdListHelper::NewL(broadcastMessaging,idType);
+ CleanupStack::PushL(broadcastIdListExec);
+ CMobilePhoneBroadcastIdList* broadcastIdList2 = broadcastIdListExec ->DoGetList(err);
+ ASSERT_EQUALS(err, KErrNone, _L("CRetrieveMobilePhoneBroadcastIdList::RetrieveListL is not able to get the list"))
+
+ // Check CMobilePhoneBroadcastIdList::Enumerate returns 0 entry
+ ASSERT_EQUALS(broadcastIdList2->Enumerate(), 0, _L("CMobilePhoneBroadcastIdList::Enumerate did not return an empty list"));
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Pop:
+ // broadcastIdList
+ // storeBroadcastIdList
+ // broadcastIdListExec
+ CleanupStack::PopAndDestroy(3, broadcastIdList);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestBroadcastMessaging0012::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestBroadcastMessaging0012");
+ }
+
+
+
+CCTSYIntegrationTestBroadcastMessaging0013::CCTSYIntegrationTestBroadcastMessaging0013(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0013::GetTestStepName());
+ }
+
+CCTSYIntegrationTestBroadcastMessaging0013::~CCTSYIntegrationTestBroadcastMessaging0013()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestBroadcastMessaging0013::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-BRMSG-0013
+ * @SYMFssID BA/CTSY/BRMSG-0013
+ * @SYMTestCaseDesc Store and retrieve an empty broadcast ID list.
+ * @SYMTestPriority High
+ * @SYMTestActions
+ * @SYMTestExpectedResults Pass - List retrieved is same as that stored.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify an empty list is retrieved.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+ RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging);
+
+ // Registered with the network
+ TInt ret = iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
+ CHECK_EQUALS_L(ret, KErrNone,
+ _L("RMobilePhone::NotifyNetworkRegistrationStatusChange network registration failed"));
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ // Create a new CMobilePhoneBroadcastIdList with CMobilePhoneBroadcastIdList ::NewL
+ CMobilePhoneBroadcastIdList* broadcastIdList= CMobilePhoneBroadcastIdList::NewL();
+ CleanupStack::PushL(broadcastIdList);
+
+ // This is deliberate action to open a session because the API in Etelmm allocates memory
+ // The Session Manager should be used in all other places.
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ RMobileBroadcastMessaging broadcastMessagingStore;
+ broadcastMessagingStore.Open(phone);
+
+ // Store the broadcast ID list with RMobileBroadcastMessaging::StoreBroadcastIdListL with aIdType=EGsmBroadcastId
+ RMobileBroadcastMessaging::TMobileBroadcastIdType idType=RMobileBroadcastMessaging::EGsmBroadcastId;
+ TExtEtelRequestStatus storeBroadcastIdList(broadcastMessaging, EMobileBroadcastMessagingStoreIdList);
+ CleanupStack::PushL(storeBroadcastIdList);
+ broadcastMessagingStore.StoreBroadcastIdListL(storeBroadcastIdList,broadcastIdList,idType);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(storeBroadcastIdList, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL timed out"));
+ ASSERT_EQUALS(storeBroadcastIdList.Int(), KErrNotSupported, _L("RMobileBroadcastMessaging::StoreBroadcastIdListL did not return KErrNotSupported"));
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10028);
+ broadcastMessagingStore.Close();
+
+ // Use Retrieval helper class to retrieve broadcast Id entries from the list
+ TInt err;
+ CRetrieveMobilePhoneBroadcastIdListExec* broadcastIdListExec = CRetrieveMobilePhoneBroadcastIdListHelper::NewL(broadcastMessaging,idType);
+ CleanupStack::PushL(broadcastIdListExec);
+ CMobilePhoneBroadcastIdList* broadcastIdList2 = broadcastIdListExec ->DoGetList(err);
+ ASSERT_EQUALS(err, KErrNone, _L("CRetrieveMobilePhoneBroadcastIdList::RetrieveListL is not able to get the list"))
+
+ // Check CMobilePhoneBroadcastIdList::Enumerate returns 0 entry
+ ASSERT_EQUALS(broadcastIdList2->Enumerate(), 0, _L("CMobilePhoneBroadcastIdList::Enumerate did not return an empty list"));
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+ // Pop:
+ // broadcastIdList
+ // storeBroadcastIdList
+ // broadcastIdListExec
+ CleanupStack::PopAndDestroy(3, broadcastIdList);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestBroadcastMessaging0013::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestBroadcastMessaging0013");
+ }
+
+CCTSYIntegrationTestBroadcastMessaging0014::CCTSYIntegrationTestBroadcastMessaging0014(CEtelSessionMgr& aEtelSessionMgr)
+: CCTSYIntegrationTestBroadcastMessagingBase(aEtelSessionMgr)
+/**
+* Constructor.
+*/
+{
+SetTestStepName(CCTSYIntegrationTestBroadcastMessaging0014::GetTestStepName());
+}
+
+CCTSYIntegrationTestBroadcastMessaging0014::~CCTSYIntegrationTestBroadcastMessaging0014()
+/**
+* Destructor.
+*/
+{
+}
+
+TVerdict CCTSYIntegrationTestBroadcastMessaging0014::doTestStepL()
+/**
+* @SYMTestCaseID BA-CTSY-INT-BRMSG-0014
+* @SYMFssID BA/CTSY/BRMSG-0014
+* @SYMTestCaseDesc Set the broadcast messaging Language filter.
+* @SYMTestPriority High
+* @SYMTestActions RMobileBroadcastMessaging::NotifyFilterSettingChange,RMobileBroadcastMessaging::GetFilterSetting, RMobileBroadcastMessaging::SetFilterSetting, RMobileBroadcastMessaging::SetLanguageFilter, RMobileBroadcastMessaging::GetLanguageFilter
+* @SYMTestExpectedResults Pass - Language filter notifications complete and are set correctly.
+* @SYMTestType CIT
+* @SYMTestCaseDependencies live/automatic
+*
+* Reason for test: Verify filter change notification completes and correct filter has been set.
+*
+* @return - TVerdict code
+*/
+ {
+
+ //
+ // SET UP
+ //
+ RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ RMobileBroadcastMessaging& broadcastMessaging = iEtelSessionMgr.GetBroadcastMessagingL(KMainServer, KMainPhone, KMainBroadcastMessaging) ;
+
+ // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iFilterCaps in set of KCapsSimpleFilter
+ RMobileBroadcastMessaging::TMobileBroadcastCapsV1 caps;
+ RMobileBroadcastMessaging::TMobileBroadcastCapsV1Pckg capPkg(caps);
+ TUint32 expectedCaps = RMobileBroadcastMessaging::KCapsSimpleFilter;
+
+ CHECK_EQUALS_L(broadcastMessaging.GetCaps(capPkg), KErrNone, _L("RMobileBroadcastMessaging::GetCaps returned with an error"));
+ CHECK_BITS_SET_L(caps.iFilterCaps,expectedCaps ,KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Filter caps"));
+
+ // Ensure RMobileBroadcastMessaging::GetCaps returns aCaps.iModeCaps in set of KCapsGsmTpduFormat
+ CHECK_BITS_SET_L(caps.iModeCaps, RMobileBroadcastMessaging::KCapsGsmTpduFormat, KNoUnwantedBits, _L("RMobileBroadcastMessaging::GetCaps did not return desired Mode caps"));
+
+ // Registered with the network
+ TInt ret = iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
+ CHECK_EQUALS_L(ret, KErrNone,
+ _L("RMobilePhone::NotifyNetworkRegistrationStatusChange network registration failed"));
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ // === Check no language filter is set, then set language filter for one language ===
+
+ // Check RMobileBroadcastMessaging::GetLanguageFilter completes with KErrNotFound
+ TBuf<10> langFilter;
+ TExtEtelRequestStatus getLanguageFilterStatus(broadcastMessaging, EMobileBroadcastMessagingGetLanguageFilter);
+ CleanupStack::PushL(getLanguageFilterStatus);
+ broadcastMessaging.GetLanguageFilter(getLanguageFilterStatus, langFilter);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getLanguageFilterStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::GetLanguageFilter timed out"));
+ ASSERT_EQUALS(getLanguageFilterStatus.Int(), KErrNotFound, _L("RMobileBroadcastMessaging::GetLanguageFilter returned with a language filtered unexpectedly"));
+
+ // Post a notification RMobileBroadcastMessaging::NotifyLanguageFilterChange
+ TBuf<1> langFilterSetting;
+ TExtEtelRequestStatus notifyLanguageFilterChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyLanguageFilterChange);
+ CleanupStack::PushL(notifyLanguageFilterChangeStatus);
+ broadcastMessaging.NotifyLanguageFilterChange(notifyLanguageFilterChangeStatus, langFilterSetting);
+
+ // Set the language filter with RMobileBroadcastMessaging::SetLanguageFilter and aLangFilter="\1" (English, see spec 03.38)
+ _LIT(KEnglish, "\1");
+ TBuf<1> filter(KEnglish);
+ TExtEtelRequestStatus setLanguageFilterStatus(broadcastMessaging, EMobileBroadcastMessagingSetLanguageFilter);
+ CleanupStack::PushL(setLanguageFilterStatus);
+ broadcastMessaging.SetLanguageFilter(setLanguageFilterStatus,filter);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setLanguageFilterStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetLanguageFilter timed out"));
+ ASSERT_EQUALS(setLanguageFilterStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetLanguageFilter returned with an error"));
+
+ // Check RMobileBroadcastMessaging::NotifyLanguageFilterChange completes with aLangFilter="\1"
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyLanguageFilterChange(
+ broadcastMessaging,
+ notifyLanguageFilterChangeStatus,
+ filter,
+ langFilterSetting,
+ KErrNone );
+
+ // Check RMobileBroadcastMessaging::GetLanguageFilter completes with aLangFilter="\1"
+ broadcastMessaging.GetLanguageFilter(getLanguageFilterStatus, langFilter);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getLanguageFilterStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::GetLanguageFilter timed out"));
+ ASSERT_EQUALS(getLanguageFilterStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::GetLanguageFilter returned with a language filtered unexpectedly"));
+ ASSERT_EQUALS_DES16(langFilter, filter, _L("RMobileBroadcastMessaging::GetLanguageFilter did not complete with a aLangFilter=KEnglish"));
+
+ // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting;
+ TExtEtelRequestStatus notifyFilterSettingChangeStatus(broadcastMessaging, EMobileBroadcastMessagingNotifyFilterSettingChange);
+ CleanupStack::PushL(notifyFilterSettingChangeStatus);
+ broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
+
+
+ // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastAcceptFilter
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSetting1 = RMobileBroadcastMessaging::EBroadcastAcceptFilter;
+ TExtEtelRequestStatus setFilterSettingStatus(broadcastMessaging, EMobileBroadcastMessagingSetFilterSetting);
+ CleanupStack::PushL(setFilterSettingStatus);
+ broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting1);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
+ ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
+
+ // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastAcceptFilter
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
+ broadcastMessaging,
+ notifyFilterSettingChangeStatus,
+ filterSetting,
+ filterSetting1,
+ KErrNone );
+
+ // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastAcceptFilter
+ RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter filterSettingObtained;
+ ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
+ ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastAcceptFilter, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptNone"))
+
+ // === Set language filter to filter for no languages ===
+
+ // Post a notification RMobileBroadcastMessaging::NotifyLanguageFilterChange
+ broadcastMessaging.NotifyLanguageFilterChange(notifyLanguageFilterChangeStatus, langFilterSetting);
+
+ // Set the language filter with RMobileBroadcastMessaging::SetLanguageFilter and aLangFilter=""
+ _LIT(KNone, "");
+ filter=KNone;
+ broadcastMessaging.SetLanguageFilter(setLanguageFilterStatus,filter);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setLanguageFilterStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetLanguageFilter timed out"));
+ ASSERT_EQUALS(setLanguageFilterStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetLanguageFilter returned with an error"));
+
+ // Check RMobileBroadcastMessaging::NotifyLanguageFilterChange completes with aLangFilter=""
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyLanguageFilterChange(
+ broadcastMessaging,
+ notifyLanguageFilterChangeStatus,
+ filter,
+ langFilterSetting,
+ KErrNone );
+
+ // Check RMobileBroadcastMessaging::GetLanguageFilter completes with KErrNotFound
+ broadcastMessaging.GetLanguageFilter(getLanguageFilterStatus, langFilter);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getLanguageFilterStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::GetLanguageFilter timed out"));
+ ASSERT_EQUALS(getLanguageFilterStatus.Int(), KErrNotFound, _L("RMobileBroadcastMessaging::GetLanguageFilter returned with a language filtered unexpectedly"));
+
+ // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
+ broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
+
+ // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastAcceptFilter
+ filterSetting1= RMobileBroadcastMessaging::EBroadcastAcceptFilter;
+ broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting1);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
+ ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
+
+ // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastAcceptFilter
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
+ broadcastMessaging,
+ notifyFilterSettingChangeStatus,
+ filterSetting,
+ filterSetting1,
+ KErrNone );
+
+ // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastAcceptFilter
+ ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
+ ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastAcceptFilter, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptNone"))
+
+ // === Check no language filter is set, then set language filter for more than one language ===
+
+ // Post a notification RMobileBroadcastMessaging::NotifyLanguageFilterChange
+ broadcastMessaging.NotifyLanguageFilterChange(notifyLanguageFilterChangeStatus, langFilterSetting);
+
+ // Set the language filter with RMobileBroadcastMessaging::SetLanguageFilter and aLangFilter="\7\1" (Danish + English, see spec 03.38)
+ _LIT(KMultipleLang, "\7\1");
+ filter=KMultipleLang;
+ broadcastMessaging.SetLanguageFilter(setLanguageFilterStatus,filter);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setLanguageFilterStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetLanguageFilter timed out"));
+ ASSERT_EQUALS(setLanguageFilterStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetLanguageFilter returned with an error"));
+
+ // Check RMobileBroadcastMessaging::NotifyLanguageFilterChange completes with aLangFilter="\7\1"
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyLanguageFilterChange(
+ broadcastMessaging,
+ notifyLanguageFilterChangeStatus,
+ filter,
+ langFilterSetting,
+ KErrNone );
+
+ // Check RMobileBroadcastMessaging::GetLanguageFilter completes with aLangFilter="\7\1"
+ broadcastMessaging.GetLanguageFilter(getLanguageFilterStatus, langFilter);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getLanguageFilterStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::GetLanguageFilter timed out"));
+ ASSERT_EQUALS(getLanguageFilterStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::GetLanguageFilter returned with a language filtered unexpectedly"));
+ ASSERT_EQUALS_DES16(langFilter, filter, _L("RMobileBroadcastMessaging::GetLanguageFilter did not complete with a aLangFilter=KEnglish"));
+
+ // Post a notification RMobileBroadcastMessaging::NotifyFilterSettingChange
+ broadcastMessaging.NotifyFilterSettingChange(notifyFilterSettingChangeStatus, filterSetting);
+
+ // Set the filter with RMobileBroadcastMessaging::SetFilterSetting and aSetting=EBroadcastAcceptFilter
+ filterSetting1= RMobileBroadcastMessaging::EBroadcastAcceptFilter;
+ broadcastMessaging.SetFilterSetting(setFilterSettingStatus, filterSetting1);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setFilterSettingStatus, ETimeMedium),KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting timed out"));
+ ASSERT_EQUALS(setFilterSettingStatus.Int(), KErrNone, _L("RMobileBroadcastMessaging::SetFilterSetting returned with an error"));
+
+ // Check RMobileBroadcastMessaging::NotifyFilterSettingChange completes with aSetting=EBroadcastAcceptFilter
+ iBroadcastMessagingTestHelper.WaitForMobileBroadcastMessagingNotifyFilterSettingChange(
+ broadcastMessaging,
+ notifyFilterSettingChangeStatus,
+ filterSetting,
+ filterSetting1,
+ KErrNone );
+
+ // Check RMobileBroadcastMessaging::GetFilterSetting returns aSetting=EBroadcastAcceptFilter
+ ASSERT_EQUALS(broadcastMessaging.GetFilterSetting(filterSettingObtained), KErrNone, _L("RMobileBroadcastMessaging::GetFilterSetting returned with an error"));
+ ASSERT_EQUALS(filterSettingObtained, RMobileBroadcastMessaging::EBroadcastAcceptFilter, _L("RMobileBroadcastMessaging::GetFilterSetting did not return EBroadcastAcceptNone"))
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Pop :
+ // getLanguageFilterStatus
+ // notifyLanguageFilterChangeStatus
+ // setLanguageFilterStatus
+ // notifyFilterSettingChangeStatus
+ // setFilterSettingStatus
+ CleanupStack::PopAndDestroy(5, &getLanguageFilterStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestBroadcastMessaging0014::GetTestStepName()
+/**
+* @return The test step name.
+*/
+ {
+ return _L("CCTSYIntegrationTestBroadcastMessaging0014");
+ }
+
+
+