telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestindicator.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
--- a/telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestindicator.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestindicator.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,475 +1,475 @@
-// 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 Indicator functional unit.
-// 
-//
-
-/**
- @internalTechnology
-*/
-
-#include "cctsyintegrationtestindicator.h"
-
-#include "cctsyinidata.h"
-
-#include "listretrievalhelpers.h"
-
-
-
-	
-CCTSYIntegrationTestIndicatorBase::CCTSYIntegrationTestIndicatorBase(CEtelSessionMgr& aEtelSessionMgr)
-	: CCTSYIntegrationTestSuiteStepBase(aEtelSessionMgr), iNetworkTestHelper(*this), iCallForwardingControlHelper(*this)
-/**
- * Constructor
- */
-	{
-	}
-
-CCTSYIntegrationTestIndicatorBase::~CCTSYIntegrationTestIndicatorBase()
-/*
- * Destructor
- */
-	{
-	}
-	
-
-CCTSYIntegrationTestIndicator0001::CCTSYIntegrationTestIndicator0001(CEtelSessionMgr& aEtelSessionMgr)
-	: CCTSYIntegrationTestIndicatorBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestIndicator0001::GetTestStepName());
-	}
-
-CCTSYIntegrationTestIndicator0001::~CCTSYIntegrationTestIndicator0001()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestIndicator0001::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-IND-0001
- * @SYMFssID BA/CTSY/IND-0001
- * @SYMTestCaseDesc Get the indicator caps.
- * @SYMTestPriority High
- * @SYMTestActions 
- * @SYMTestExpectedResults Pass - Correct caps returned.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify caps returned are correct.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
-	CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-	
-	//
-	// SET UP END
-	//
-	
-	StartTest();
-	
-	//
-	// TEST START
-	//
-	
-	// Check RMobilePhone::GetIndicatorCaps returns aActionCaps in set
-	// of RMobilePhone::KCapsGetIndicator | RMobilePhone::KCapsNotifyIndicatorChange
-	// and indicator caps in set of RMobilePhone::KIndChargerConnected | RMobilePhone::KIndNetworkAvailable |
-    // RMobilePhone::KIndCallInProgress
-
-	TUint32 actionCaps=0;
-	TUint32 indCaps=0;
-	ASSERT_EQUALS(mobilePhone.GetIndicatorCaps(actionCaps, indCaps), KErrNone, _L("RMobilePhone::GetIndicatorCaps returned an error"));
-	
-	TUint32 expectedServiceCaps = RMobilePhone::KCapsGetIndicator | RMobilePhone::KCapsNotifyIndicatorChange;
-	ASSERT_BITS_SET(actionCaps, expectedServiceCaps, KNoUnwantedBits, _L("RMobilePhone::GetIndicatorCaps returned wrong caps"));
-
-	expectedServiceCaps = RMobilePhone::KIndChargerConnected | RMobilePhone::KIndNetworkAvailable | RMobilePhone::KIndCallInProgress;
-	ASSERT_BITS_SET(indCaps, expectedServiceCaps, KNoUnwantedBits, _L("RMobilePhone::GetIndicatorCaps returned wrong caps"));
-
-	//
-	// TEST END
-	//
-
-    StartCleanup();
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestIndicator0001::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestIndicator0001");
-	}
-
-
-
-CCTSYIntegrationTestIndicator0002::CCTSYIntegrationTestIndicator0002(CEtelSessionMgr& aEtelSessionMgr)
-	: CCTSYIntegrationTestIndicatorBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestIndicator0002::GetTestStepName());
-	}
-
-CCTSYIntegrationTestIndicator0002::~CCTSYIntegrationTestIndicator0002()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestIndicator0002::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-IND-0002
- * @SYMFssID BA/CTSY/IND-0002
- * @SYMTestCaseDesc Get indicator when network is available and call is in progress
- * @SYMTestPriority High
- * @SYMTestActions RMobileCall::NotifyMobileCallStatusChange, RMobilePhone::GetIndicator, RMobilePhone::NotifyIndicatorChange, RCall::HangUp, RCall::Dial
- * @SYMTestExpectedResults Pass - Call indicator notification completes when call is made
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify correct indicator is returned and indicator notification completes.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-	
-	// Ensure RMobilePhone::GetIndicatorCaps returns aActionCaps in set of RMobilePhone::KCapsGetIndicator  | RMobilePhone::KCapsNotifyIndicatorChange
-	CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
-	TUint32 actionCaps = 0;
-	TUint32 indCaps = 0;
-	CHECK_EQUALS_L(mobilePhone.GetIndicatorCaps(actionCaps, indCaps), KErrNone, _L("RMobilePhone::GetIndicatorCaps return value is not KErrNone"));
-	TUint32 expectedServiceCaps = RMobilePhone::KCapsGetIndicator  | RMobilePhone::KCapsNotifyIndicatorChange;
-	CHECK_BITS_SET_L(actionCaps, expectedServiceCaps, KNoUnwantedBits, _L("RMobilePhone::GetIndicatorCaps returned wrong caps"));
-
-	// Ensure RMobilePhone::GetIndicatorCaps returns aIndCaps in set of RMobilePhone::KIndCallInProgress | RMobilePhone::KIndNetworkAvailable
-	expectedServiceCaps = RMobilePhone::KIndCallInProgress | RMobilePhone::KIndNetworkAvailable;
-	CHECK_BITS_SET_L(indCaps, expectedServiceCaps, KNoUnwantedBits, _L("RMobilePhone::GetIndicatorCaps returned wrong caps"));
-
-	// Ensure RMobilePhone::GetNetworkRegistrationStatus returns aStatus=ERegisteredOnHomeNetwork 
-	RMobilePhone::TMobilePhoneRegistrationStatus registrationStatus;
-	TExtEtelRequestStatus getNetworkRegistraionStatusStatus(mobilePhone,EMobilePhoneGetNetworkRegistrationStatus);
-	CleanupStack::PushL(getNetworkRegistraionStatusStatus);
-	mobilePhone.GetNetworkRegistrationStatus(getNetworkRegistraionStatusStatus, registrationStatus);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(getNetworkRegistraionStatusStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus timed out"));
-	CHECK_EQUALS_L(getNetworkRegistraionStatusStatus.Int(), KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned an error"));
-	CHECK_EQUALS_L(registrationStatus, RMobilePhone::ERegisteredOnHomeNetwork,_L("RMobilePhone::GetNetworkRegistrationStatus did not set the registration status to ERegisteredOnHomeNetwork"));
-	
-	// Get voice line 1.
-	RMobileLine& mobileLine= iEtelSessionMgr.GetLineL(KMainServer, KMainPhone, KVoiceLine);
-	
-	// Get call 1. 
-	RMobileCall& mobileCall= iEtelSessionMgr.GetCallL(KMainServer, KMainPhone, KVoiceLine, KCall1);	
-
-	//
-	// SET UP END
-	//
-	
-	StartTest();
-	
-	//
-	// TEST START
-	//
-
-	// Check RMobilePhone::GetIndicator returns aIndicator with flags in set of KIndNetworkAvailable
-	// Check RMobilePhone::GetIndicator returns aIndicator with flags NOT in set of KIndCallInProgress
-	TUint32 indicator=0;
-	TExtEtelRequestStatus getIndicatorStatus(mobilePhone,EMobilePhoneGetIndicator);
-	CleanupStack::PushL(getIndicatorStatus);
-
-	mobilePhone.GetIndicator(getIndicatorStatus, indicator);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(getIndicatorStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetIndicator timed out"));
-	ASSERT_EQUALS(getIndicatorStatus.Int(), KErrNone, _L("RMobilePhone::GetIndicator returned an error"));
-
-	expectedServiceCaps = RMobilePhone::KIndNetworkAvailable;
-	TUint32 unexpectServiceCaps = RMobilePhone::KIndCallInProgress;
-	ASSERT_BITS_SET(indicator, expectedServiceCaps, unexpectServiceCaps, _L("RMobilePhone::GetIndicator returned wrong caps"));
-	
-	// Post notifier for RMobileCall::NotifyMobileCallStatusChange
-	TExtEtelRequestStatus notifyMobileCallStatus(mobileCall, EMobileCallNotifyMobileCallStatusChange);
-	CleanupStack::PushL(notifyMobileCallStatus);
-	RMobileCall::TMobileCallStatus mobileCallStatus;
-	mobileCall.NotifyMobileCallStatusChange(notifyMobileCallStatus, mobileCallStatus);
-	
-	// Post notifier for RMobileCall::NotifyIndicatorChange
-	TExtEtelRequestStatus notifyIndicatorChangeStatus(mobilePhone, EMobilePhoneNotifyIndicatorChange);
-	CleanupStack::PushL(notifyIndicatorChangeStatus);
-	TUint32 notifyIndicatorChangeIndicator=0;
-	mobilePhone.NotifyIndicatorChange(notifyIndicatorChangeStatus, notifyIndicatorChangeIndicator);
-	
-	// ===  Dial a call ===
-
-	// Dial a number that answers using RCall::Dial
-	TPtrC outgoingnumber; 
-	ASSERT_TRUE(GetStringFromConfig(KIniVoiceNumSection, KIniVoiceNumber1, outgoingnumber) != EFalse, _L("GetStringFromConfig did not complete as expected"));
-	DEBUG_PRINTF2(_L("Board Now Dialling: %S"), &outgoingnumber);
-	TCoreEtelRequestStatus<RMobileCall> dialStatus(mobileCall, &RCall::DialCancel);
-	CleanupStack::PushL(dialStatus);
-	mobileCall.Dial(dialStatus, outgoingnumber);	
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(dialStatus, ETimeMedium), KErrNone, _L("RCall::Dial timed out"));
-	ASSERT_EQUALS(dialStatus.Int(), KErrNone, _L("RCall::Dial returned an error"));
-	
-	// Check RMobileCall::NotifyMobileCallStatusChange completes with EStatusDialling -> EStatusConnecting -> EStatusConnected.
-	RMobileCall::TMobileCallStatus expectedMobileCallStatus=RMobileCall::EStatusDialling;
-	iCallForwardingControlHelper.WaitForMobileCallNotifyMobileCallStatusChange(mobileCall,
-																			   notifyMobileCallStatus,
-																			   mobileCallStatus,
-																			   expectedMobileCallStatus,
-																			   KErrNone);
-	
-	mobileCall.NotifyMobileCallStatusChange(notifyMobileCallStatus, mobileCallStatus);
-	
-	expectedMobileCallStatus=RMobileCall::EStatusConnecting;
-	iCallForwardingControlHelper.WaitForMobileCallNotifyMobileCallStatusChange(mobileCall,
-																			   notifyMobileCallStatus,
-																			   mobileCallStatus,
-																			   expectedMobileCallStatus,
-																			   KErrNone);
-	
-	mobileCall.NotifyMobileCallStatusChange(notifyMobileCallStatus, mobileCallStatus);
-		
-	expectedMobileCallStatus=RMobileCall::EStatusConnected;
-	iCallForwardingControlHelper.WaitForMobileCallNotifyMobileCallStatusChange(mobileCall,
-																			   notifyMobileCallStatus,
-																			   mobileCallStatus,
-																			   expectedMobileCallStatus,
-																			   KErrNone);
-	
-	// Check RMobilePhone::NotifyIndicatorChange completes with aIndicator with flags in set of KIndCallInProgress | KIndNetworkAvailable
-	TUint32 expectedIndicator = RMobilePhone::KIndCallInProgress | RMobilePhone::KIndNetworkAvailable;
-	iCallForwardingControlHelper.WaitForMobilePhoneNotifyIndicatorChange(mobilePhone,
-																		 notifyIndicatorChangeStatus,
-																		 notifyIndicatorChangeIndicator, 
-																		 expectedIndicator,
-																		 KErrNone);
-	
-	mobilePhone.NotifyIndicatorChange(notifyIndicatorChangeStatus, notifyIndicatorChangeIndicator);
-	
-	// Check RMobilePhone::GetIndicator returns aIndicator with flags in set of KIndCallInProgress | KIndNetworkAvailable
-	mobilePhone.GetIndicator(getIndicatorStatus, indicator);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(getIndicatorStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetIndicator timed out"));
-	ASSERT_EQUALS(getIndicatorStatus.Int(), KErrNone, _L("RMobilePhone::GetIndicator returned an error"));
-
-	expectedServiceCaps = RMobilePhone::KIndCallInProgress | RMobilePhone::KIndNetworkAvailable;
-	CHECK_BITS_SET_L(indicator, expectedServiceCaps, KNoUnwantedBits, _L("RMobilePhone::GetIndicator returned wrong caps"));
-	
-	mobileCall.NotifyMobileCallStatusChange(notifyMobileCallStatus, mobileCallStatus);
-	
-	// Hang up call with RCall::HangUp
-	DEBUG_PRINTF1(_L("Hangup call"));
-	ASSERT_EQUALS(mobileCall.HangUp(), KErrNone, _L("RCall::HangUp return value not KErrNone"));
-	
-	// Check RCall::NotifyStatusChange completes with EStatusDisconnecting -> EStatusIdle
-	expectedMobileCallStatus=RMobileCall::EStatusDisconnecting;
-	iCallForwardingControlHelper.WaitForMobileCallNotifyMobileCallStatusChange(mobileCall,
-																			   notifyMobileCallStatus,
-																			   mobileCallStatus,
-																			   expectedMobileCallStatus,
-																			   KErrNone);
-
-	mobileCall.NotifyMobileCallStatusChange(notifyMobileCallStatus, mobileCallStatus);
-	
-	expectedMobileCallStatus=RMobileCall::EStatusIdle;
-	iCallForwardingControlHelper.WaitForMobileCallNotifyMobileCallStatusChange(mobileCall,
-																			   notifyMobileCallStatus,
-																			   mobileCallStatus,
-																			   expectedMobileCallStatus,
-																			   KErrNone);
-	
-	// Check RMobilePhone::NotifyIndicatorChange completes with aIndicator with flags in set of KIndNetworkAvailable
-	expectedIndicator = RMobilePhone::KIndNetworkAvailable;
-	iCallForwardingControlHelper.WaitForMobilePhoneNotifyIndicatorChange(mobilePhone,
-																		 notifyIndicatorChangeStatus,
-																		 notifyIndicatorChangeIndicator, 
-																		 expectedIndicator,
-																		 KErrNone);
-	
-	// Check RMobilePhone::GetIndicator returns aIndicator with flags NOT in set of KIndCallInProgress
-	mobilePhone.GetIndicator(getIndicatorStatus, indicator);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(getIndicatorStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetIndicator timed out"));
-	ASSERT_EQUALS(getIndicatorStatus.Int(), KErrNone, _L("RMobilePhone::GetIndicator returned an error"));
-
-	unexpectServiceCaps = RMobilePhone::KIndCallInProgress;
-	CHECK_BITS_SET_L(indicator, KNoUnwantedBits, unexpectServiceCaps, _L("RMobilePhone::GetIndicator returned wrong caps"));
-
-	//
-	// TEST END
-	//
-
-    StartCleanup();
-	
-	CleanupStack::PopAndDestroy(&dialStatus);
-	CleanupStack::PopAndDestroy(&notifyIndicatorChangeStatus);
-	CleanupStack::PopAndDestroy(&notifyMobileCallStatus);
-	CleanupStack::PopAndDestroy(&getIndicatorStatus);
-	CleanupStack::PopAndDestroy(&getNetworkRegistraionStatusStatus);
-		
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestIndicator0002::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestIndicator0002");
-	}
-
-
-
-CCTSYIntegrationTestIndicator0003::CCTSYIntegrationTestIndicator0003(CEtelSessionMgr& aEtelSessionMgr)
-	: CCTSYIntegrationTestIndicatorBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestIndicator0003::GetTestStepName());
-	}
-
-CCTSYIntegrationTestIndicator0003::~CCTSYIntegrationTestIndicator0003()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestIndicator0003::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-IND-0003
- * @SYMFssID BA/CTSY/IND-0003
- * @SYMTestCaseDesc Connect the phone charger
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhone::NotifyIndicatorChange
- * @SYMTestExpectedResults Pass - Indicator notification completes when charger is connected.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/manual
- *
- * Reason for test: Verify indicator notification completes
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-	
-	CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-	
-	// Check RMobilePhone::GetIndicatorCaps returns aActionCaps in set of RMobilePhone::KCapsGetIndicator | RMobilePhone::KCapsNotifyIndicatorChange
-	TUint32 actionCaps=0;
-	TUint32 indCaps=0;
-	ASSERT_EQUALS(mobilePhone.GetIndicatorCaps(actionCaps, indCaps), KErrNone, _L("RMobilePhone::GetIndicatorCaps returned an error"));
-	
-	TUint32 expectedServiceCaps = RMobilePhone::KCapsGetIndicator | RMobilePhone::KCapsNotifyIndicatorChange;
-	CHECK_BITS_SET_L(actionCaps, expectedServiceCaps, KNoUnwantedBits, _L("RMobilePhone::GetIndicatorCaps returned wrong caps"));
-
-	// Check RMobilePhone::GetIndicatorCaps returns aIndCaps in set of RMobilePhone::KIndChargerConnected
-	expectedServiceCaps = RMobilePhone::KIndChargerConnected;
-	CHECK_BITS_SET_L(indCaps, expectedServiceCaps, KNoUnwantedBits, _L("RMobilePhone::GetIndicatorCaps returned wrong caps"));
-
-	//
-	// SET UP END
-	//
-	
-	StartTest();
-	
-	//
-	// TEST START
-	//
-	
-	// Check RMobilePhone::GetIndicator returns aIndicator with flags NOT in  set of RMobilePhone::KIndChargerConnected
-	TUint32 indicator=0;
-	TExtEtelRequestStatus getIndicatorStatus(mobilePhone,EMobilePhoneGetIndicator);
-	CleanupStack::PushL(getIndicatorStatus);
-	
-	mobilePhone.GetIndicator(getIndicatorStatus, indicator);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(getIndicatorStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetIndicator timed out"));
-	ASSERT_EQUALS(getIndicatorStatus.Int(), KErrNone, _L("RMobilePhone::GetIndicator returned an error"));
-
-	TUint32 unexpectedIndicatorCaps = RMobilePhone::KIndChargerConnected;
-	ASSERT_BITS_SET(indicator, KNoUnwantedBits, unexpectedIndicatorCaps, _L("RMobilePhone::GetIndicator returned wrong caps"));
-	
-	// Post notifier for RMobileCall::NotifyIndicatorChange
-	TExtEtelRequestStatus notifyIndicatorChangeStatus(mobilePhone, EMobilePhoneNotifyIndicatorChange);
-	CleanupStack::PushL(notifyIndicatorChangeStatus);
-	TUint32 notifyIndicatorChangeIndicator=0;
-	mobilePhone.NotifyIndicatorChange(notifyIndicatorChangeStatus, notifyIndicatorChangeIndicator);
-	
-	// Connect the charger to the phone 
-	TBuf<50> prompt(_L("Connect the charger to the phone"));
-	DisplayUserInteractionPromptL(prompt); // 30 seconds
-	
-	// Check RMobilePhone::NotifyIndicatorChange completes with aIndicator with flags in set of RMobilePhone::KIndChargerConnected and RMobilePhone::KIndNetworkAvailable
-	TUint32 expectedIndicator = RMobilePhone::KIndChargerConnected | RMobilePhone::KIndNetworkAvailable;
-	iCallForwardingControlHelper.WaitForMobilePhoneNotifyIndicatorChange(mobilePhone,
-																		 notifyIndicatorChangeStatus,
-																		 notifyIndicatorChangeIndicator, 
-																		 expectedIndicator,
-																		 KErrNone);
-	
-	// Check RMobilePhone::GetIndicator returns aIndicator with flags in set of RMobilePhone::KIndChargerConnected
-	mobilePhone.GetIndicator(getIndicatorStatus, indicator);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(getIndicatorStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetIndicator timed out"));
-	ASSERT_EQUALS(getIndicatorStatus.Int(), KErrNone, _L("RMobilePhone::GetIndicator returned an error"));
-	
-	TUint32 expectedIndicatorCaps = RMobilePhone::KIndChargerConnected;
-	ASSERT_BITS_SET(indicator, expectedIndicatorCaps, KNoUnwantedBits, _L("RMobilePhone::GetIndicator returned wrong caps"));
-
-	//
-	// TEST END
-	//
-
-    StartCleanup();
-    
-	CleanupStack::PopAndDestroy(&notifyIndicatorChangeStatus);
-	CleanupStack::PopAndDestroy(&getIndicatorStatus);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestIndicator0003::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestIndicator0003");
-	}
-
+// 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 Indicator functional unit.
+// 
+//
+
+/**
+ @internalTechnology
+*/
+
+#include "cctsyintegrationtestindicator.h"
+
+#include "cctsyinidata.h"
+
+#include "listretrievalhelpers.h"
+
+
+
+	
+CCTSYIntegrationTestIndicatorBase::CCTSYIntegrationTestIndicatorBase(CEtelSessionMgr& aEtelSessionMgr)
+	: CCTSYIntegrationTestSuiteStepBase(aEtelSessionMgr), iNetworkTestHelper(*this), iCallForwardingControlHelper(*this)
+/**
+ * Constructor
+ */
+	{
+	}
+
+CCTSYIntegrationTestIndicatorBase::~CCTSYIntegrationTestIndicatorBase()
+/*
+ * Destructor
+ */
+	{
+	}
+	
+
+CCTSYIntegrationTestIndicator0001::CCTSYIntegrationTestIndicator0001(CEtelSessionMgr& aEtelSessionMgr)
+	: CCTSYIntegrationTestIndicatorBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestIndicator0001::GetTestStepName());
+	}
+
+CCTSYIntegrationTestIndicator0001::~CCTSYIntegrationTestIndicator0001()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestIndicator0001::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-IND-0001
+ * @SYMFssID BA/CTSY/IND-0001
+ * @SYMTestCaseDesc Get the indicator caps.
+ * @SYMTestPriority High
+ * @SYMTestActions 
+ * @SYMTestExpectedResults Pass - Correct caps returned.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify caps returned are correct.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+	CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+	
+	//
+	// SET UP END
+	//
+	
+	StartTest();
+	
+	//
+	// TEST START
+	//
+	
+	// Check RMobilePhone::GetIndicatorCaps returns aActionCaps in set
+	// of RMobilePhone::KCapsGetIndicator | RMobilePhone::KCapsNotifyIndicatorChange
+	// and indicator caps in set of RMobilePhone::KIndChargerConnected | RMobilePhone::KIndNetworkAvailable |
+    // RMobilePhone::KIndCallInProgress
+
+	TUint32 actionCaps=0;
+	TUint32 indCaps=0;
+	ASSERT_EQUALS(mobilePhone.GetIndicatorCaps(actionCaps, indCaps), KErrNone, _L("RMobilePhone::GetIndicatorCaps returned an error"));
+	
+	TUint32 expectedServiceCaps = RMobilePhone::KCapsGetIndicator | RMobilePhone::KCapsNotifyIndicatorChange;
+	ASSERT_BITS_SET(actionCaps, expectedServiceCaps, KNoUnwantedBits, _L("RMobilePhone::GetIndicatorCaps returned wrong caps"));
+
+	expectedServiceCaps = RMobilePhone::KIndChargerConnected | RMobilePhone::KIndNetworkAvailable | RMobilePhone::KIndCallInProgress;
+	ASSERT_BITS_SET(indCaps, expectedServiceCaps, KNoUnwantedBits, _L("RMobilePhone::GetIndicatorCaps returned wrong caps"));
+
+	//
+	// TEST END
+	//
+
+    StartCleanup();
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestIndicator0001::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestIndicator0001");
+	}
+
+
+
+CCTSYIntegrationTestIndicator0002::CCTSYIntegrationTestIndicator0002(CEtelSessionMgr& aEtelSessionMgr)
+	: CCTSYIntegrationTestIndicatorBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestIndicator0002::GetTestStepName());
+	}
+
+CCTSYIntegrationTestIndicator0002::~CCTSYIntegrationTestIndicator0002()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestIndicator0002::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-IND-0002
+ * @SYMFssID BA/CTSY/IND-0002
+ * @SYMTestCaseDesc Get indicator when network is available and call is in progress
+ * @SYMTestPriority High
+ * @SYMTestActions RMobileCall::NotifyMobileCallStatusChange, RMobilePhone::GetIndicator, RMobilePhone::NotifyIndicatorChange, RCall::HangUp, RCall::Dial
+ * @SYMTestExpectedResults Pass - Call indicator notification completes when call is made
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify correct indicator is returned and indicator notification completes.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+	
+	// Ensure RMobilePhone::GetIndicatorCaps returns aActionCaps in set of RMobilePhone::KCapsGetIndicator  | RMobilePhone::KCapsNotifyIndicatorChange
+	CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+	TUint32 actionCaps = 0;
+	TUint32 indCaps = 0;
+	CHECK_EQUALS_L(mobilePhone.GetIndicatorCaps(actionCaps, indCaps), KErrNone, _L("RMobilePhone::GetIndicatorCaps return value is not KErrNone"));
+	TUint32 expectedServiceCaps = RMobilePhone::KCapsGetIndicator  | RMobilePhone::KCapsNotifyIndicatorChange;
+	CHECK_BITS_SET_L(actionCaps, expectedServiceCaps, KNoUnwantedBits, _L("RMobilePhone::GetIndicatorCaps returned wrong caps"));
+
+	// Ensure RMobilePhone::GetIndicatorCaps returns aIndCaps in set of RMobilePhone::KIndCallInProgress | RMobilePhone::KIndNetworkAvailable
+	expectedServiceCaps = RMobilePhone::KIndCallInProgress | RMobilePhone::KIndNetworkAvailable;
+	CHECK_BITS_SET_L(indCaps, expectedServiceCaps, KNoUnwantedBits, _L("RMobilePhone::GetIndicatorCaps returned wrong caps"));
+
+	// Ensure RMobilePhone::GetNetworkRegistrationStatus returns aStatus=ERegisteredOnHomeNetwork 
+	RMobilePhone::TMobilePhoneRegistrationStatus registrationStatus;
+	TExtEtelRequestStatus getNetworkRegistraionStatusStatus(mobilePhone,EMobilePhoneGetNetworkRegistrationStatus);
+	CleanupStack::PushL(getNetworkRegistraionStatusStatus);
+	mobilePhone.GetNetworkRegistrationStatus(getNetworkRegistraionStatusStatus, registrationStatus);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(getNetworkRegistraionStatusStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus timed out"));
+	CHECK_EQUALS_L(getNetworkRegistraionStatusStatus.Int(), KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned an error"));
+	CHECK_EQUALS_L(registrationStatus, RMobilePhone::ERegisteredOnHomeNetwork,_L("RMobilePhone::GetNetworkRegistrationStatus did not set the registration status to ERegisteredOnHomeNetwork"));
+	
+	// Get voice line 1.
+	RMobileLine& mobileLine= iEtelSessionMgr.GetLineL(KMainServer, KMainPhone, KVoiceLine);
+	
+	// Get call 1. 
+	RMobileCall& mobileCall= iEtelSessionMgr.GetCallL(KMainServer, KMainPhone, KVoiceLine, KCall1);	
+
+	//
+	// SET UP END
+	//
+	
+	StartTest();
+	
+	//
+	// TEST START
+	//
+
+	// Check RMobilePhone::GetIndicator returns aIndicator with flags in set of KIndNetworkAvailable
+	// Check RMobilePhone::GetIndicator returns aIndicator with flags NOT in set of KIndCallInProgress
+	TUint32 indicator=0;
+	TExtEtelRequestStatus getIndicatorStatus(mobilePhone,EMobilePhoneGetIndicator);
+	CleanupStack::PushL(getIndicatorStatus);
+
+	mobilePhone.GetIndicator(getIndicatorStatus, indicator);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(getIndicatorStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetIndicator timed out"));
+	ASSERT_EQUALS(getIndicatorStatus.Int(), KErrNone, _L("RMobilePhone::GetIndicator returned an error"));
+
+	expectedServiceCaps = RMobilePhone::KIndNetworkAvailable;
+	TUint32 unexpectServiceCaps = RMobilePhone::KIndCallInProgress;
+	ASSERT_BITS_SET(indicator, expectedServiceCaps, unexpectServiceCaps, _L("RMobilePhone::GetIndicator returned wrong caps"));
+	
+	// Post notifier for RMobileCall::NotifyMobileCallStatusChange
+	TExtEtelRequestStatus notifyMobileCallStatus(mobileCall, EMobileCallNotifyMobileCallStatusChange);
+	CleanupStack::PushL(notifyMobileCallStatus);
+	RMobileCall::TMobileCallStatus mobileCallStatus;
+	mobileCall.NotifyMobileCallStatusChange(notifyMobileCallStatus, mobileCallStatus);
+	
+	// Post notifier for RMobileCall::NotifyIndicatorChange
+	TExtEtelRequestStatus notifyIndicatorChangeStatus(mobilePhone, EMobilePhoneNotifyIndicatorChange);
+	CleanupStack::PushL(notifyIndicatorChangeStatus);
+	TUint32 notifyIndicatorChangeIndicator=0;
+	mobilePhone.NotifyIndicatorChange(notifyIndicatorChangeStatus, notifyIndicatorChangeIndicator);
+	
+	// ===  Dial a call ===
+
+	// Dial a number that answers using RCall::Dial
+	TPtrC outgoingnumber; 
+	ASSERT_TRUE(GetStringFromConfig(KIniVoiceNumSection, KIniVoiceNumber1, outgoingnumber) != EFalse, _L("GetStringFromConfig did not complete as expected"));
+	DEBUG_PRINTF2(_L("Board Now Dialling: %S"), &outgoingnumber);
+	TCoreEtelRequestStatus<RMobileCall> dialStatus(mobileCall, &RCall::DialCancel);
+	CleanupStack::PushL(dialStatus);
+	mobileCall.Dial(dialStatus, outgoingnumber);	
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(dialStatus, ETimeMedium), KErrNone, _L("RCall::Dial timed out"));
+	ASSERT_EQUALS(dialStatus.Int(), KErrNone, _L("RCall::Dial returned an error"));
+	
+	// Check RMobileCall::NotifyMobileCallStatusChange completes with EStatusDialling -> EStatusConnecting -> EStatusConnected.
+	RMobileCall::TMobileCallStatus expectedMobileCallStatus=RMobileCall::EStatusDialling;
+	iCallForwardingControlHelper.WaitForMobileCallNotifyMobileCallStatusChange(mobileCall,
+																			   notifyMobileCallStatus,
+																			   mobileCallStatus,
+																			   expectedMobileCallStatus,
+																			   KErrNone);
+	
+	mobileCall.NotifyMobileCallStatusChange(notifyMobileCallStatus, mobileCallStatus);
+	
+	expectedMobileCallStatus=RMobileCall::EStatusConnecting;
+	iCallForwardingControlHelper.WaitForMobileCallNotifyMobileCallStatusChange(mobileCall,
+																			   notifyMobileCallStatus,
+																			   mobileCallStatus,
+																			   expectedMobileCallStatus,
+																			   KErrNone);
+	
+	mobileCall.NotifyMobileCallStatusChange(notifyMobileCallStatus, mobileCallStatus);
+		
+	expectedMobileCallStatus=RMobileCall::EStatusConnected;
+	iCallForwardingControlHelper.WaitForMobileCallNotifyMobileCallStatusChange(mobileCall,
+																			   notifyMobileCallStatus,
+																			   mobileCallStatus,
+																			   expectedMobileCallStatus,
+																			   KErrNone);
+	
+	// Check RMobilePhone::NotifyIndicatorChange completes with aIndicator with flags in set of KIndCallInProgress | KIndNetworkAvailable
+	TUint32 expectedIndicator = RMobilePhone::KIndCallInProgress | RMobilePhone::KIndNetworkAvailable;
+	iCallForwardingControlHelper.WaitForMobilePhoneNotifyIndicatorChange(mobilePhone,
+																		 notifyIndicatorChangeStatus,
+																		 notifyIndicatorChangeIndicator, 
+																		 expectedIndicator,
+																		 KErrNone);
+	
+	mobilePhone.NotifyIndicatorChange(notifyIndicatorChangeStatus, notifyIndicatorChangeIndicator);
+	
+	// Check RMobilePhone::GetIndicator returns aIndicator with flags in set of KIndCallInProgress | KIndNetworkAvailable
+	mobilePhone.GetIndicator(getIndicatorStatus, indicator);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(getIndicatorStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetIndicator timed out"));
+	ASSERT_EQUALS(getIndicatorStatus.Int(), KErrNone, _L("RMobilePhone::GetIndicator returned an error"));
+
+	expectedServiceCaps = RMobilePhone::KIndCallInProgress | RMobilePhone::KIndNetworkAvailable;
+	CHECK_BITS_SET_L(indicator, expectedServiceCaps, KNoUnwantedBits, _L("RMobilePhone::GetIndicator returned wrong caps"));
+	
+	mobileCall.NotifyMobileCallStatusChange(notifyMobileCallStatus, mobileCallStatus);
+	
+	// Hang up call with RCall::HangUp
+	DEBUG_PRINTF1(_L("Hangup call"));
+	ASSERT_EQUALS(mobileCall.HangUp(), KErrNone, _L("RCall::HangUp return value not KErrNone"));
+	
+	// Check RCall::NotifyStatusChange completes with EStatusDisconnecting -> EStatusIdle
+	expectedMobileCallStatus=RMobileCall::EStatusDisconnecting;
+	iCallForwardingControlHelper.WaitForMobileCallNotifyMobileCallStatusChange(mobileCall,
+																			   notifyMobileCallStatus,
+																			   mobileCallStatus,
+																			   expectedMobileCallStatus,
+																			   KErrNone);
+
+	mobileCall.NotifyMobileCallStatusChange(notifyMobileCallStatus, mobileCallStatus);
+	
+	expectedMobileCallStatus=RMobileCall::EStatusIdle;
+	iCallForwardingControlHelper.WaitForMobileCallNotifyMobileCallStatusChange(mobileCall,
+																			   notifyMobileCallStatus,
+																			   mobileCallStatus,
+																			   expectedMobileCallStatus,
+																			   KErrNone);
+	
+	// Check RMobilePhone::NotifyIndicatorChange completes with aIndicator with flags in set of KIndNetworkAvailable
+	expectedIndicator = RMobilePhone::KIndNetworkAvailable;
+	iCallForwardingControlHelper.WaitForMobilePhoneNotifyIndicatorChange(mobilePhone,
+																		 notifyIndicatorChangeStatus,
+																		 notifyIndicatorChangeIndicator, 
+																		 expectedIndicator,
+																		 KErrNone);
+	
+	// Check RMobilePhone::GetIndicator returns aIndicator with flags NOT in set of KIndCallInProgress
+	mobilePhone.GetIndicator(getIndicatorStatus, indicator);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(getIndicatorStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetIndicator timed out"));
+	ASSERT_EQUALS(getIndicatorStatus.Int(), KErrNone, _L("RMobilePhone::GetIndicator returned an error"));
+
+	unexpectServiceCaps = RMobilePhone::KIndCallInProgress;
+	CHECK_BITS_SET_L(indicator, KNoUnwantedBits, unexpectServiceCaps, _L("RMobilePhone::GetIndicator returned wrong caps"));
+
+	//
+	// TEST END
+	//
+
+    StartCleanup();
+	
+	CleanupStack::PopAndDestroy(&dialStatus);
+	CleanupStack::PopAndDestroy(&notifyIndicatorChangeStatus);
+	CleanupStack::PopAndDestroy(&notifyMobileCallStatus);
+	CleanupStack::PopAndDestroy(&getIndicatorStatus);
+	CleanupStack::PopAndDestroy(&getNetworkRegistraionStatusStatus);
+		
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestIndicator0002::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestIndicator0002");
+	}
+
+
+
+CCTSYIntegrationTestIndicator0003::CCTSYIntegrationTestIndicator0003(CEtelSessionMgr& aEtelSessionMgr)
+	: CCTSYIntegrationTestIndicatorBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestIndicator0003::GetTestStepName());
+	}
+
+CCTSYIntegrationTestIndicator0003::~CCTSYIntegrationTestIndicator0003()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestIndicator0003::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-IND-0003
+ * @SYMFssID BA/CTSY/IND-0003
+ * @SYMTestCaseDesc Connect the phone charger
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhone::NotifyIndicatorChange
+ * @SYMTestExpectedResults Pass - Indicator notification completes when charger is connected.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/manual
+ *
+ * Reason for test: Verify indicator notification completes
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+	
+	CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+	
+	// Check RMobilePhone::GetIndicatorCaps returns aActionCaps in set of RMobilePhone::KCapsGetIndicator | RMobilePhone::KCapsNotifyIndicatorChange
+	TUint32 actionCaps=0;
+	TUint32 indCaps=0;
+	ASSERT_EQUALS(mobilePhone.GetIndicatorCaps(actionCaps, indCaps), KErrNone, _L("RMobilePhone::GetIndicatorCaps returned an error"));
+	
+	TUint32 expectedServiceCaps = RMobilePhone::KCapsGetIndicator | RMobilePhone::KCapsNotifyIndicatorChange;
+	CHECK_BITS_SET_L(actionCaps, expectedServiceCaps, KNoUnwantedBits, _L("RMobilePhone::GetIndicatorCaps returned wrong caps"));
+
+	// Check RMobilePhone::GetIndicatorCaps returns aIndCaps in set of RMobilePhone::KIndChargerConnected
+	expectedServiceCaps = RMobilePhone::KIndChargerConnected;
+	CHECK_BITS_SET_L(indCaps, expectedServiceCaps, KNoUnwantedBits, _L("RMobilePhone::GetIndicatorCaps returned wrong caps"));
+
+	//
+	// SET UP END
+	//
+	
+	StartTest();
+	
+	//
+	// TEST START
+	//
+	
+	// Check RMobilePhone::GetIndicator returns aIndicator with flags NOT in  set of RMobilePhone::KIndChargerConnected
+	TUint32 indicator=0;
+	TExtEtelRequestStatus getIndicatorStatus(mobilePhone,EMobilePhoneGetIndicator);
+	CleanupStack::PushL(getIndicatorStatus);
+	
+	mobilePhone.GetIndicator(getIndicatorStatus, indicator);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(getIndicatorStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetIndicator timed out"));
+	ASSERT_EQUALS(getIndicatorStatus.Int(), KErrNone, _L("RMobilePhone::GetIndicator returned an error"));
+
+	TUint32 unexpectedIndicatorCaps = RMobilePhone::KIndChargerConnected;
+	ASSERT_BITS_SET(indicator, KNoUnwantedBits, unexpectedIndicatorCaps, _L("RMobilePhone::GetIndicator returned wrong caps"));
+	
+	// Post notifier for RMobileCall::NotifyIndicatorChange
+	TExtEtelRequestStatus notifyIndicatorChangeStatus(mobilePhone, EMobilePhoneNotifyIndicatorChange);
+	CleanupStack::PushL(notifyIndicatorChangeStatus);
+	TUint32 notifyIndicatorChangeIndicator=0;
+	mobilePhone.NotifyIndicatorChange(notifyIndicatorChangeStatus, notifyIndicatorChangeIndicator);
+	
+	// Connect the charger to the phone 
+	TBuf<50> prompt(_L("Connect the charger to the phone"));
+	DisplayUserInteractionPromptL(prompt); // 30 seconds
+	
+	// Check RMobilePhone::NotifyIndicatorChange completes with aIndicator with flags in set of RMobilePhone::KIndChargerConnected and RMobilePhone::KIndNetworkAvailable
+	TUint32 expectedIndicator = RMobilePhone::KIndChargerConnected | RMobilePhone::KIndNetworkAvailable;
+	iCallForwardingControlHelper.WaitForMobilePhoneNotifyIndicatorChange(mobilePhone,
+																		 notifyIndicatorChangeStatus,
+																		 notifyIndicatorChangeIndicator, 
+																		 expectedIndicator,
+																		 KErrNone);
+	
+	// Check RMobilePhone::GetIndicator returns aIndicator with flags in set of RMobilePhone::KIndChargerConnected
+	mobilePhone.GetIndicator(getIndicatorStatus, indicator);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(getIndicatorStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetIndicator timed out"));
+	ASSERT_EQUALS(getIndicatorStatus.Int(), KErrNone, _L("RMobilePhone::GetIndicator returned an error"));
+	
+	TUint32 expectedIndicatorCaps = RMobilePhone::KIndChargerConnected;
+	ASSERT_BITS_SET(indicator, expectedIndicatorCaps, KNoUnwantedBits, _L("RMobilePhone::GetIndicator returned wrong caps"));
+
+	//
+	// TEST END
+	//
+
+    StartCleanup();
+    
+	CleanupStack::PopAndDestroy(&notifyIndicatorChangeStatus);
+	CleanupStack::PopAndDestroy(&getIndicatorStatus);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestIndicator0003::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestIndicator0003");
+	}
+