diff -r 6b1d113cdff3 -r 6638e7f4bd8f telephonyutils/telephonywatchers/Test/TE_TelWatchers/TE_TelWatchersUnitTest.cpp --- a/telephonyutils/telephonywatchers/Test/TE_TelWatchers/TE_TelWatchersUnitTest.cpp Mon May 03 13:37:20 2010 +0300 +++ b/telephonyutils/telephonywatchers/Test/TE_TelWatchers/TE_TelWatchersUnitTest.cpp Thu May 06 15:10:38 2010 +0100 @@ -1,605 +1,605 @@ -// Copyright (c) 2001-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: -// Telephony Watchers Unit Test main test code. -// -// - -/** - @file -*/ - -#include -#include -#include -#include - -#include "indicatorwatcher.h" -#include "signalstrengthwatcher.h" - -#include "TE_TelWatchersUnitBase.h" -#include "TE_TelWatchersUnitTest.h" - -// -// Constants... -// -const TInt KExpectedCallStateChanges(4); -const TInt KExpectedBatteryChargerStateChanges(4); -const TInt KExpectedNetworkAvailabilityStateChanges(4); -const TInt KSimulatedCommDBChanges(10); - -/** - * Each test step initialises it's own name - */ -CTelWatchersUnitTestCallStateChangesWithPublishSubscribe::CTelWatchersUnitTestCallStateChangesWithPublishSubscribe() - { - // - // Store the name of this test case. This is the name that is used by - // the script file. - // - SetTestStepName(_L("TestCallStateChangesWithPublishSubscribe")); - } // CTelWatchersUnitTestCallStateChangesWithPublishSubscribe::CTelWatchersUnitTestCallStateChangesWithPublishSubscribe - - -/** - * Simple destructor. - */ -CTelWatchersUnitTestCallStateChangesWithPublishSubscribe::~CTelWatchersUnitTestCallStateChangesWithPublishSubscribe() - { - // NOP - } // CTelWatchersUnitTestCallStateChangesWithPublishSubscribe::~CTelWatchersUnitTestCallStateChangesWithPublishSubscribe - - -/** - * This test monitors the call state notifications and checks they - * are as expected and valid. - */ -enum TVerdict CTelWatchersUnitTestCallStateChangesWithPublishSubscribe::doTestStepL() - { - SetSimTsyTestNumberL(0); - - RProperty propCurrCallState; //- property that reflects current call state - TInt propVal = KErrUnknown; //- value of the property - - INFO_PRINTF2(_L("Wait for %d call state changes with publish and subscribe"), - KExpectedCallStateChanges); - - //-- attach to KUidCurrentCall property - TESTL(propCurrCallState.Attach(KUidSystemCategory,KUidCurrentCall.iUid) == KErrNone); - - // - // Install the Indicator and Signal Strength watcher... - // - TInt dummyWatcherParams; - CIndicatorWatcher* indicatorWatcher = CIndicatorWatcher::NewL((TAny*)&dummyWatcherParams); - - CleanupStack::PushL(indicatorWatcher); - - CSignalStrengthWatcher* signalStrengthWatcher = CSignalStrengthWatcher::NewL((TAny*)&dummyWatcherParams); - CleanupStack::PushL(signalStrengthWatcher); - - // - // Prepare indicator watcher to return random call state - // values... - // - TESTL(RProperty::Set(KUidSystemCategory, KUidTestProp_CallStateChange.iUid, 0) == KErrNone); - - // - // Wait for the change events... - // - CWatcherObserverPS* watcher = new(ELeave) CWatcherObserverPS; - CleanupStack::PushL(watcher); - - watcher->BindProperty(&propCurrCallState); - - TInt counter; - - for (counter = 0; counter < KExpectedCallStateChanges; counter++) - { - // - // Prepares a notify request and starts the scheduler. Stops the - // scheduler when notify is detected. - // - watcher->WaitForPropertyChangeL(); - - //-- get property value after it has been updated - TESTL(watcher->GetPropertyValue(propVal) == KErrNone); - - // - // Print the state... - // - switch (propVal) - { - case ESACallNone: - { - INFO_PRINTF1(_L(" Call None.")); - } - break; - - case ESACallVoice: - { - INFO_PRINTF1(_L(" Call Voice.")); - } - break; - - case ESACallFax: - { - INFO_PRINTF1(_L(" Call Fax.")); - } - break; - - case ESACallData: - { - INFO_PRINTF1(_L(" Call Data.")); - } - break; - - case ESACallAlerting: - { - INFO_PRINTF1(_L(" Call Alerting.")); - } - break; - - case ESACallRinging: - { - INFO_PRINTF1(_L(" Call Ringing.")); - } - break; - - case ESACallAlternating: - { - INFO_PRINTF1(_L(" Call Alternating.")); - } - break; - - default: - { - INFO_PRINTF2(_L("Failed: Unknown state returned (%d)!"), propVal); - SetTestStepResult(EFail); - } - break; - } - } - - CleanupStack::PopAndDestroy(watcher); - CleanupStack::PopAndDestroy(signalStrengthWatcher); - CleanupStack::PopAndDestroy(indicatorWatcher); - - return TestStepResult(); - } // CTelWatchersUnitTestCallStateChangesWithPublishSubscribe::doTestStepL - -/** - * Each test step initialises it's own name - */ -CTelWatchersUnitTestBatteryChargerChangesWithPublishSubscribe::CTelWatchersUnitTestBatteryChargerChangesWithPublishSubscribe() - { - // - // Store the name of this test case. This is the name that is used by - // the script file. - // - SetTestStepName(_L("TestBatteryChargerChangesWithPublishSubscribe")); - } // CTelWatchersUnitTestBatteryChargerChangesWithPublishSubscribe::CTelWatchersUnitTestBatteryChargerChangesWithPublishSubscribe - - -/** - * Simple destructor. - */ -CTelWatchersUnitTestBatteryChargerChangesWithPublishSubscribe::~CTelWatchersUnitTestBatteryChargerChangesWithPublishSubscribe() - { - // NOP - } // CTelWatchersUnitTestBatteryChargerChangesWithPublishSubscribe::~CTelWatchersUnitTestBatteryChargerChangesWithPublishSubscribe - - -/** - * This test monitors the battery charger notifications and checks they - * are as expected and valid. - */ -enum TVerdict CTelWatchersUnitTestBatteryChargerChangesWithPublishSubscribe::doTestStepL() - { - SetSimTsyTestNumberL(0); - - RProperty propChargerState; //- property that reflects phone charger state - TInt propVal = KErrUnknown; //- value of the property - - INFO_PRINTF2(_L("Wait for %d battery charger changes with publish and subscribe"), - KExpectedBatteryChargerStateChanges); - - //-- attach to KUidChargerStatus property - TESTL(propChargerState.Attach(KUidSystemCategory,KUidChargerStatus.iUid) == KErrNone); - - // - // Install the Indicator and Signal Strength watcher... - // - TInt dummyWatcherParams; - CIndicatorWatcher* indicatorWatcher = CIndicatorWatcher::NewL((TAny*)&dummyWatcherParams); - - CleanupStack::PushL(indicatorWatcher); - - CSignalStrengthWatcher* signalStrengthWatcher = CSignalStrengthWatcher::NewL((TAny*)&dummyWatcherParams); - CleanupStack::PushL(signalStrengthWatcher); - - // - // Prepare indicator watcher to return random battery values... - // - // - TESTL(RProperty::Set(KUidSystemCategory, KUidTestProp_CallStateChange.iUid, 1) == KErrNone); - - // - // Wait for the change events... - // - CWatcherObserverPS* watcher = new(ELeave) CWatcherObserverPS; - CleanupStack::PushL(watcher); - watcher->BindProperty( &propChargerState ); - TInt counter; - - for (counter = 0; counter < KExpectedBatteryChargerStateChanges; counter++) - { - // - // Prepares a notify request and starts the scheduler. Stops the scheduler - // when notify is detected. - // - watcher->WaitForPropertyChangeL(); - - //-- get property value after it has been updated - TESTL(watcher->GetPropertyValue(propVal) == KErrNone); - - // - // Print state... - // - switch (propVal) - { - case ESAChargerConnected: - { - INFO_PRINTF1(_L(" Charger connected.")); - } - break; - - case ESAChargerDisconnected: - { - INFO_PRINTF1(_L(" Charger disconnected.")); - } - break; - - case ESAChargerNotCharging: - { - INFO_PRINTF1(_L(" Not charging.")); - } - break; - - default: - { - INFO_PRINTF2(_L("Failed: Unknown state returned (%d)!"), propVal); - SetTestStepResult(EFail); - } - break; - } - } - - CleanupStack::PopAndDestroy(watcher); - CleanupStack::PopAndDestroy(signalStrengthWatcher); - CleanupStack::PopAndDestroy(indicatorWatcher); - - return TestStepResult(); - } // CTelWatchersUnitTestBatteryChargerChangesWithPublishSubscribe::doTestStepL - -/** - * Each test step initialises it's own name - */ -CTelWatchersUnitTestNetworkAvailabilityChangesWithPublishSubscribe::CTelWatchersUnitTestNetworkAvailabilityChangesWithPublishSubscribe() - { - // - // Store the name of this test case. This is the name that is used by - // the script file. - // - SetTestStepName(_L("TestNetworkAvailabilityChangesWithPublishSubscribe")); - } // CTelWatchersUnitTestNetworkAvailabilityChangesWithPublishSubscribe::CTelWatchersUnitTestNetworkAvailabilityChangesWithPublishSubscribe - - -/** - * Simple destructor. - */ -CTelWatchersUnitTestNetworkAvailabilityChangesWithPublishSubscribe::~CTelWatchersUnitTestNetworkAvailabilityChangesWithPublishSubscribe() - { - // NOP - } // CTelWatchersUnitTestNetworkAvailabilityChangesWithPublishSubscribe::~CTelWatchersUnitTestNetworkAvailabilityChangesWithPublishSubscribe - - -/** - * This test monitors the network availablity notifications and checks they - * are as expected and valid. - */ -enum TVerdict CTelWatchersUnitTestNetworkAvailabilityChangesWithPublishSubscribe::doTestStepL() - { - SetSimTsyTestNumberL(0); - - RProperty propNetworkState; //- property that reflects phone charger state - TInt propVal = KErrUnknown; //- value of the property - - INFO_PRINTF2(_L("Wait for %d network availability changes with publish and subscribe"), - KExpectedNetworkAvailabilityStateChanges); - - //-- attach to KUidCurrentCall property - TESTL(propNetworkState.Attach(KUidSystemCategory,KUidNetworkStatus.iUid) == KErrNone); - - // - // Install the Indicator and Signal Strength watcher... - // - TInt dummyWatcherParams; - CIndicatorWatcher* indicatorWatcher = CIndicatorWatcher::NewL((TAny*)&dummyWatcherParams); - - CleanupStack::PushL(indicatorWatcher); - - CSignalStrengthWatcher* signalStrengthWatcher = CSignalStrengthWatcher::NewL((TAny*)&dummyWatcherParams); - CleanupStack::PushL(signalStrengthWatcher); - - // - // Prepare indicator watcher to return random network state - // values... - // - TESTL(RProperty::Set(KUidSystemCategory, KUidTestProp_CallStateChange.iUid, 2) == KErrNone); - - // - // Wait for the change events... - // - CWatcherObserverPS* watcher = new(ELeave) CWatcherObserverPS; - CleanupStack::PushL(watcher); - watcher->BindProperty( &propNetworkState ); - TInt counter; - - for (counter = 0; counter < KExpectedNetworkAvailabilityStateChanges; counter++) - { - // - // Prepares a notify request and starts the scheduler. Stops the - // scheduler when notify is detected. - // - watcher->WaitForPropertyChangeL(); - - //-- get property value after it has been updated - TESTL(watcher->GetPropertyValue(propVal) == KErrNone); - - // - // Print state... - // - switch(propVal) - { - case ESANetworkAvailable: - { - INFO_PRINTF1(_L(" Network available.")); - } - break; - - case ESANetworkUnAvailable: - { - INFO_PRINTF1(_L(" Network unavailable.")); - } - break; - - default: - { - INFO_PRINTF2(_L("Failed: Unknown state returned (%d)!"), propVal); - SetTestStepResult(EFail); - } - break; - } - } - - CleanupStack::PopAndDestroy(watcher); - CleanupStack::PopAndDestroy(signalStrengthWatcher); - CleanupStack::PopAndDestroy(indicatorWatcher); - - return TestStepResult(); - } // CTelWatchersUnitTestNetworkAvailabilityChangesWithPublishSubscribe::doTestStepL - -/** - * Each test step initialises it's own name - */ -CTelWatchersUnitTestSimulteCommDBModemChangeWithPublishSubscribe::CTelWatchersUnitTestSimulteCommDBModemChangeWithPublishSubscribe() - { - // - // Store the name of this test case. This is the name that is used by - // the script file. - // - SetTestStepName(_L("TestSimulteCommDBModemChangeWithPublishSubscribe")); - } //CTelWatchersUnitTestSimulteCommDBModemChangeWithPublishSubscribe::CTelWatchersUnitTestSimulteCommDBModemChangeWithPublishSubscribe - - -/** - * Simple destructor. - */ -CTelWatchersUnitTestSimulteCommDBModemChangeWithPublishSubscribe::~CTelWatchersUnitTestSimulteCommDBModemChangeWithPublishSubscribe() - { - // NOP - } // CTelWatchersUnitTestSimulteCommDBModemChangeWithPublishSubscribe::~CTelWatchersUnitTestSimulteCommDBModemChangeWithPublishSubscribe - - -/** - * This test issues a number of CommDB table update requests to the Watcher and - * checks that the CommDB table is re-read. - */ -enum TVerdict CTelWatchersUnitTestSimulteCommDBModemChangeWithPublishSubscribe::doTestStepL() - { - SetSimTsyTestNumberL(0); - - INFO_PRINTF2(_L("Simulate %d CommDB default modem changes with publish and subscribe"), - KSimulatedCommDBChanges); - - RProperty propMdmRecordChanged; //-- modem record change property (debug only) - RProperty propMdmTableRefreshed; //-- modem table re-read property (debug only) - - TESTL(propMdmRecordChanged.Attach(KUidSystemCategory, KUidTestProp_ModemRecordChanged.iUid) == KErrNone); - TESTL(propMdmTableRefreshed.Attach(KUidSystemCategory, KUidTestProp_ModemTableRefreshed.iUid) == KErrNone); - - // - // Install the Indicator and Signal Strength watcher... - // - TInt dummyWatcherParams; - CIndicatorWatcher* indicatorWatcher = CIndicatorWatcher::NewL((TAny*)&dummyWatcherParams); - CleanupStack::PushL(indicatorWatcher); - - CSignalStrengthWatcher* signalStrengthWatcher = CSignalStrengthWatcher::NewL((TAny*)&dummyWatcherParams); - CleanupStack::PushL(signalStrengthWatcher); - - // - // Allow a few seconds for the Active Objects to start... - // - PauseToRunActiveSchedulerL(10); - - // - // Wait for the change events... - // - CWatcherObserverPS* watcher = new(ELeave) CWatcherObserverPS; - CleanupStack::PushL(watcher); - TInt counter; - - for (counter = 0; counter < KSimulatedCommDBChanges; counter++) - { - // - // Send some comm db modem record change events - // - TTime time; - time.UniversalTime(); - - TESTL(RProperty::Set(KUidSystemCategory, KUidCommDbModemPhoneServicesAndSMSChange.iUid, I64LOW(time.Int64())) == KErrNone ); - - // - // Now wait for an ack that the change was spotted... - // - watcher->BindProperty(&propMdmRecordChanged); - watcher->WaitForPropertyChangeL(); - - INFO_PRINTF1(_L(" CommDB change has been spotted.")); - - // - // Now wait for an ack that the modem table has been re-read ok - // - watcher->BindProperty(&propMdmTableRefreshed); - watcher->WaitForPropertyChangeL(); - - INFO_PRINTF1(_L(" Modem table has been re-read.")); - - // - // Now wait a few seconds before trying again - // - PauseToRunActiveSchedulerL(10); - } - - CleanupStack::PopAndDestroy(watcher); - CleanupStack::PopAndDestroy(signalStrengthWatcher); - CleanupStack::PopAndDestroy(indicatorWatcher); - - return TestStepResult(); - } // CTelWatchersUnitTestSimulteCommDBModemChangeWithPublishSubscribe::doTestStepL - - -/** - * Each test step initialises it's own name - */ -CTelWatchersUnitTestCommDBChangeWhenWatcherDisabledWithPublishSubscribe::CTelWatchersUnitTestCommDBChangeWhenWatcherDisabledWithPublishSubscribe() - { - // - // Store the name of this test case. This is the name that is used by - // the script file. - // - SetTestStepName(_L("TestCommDBChangeWhenWatcherDisabledWithPublishSubscribe")); - } // CTelWatchersUnitTestCommDBChangeWhenWatcherDisabledWithPublishSubscribe::CTelWatchersUnitTestCommDBChangeWhenWatcherDisabledWithPublishSubscribe - - -/** - * Simple destructor. - */ -CTelWatchersUnitTestCommDBChangeWhenWatcherDisabledWithPublishSubscribe::~CTelWatchersUnitTestCommDBChangeWhenWatcherDisabledWithPublishSubscribe() - { - // NOP - } // CTelWatchersUnitTestCommDBChangeWhenWatcherDisabledWithPublishSubscribe::~CTelWatchersUnitTestCommDBChangeWhenWatcherDisabledWithPublishSubscribe - - -/** - * This test checks that the Watcher notices a CommDB change whilst the Watcher - * are disabled. - */ -enum TVerdict CTelWatchersUnitTestCommDBChangeWhenWatcherDisabledWithPublishSubscribe::doTestStepL() - { - SetSimTsyTestNumberL(0); - - INFO_PRINTF1(_L("Test sending a CommDB change when the watcher is disabled with publish and subscribe")); - - RProperty propPhoneWatcherDisable;//-- Phone watchers disabling/reset (debug only) - RProperty propMdmRecordChanged; //-- modem record change property (debug only) - RProperty propMdmTableRefreshed; //-- modem table re-read property (debug only) - - TESTL(propPhoneWatcherDisable.Attach(KUidSystemCategory, KUidTestProp_WatchersDisable.iUid) == KErrNone); - TESTL(propMdmRecordChanged.Attach(KUidSystemCategory, KUidTestProp_ModemRecordChanged.iUid) == KErrNone); - TESTL(propMdmTableRefreshed.Attach(KUidSystemCategory, KUidTestProp_ModemTableRefreshed.iUid) == KErrNone); - - // - // Install the Indicator and Signal Strength watcher... - // - TInt dummyWatcherParams; - CIndicatorWatcher* indicatorWatcher = CIndicatorWatcher::NewL((TAny*)&dummyWatcherParams); - CleanupStack::PushL(indicatorWatcher); - - CSignalStrengthWatcher* signalStrengthWatcher = CSignalStrengthWatcher::NewL((TAny*)&dummyWatcherParams); - CleanupStack::PushL(signalStrengthWatcher); - - // - // Allow a few seconds for the Active Objects to start... - // - PauseToRunActiveSchedulerL(10); - - - // - // To wait for the change events... - // - CWatcherObserverPS* watcher = new(ELeave) CWatcherObserverPS(); - CleanupStack::PushL(watcher); - - // - // Disable the watcher by setting the property... - // - TESTL(propPhoneWatcherDisable.Set(ETrue) == KErrNone ); - - INFO_PRINTF1(_L(" Watcher has been disabled.")); - - // - // Send some Comm DB modem record change events... - // - TTime time; - time.UniversalTime(); - - TESTL(RProperty::Set(KUidSystemCategory, KUidCommDbModemPhoneServicesAndSMSChange.iUid, I64LOW(time.Int64())) == KErrNone ); - - // - // Now wait for an ack that the change was spotted... - // - watcher->BindProperty(&propMdmRecordChanged); - watcher->WaitForPropertyChangeL(); - INFO_PRINTF1(_L(" CommDB change has been spotted.")); - - // - // Now wait for an ack that the modem table has been re-read ok - // - watcher->BindProperty(&propMdmTableRefreshed); - watcher->WaitForPropertyChangeL(); - INFO_PRINTF1(_L(" Modem table has been re-read.")); - - // - // Now wait a few seconds before trying again... - // - PauseToRunActiveSchedulerL(10); - - CleanupStack::PopAndDestroy(watcher); - CleanupStack::PopAndDestroy(signalStrengthWatcher); - CleanupStack::PopAndDestroy(indicatorWatcher); - - return TestStepResult(); - } // CTelWatchersUnitTestCommDBChangeWhenWatcherDisabledWithPublishSubscribe::doTestStepL +// Copyright (c) 2001-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: +// Telephony Watchers Unit Test main test code. +// +// + +/** + @file +*/ + +#include +#include +#include +#include + +#include "indicatorwatcher.h" +#include "signalstrengthwatcher.h" + +#include "TE_TelWatchersUnitBase.h" +#include "TE_TelWatchersUnitTest.h" + +// +// Constants... +// +const TInt KExpectedCallStateChanges(4); +const TInt KExpectedBatteryChargerStateChanges(4); +const TInt KExpectedNetworkAvailabilityStateChanges(4); +const TInt KSimulatedCommDBChanges(10); + +/** + * Each test step initialises it's own name + */ +CTelWatchersUnitTestCallStateChangesWithPublishSubscribe::CTelWatchersUnitTestCallStateChangesWithPublishSubscribe() + { + // + // Store the name of this test case. This is the name that is used by + // the script file. + // + SetTestStepName(_L("TestCallStateChangesWithPublishSubscribe")); + } // CTelWatchersUnitTestCallStateChangesWithPublishSubscribe::CTelWatchersUnitTestCallStateChangesWithPublishSubscribe + + +/** + * Simple destructor. + */ +CTelWatchersUnitTestCallStateChangesWithPublishSubscribe::~CTelWatchersUnitTestCallStateChangesWithPublishSubscribe() + { + // NOP + } // CTelWatchersUnitTestCallStateChangesWithPublishSubscribe::~CTelWatchersUnitTestCallStateChangesWithPublishSubscribe + + +/** + * This test monitors the call state notifications and checks they + * are as expected and valid. + */ +enum TVerdict CTelWatchersUnitTestCallStateChangesWithPublishSubscribe::doTestStepL() + { + SetSimTsyTestNumberL(0); + + RProperty propCurrCallState; //- property that reflects current call state + TInt propVal = KErrUnknown; //- value of the property + + INFO_PRINTF2(_L("Wait for %d call state changes with publish and subscribe"), + KExpectedCallStateChanges); + + //-- attach to KUidCurrentCall property + TESTL(propCurrCallState.Attach(KUidSystemCategory,KUidCurrentCall.iUid) == KErrNone); + + // + // Install the Indicator and Signal Strength watcher... + // + TInt dummyWatcherParams; + CIndicatorWatcher* indicatorWatcher = CIndicatorWatcher::NewL((TAny*)&dummyWatcherParams); + + CleanupStack::PushL(indicatorWatcher); + + CSignalStrengthWatcher* signalStrengthWatcher = CSignalStrengthWatcher::NewL((TAny*)&dummyWatcherParams); + CleanupStack::PushL(signalStrengthWatcher); + + // + // Prepare indicator watcher to return random call state + // values... + // + TESTL(RProperty::Set(KUidSystemCategory, KUidTestProp_CallStateChange.iUid, 0) == KErrNone); + + // + // Wait for the change events... + // + CWatcherObserverPS* watcher = new(ELeave) CWatcherObserverPS; + CleanupStack::PushL(watcher); + + watcher->BindProperty(&propCurrCallState); + + TInt counter; + + for (counter = 0; counter < KExpectedCallStateChanges; counter++) + { + // + // Prepares a notify request and starts the scheduler. Stops the + // scheduler when notify is detected. + // + watcher->WaitForPropertyChangeL(); + + //-- get property value after it has been updated + TESTL(watcher->GetPropertyValue(propVal) == KErrNone); + + // + // Print the state... + // + switch (propVal) + { + case ESACallNone: + { + INFO_PRINTF1(_L(" Call None.")); + } + break; + + case ESACallVoice: + { + INFO_PRINTF1(_L(" Call Voice.")); + } + break; + + case ESACallFax: + { + INFO_PRINTF1(_L(" Call Fax.")); + } + break; + + case ESACallData: + { + INFO_PRINTF1(_L(" Call Data.")); + } + break; + + case ESACallAlerting: + { + INFO_PRINTF1(_L(" Call Alerting.")); + } + break; + + case ESACallRinging: + { + INFO_PRINTF1(_L(" Call Ringing.")); + } + break; + + case ESACallAlternating: + { + INFO_PRINTF1(_L(" Call Alternating.")); + } + break; + + default: + { + INFO_PRINTF2(_L("Failed: Unknown state returned (%d)!"), propVal); + SetTestStepResult(EFail); + } + break; + } + } + + CleanupStack::PopAndDestroy(watcher); + CleanupStack::PopAndDestroy(signalStrengthWatcher); + CleanupStack::PopAndDestroy(indicatorWatcher); + + return TestStepResult(); + } // CTelWatchersUnitTestCallStateChangesWithPublishSubscribe::doTestStepL + +/** + * Each test step initialises it's own name + */ +CTelWatchersUnitTestBatteryChargerChangesWithPublishSubscribe::CTelWatchersUnitTestBatteryChargerChangesWithPublishSubscribe() + { + // + // Store the name of this test case. This is the name that is used by + // the script file. + // + SetTestStepName(_L("TestBatteryChargerChangesWithPublishSubscribe")); + } // CTelWatchersUnitTestBatteryChargerChangesWithPublishSubscribe::CTelWatchersUnitTestBatteryChargerChangesWithPublishSubscribe + + +/** + * Simple destructor. + */ +CTelWatchersUnitTestBatteryChargerChangesWithPublishSubscribe::~CTelWatchersUnitTestBatteryChargerChangesWithPublishSubscribe() + { + // NOP + } // CTelWatchersUnitTestBatteryChargerChangesWithPublishSubscribe::~CTelWatchersUnitTestBatteryChargerChangesWithPublishSubscribe + + +/** + * This test monitors the battery charger notifications and checks they + * are as expected and valid. + */ +enum TVerdict CTelWatchersUnitTestBatteryChargerChangesWithPublishSubscribe::doTestStepL() + { + SetSimTsyTestNumberL(0); + + RProperty propChargerState; //- property that reflects phone charger state + TInt propVal = KErrUnknown; //- value of the property + + INFO_PRINTF2(_L("Wait for %d battery charger changes with publish and subscribe"), + KExpectedBatteryChargerStateChanges); + + //-- attach to KUidChargerStatus property + TESTL(propChargerState.Attach(KUidSystemCategory,KUidChargerStatus.iUid) == KErrNone); + + // + // Install the Indicator and Signal Strength watcher... + // + TInt dummyWatcherParams; + CIndicatorWatcher* indicatorWatcher = CIndicatorWatcher::NewL((TAny*)&dummyWatcherParams); + + CleanupStack::PushL(indicatorWatcher); + + CSignalStrengthWatcher* signalStrengthWatcher = CSignalStrengthWatcher::NewL((TAny*)&dummyWatcherParams); + CleanupStack::PushL(signalStrengthWatcher); + + // + // Prepare indicator watcher to return random battery values... + // + // + TESTL(RProperty::Set(KUidSystemCategory, KUidTestProp_CallStateChange.iUid, 1) == KErrNone); + + // + // Wait for the change events... + // + CWatcherObserverPS* watcher = new(ELeave) CWatcherObserverPS; + CleanupStack::PushL(watcher); + watcher->BindProperty( &propChargerState ); + TInt counter; + + for (counter = 0; counter < KExpectedBatteryChargerStateChanges; counter++) + { + // + // Prepares a notify request and starts the scheduler. Stops the scheduler + // when notify is detected. + // + watcher->WaitForPropertyChangeL(); + + //-- get property value after it has been updated + TESTL(watcher->GetPropertyValue(propVal) == KErrNone); + + // + // Print state... + // + switch (propVal) + { + case ESAChargerConnected: + { + INFO_PRINTF1(_L(" Charger connected.")); + } + break; + + case ESAChargerDisconnected: + { + INFO_PRINTF1(_L(" Charger disconnected.")); + } + break; + + case ESAChargerNotCharging: + { + INFO_PRINTF1(_L(" Not charging.")); + } + break; + + default: + { + INFO_PRINTF2(_L("Failed: Unknown state returned (%d)!"), propVal); + SetTestStepResult(EFail); + } + break; + } + } + + CleanupStack::PopAndDestroy(watcher); + CleanupStack::PopAndDestroy(signalStrengthWatcher); + CleanupStack::PopAndDestroy(indicatorWatcher); + + return TestStepResult(); + } // CTelWatchersUnitTestBatteryChargerChangesWithPublishSubscribe::doTestStepL + +/** + * Each test step initialises it's own name + */ +CTelWatchersUnitTestNetworkAvailabilityChangesWithPublishSubscribe::CTelWatchersUnitTestNetworkAvailabilityChangesWithPublishSubscribe() + { + // + // Store the name of this test case. This is the name that is used by + // the script file. + // + SetTestStepName(_L("TestNetworkAvailabilityChangesWithPublishSubscribe")); + } // CTelWatchersUnitTestNetworkAvailabilityChangesWithPublishSubscribe::CTelWatchersUnitTestNetworkAvailabilityChangesWithPublishSubscribe + + +/** + * Simple destructor. + */ +CTelWatchersUnitTestNetworkAvailabilityChangesWithPublishSubscribe::~CTelWatchersUnitTestNetworkAvailabilityChangesWithPublishSubscribe() + { + // NOP + } // CTelWatchersUnitTestNetworkAvailabilityChangesWithPublishSubscribe::~CTelWatchersUnitTestNetworkAvailabilityChangesWithPublishSubscribe + + +/** + * This test monitors the network availablity notifications and checks they + * are as expected and valid. + */ +enum TVerdict CTelWatchersUnitTestNetworkAvailabilityChangesWithPublishSubscribe::doTestStepL() + { + SetSimTsyTestNumberL(0); + + RProperty propNetworkState; //- property that reflects phone charger state + TInt propVal = KErrUnknown; //- value of the property + + INFO_PRINTF2(_L("Wait for %d network availability changes with publish and subscribe"), + KExpectedNetworkAvailabilityStateChanges); + + //-- attach to KUidCurrentCall property + TESTL(propNetworkState.Attach(KUidSystemCategory,KUidNetworkStatus.iUid) == KErrNone); + + // + // Install the Indicator and Signal Strength watcher... + // + TInt dummyWatcherParams; + CIndicatorWatcher* indicatorWatcher = CIndicatorWatcher::NewL((TAny*)&dummyWatcherParams); + + CleanupStack::PushL(indicatorWatcher); + + CSignalStrengthWatcher* signalStrengthWatcher = CSignalStrengthWatcher::NewL((TAny*)&dummyWatcherParams); + CleanupStack::PushL(signalStrengthWatcher); + + // + // Prepare indicator watcher to return random network state + // values... + // + TESTL(RProperty::Set(KUidSystemCategory, KUidTestProp_CallStateChange.iUid, 2) == KErrNone); + + // + // Wait for the change events... + // + CWatcherObserverPS* watcher = new(ELeave) CWatcherObserverPS; + CleanupStack::PushL(watcher); + watcher->BindProperty( &propNetworkState ); + TInt counter; + + for (counter = 0; counter < KExpectedNetworkAvailabilityStateChanges; counter++) + { + // + // Prepares a notify request and starts the scheduler. Stops the + // scheduler when notify is detected. + // + watcher->WaitForPropertyChangeL(); + + //-- get property value after it has been updated + TESTL(watcher->GetPropertyValue(propVal) == KErrNone); + + // + // Print state... + // + switch(propVal) + { + case ESANetworkAvailable: + { + INFO_PRINTF1(_L(" Network available.")); + } + break; + + case ESANetworkUnAvailable: + { + INFO_PRINTF1(_L(" Network unavailable.")); + } + break; + + default: + { + INFO_PRINTF2(_L("Failed: Unknown state returned (%d)!"), propVal); + SetTestStepResult(EFail); + } + break; + } + } + + CleanupStack::PopAndDestroy(watcher); + CleanupStack::PopAndDestroy(signalStrengthWatcher); + CleanupStack::PopAndDestroy(indicatorWatcher); + + return TestStepResult(); + } // CTelWatchersUnitTestNetworkAvailabilityChangesWithPublishSubscribe::doTestStepL + +/** + * Each test step initialises it's own name + */ +CTelWatchersUnitTestSimulteCommDBModemChangeWithPublishSubscribe::CTelWatchersUnitTestSimulteCommDBModemChangeWithPublishSubscribe() + { + // + // Store the name of this test case. This is the name that is used by + // the script file. + // + SetTestStepName(_L("TestSimulteCommDBModemChangeWithPublishSubscribe")); + } //CTelWatchersUnitTestSimulteCommDBModemChangeWithPublishSubscribe::CTelWatchersUnitTestSimulteCommDBModemChangeWithPublishSubscribe + + +/** + * Simple destructor. + */ +CTelWatchersUnitTestSimulteCommDBModemChangeWithPublishSubscribe::~CTelWatchersUnitTestSimulteCommDBModemChangeWithPublishSubscribe() + { + // NOP + } // CTelWatchersUnitTestSimulteCommDBModemChangeWithPublishSubscribe::~CTelWatchersUnitTestSimulteCommDBModemChangeWithPublishSubscribe + + +/** + * This test issues a number of CommDB table update requests to the Watcher and + * checks that the CommDB table is re-read. + */ +enum TVerdict CTelWatchersUnitTestSimulteCommDBModemChangeWithPublishSubscribe::doTestStepL() + { + SetSimTsyTestNumberL(0); + + INFO_PRINTF2(_L("Simulate %d CommDB default modem changes with publish and subscribe"), + KSimulatedCommDBChanges); + + RProperty propMdmRecordChanged; //-- modem record change property (debug only) + RProperty propMdmTableRefreshed; //-- modem table re-read property (debug only) + + TESTL(propMdmRecordChanged.Attach(KUidSystemCategory, KUidTestProp_ModemRecordChanged.iUid) == KErrNone); + TESTL(propMdmTableRefreshed.Attach(KUidSystemCategory, KUidTestProp_ModemTableRefreshed.iUid) == KErrNone); + + // + // Install the Indicator and Signal Strength watcher... + // + TInt dummyWatcherParams; + CIndicatorWatcher* indicatorWatcher = CIndicatorWatcher::NewL((TAny*)&dummyWatcherParams); + CleanupStack::PushL(indicatorWatcher); + + CSignalStrengthWatcher* signalStrengthWatcher = CSignalStrengthWatcher::NewL((TAny*)&dummyWatcherParams); + CleanupStack::PushL(signalStrengthWatcher); + + // + // Allow a few seconds for the Active Objects to start... + // + PauseToRunActiveSchedulerL(10); + + // + // Wait for the change events... + // + CWatcherObserverPS* watcher = new(ELeave) CWatcherObserverPS; + CleanupStack::PushL(watcher); + TInt counter; + + for (counter = 0; counter < KSimulatedCommDBChanges; counter++) + { + // + // Send some comm db modem record change events + // + TTime time; + time.UniversalTime(); + + TESTL(RProperty::Set(KUidSystemCategory, KUidCommDbModemPhoneServicesAndSMSChange.iUid, I64LOW(time.Int64())) == KErrNone ); + + // + // Now wait for an ack that the change was spotted... + // + watcher->BindProperty(&propMdmRecordChanged); + watcher->WaitForPropertyChangeL(); + + INFO_PRINTF1(_L(" CommDB change has been spotted.")); + + // + // Now wait for an ack that the modem table has been re-read ok + // + watcher->BindProperty(&propMdmTableRefreshed); + watcher->WaitForPropertyChangeL(); + + INFO_PRINTF1(_L(" Modem table has been re-read.")); + + // + // Now wait a few seconds before trying again + // + PauseToRunActiveSchedulerL(10); + } + + CleanupStack::PopAndDestroy(watcher); + CleanupStack::PopAndDestroy(signalStrengthWatcher); + CleanupStack::PopAndDestroy(indicatorWatcher); + + return TestStepResult(); + } // CTelWatchersUnitTestSimulteCommDBModemChangeWithPublishSubscribe::doTestStepL + + +/** + * Each test step initialises it's own name + */ +CTelWatchersUnitTestCommDBChangeWhenWatcherDisabledWithPublishSubscribe::CTelWatchersUnitTestCommDBChangeWhenWatcherDisabledWithPublishSubscribe() + { + // + // Store the name of this test case. This is the name that is used by + // the script file. + // + SetTestStepName(_L("TestCommDBChangeWhenWatcherDisabledWithPublishSubscribe")); + } // CTelWatchersUnitTestCommDBChangeWhenWatcherDisabledWithPublishSubscribe::CTelWatchersUnitTestCommDBChangeWhenWatcherDisabledWithPublishSubscribe + + +/** + * Simple destructor. + */ +CTelWatchersUnitTestCommDBChangeWhenWatcherDisabledWithPublishSubscribe::~CTelWatchersUnitTestCommDBChangeWhenWatcherDisabledWithPublishSubscribe() + { + // NOP + } // CTelWatchersUnitTestCommDBChangeWhenWatcherDisabledWithPublishSubscribe::~CTelWatchersUnitTestCommDBChangeWhenWatcherDisabledWithPublishSubscribe + + +/** + * This test checks that the Watcher notices a CommDB change whilst the Watcher + * are disabled. + */ +enum TVerdict CTelWatchersUnitTestCommDBChangeWhenWatcherDisabledWithPublishSubscribe::doTestStepL() + { + SetSimTsyTestNumberL(0); + + INFO_PRINTF1(_L("Test sending a CommDB change when the watcher is disabled with publish and subscribe")); + + RProperty propPhoneWatcherDisable;//-- Phone watchers disabling/reset (debug only) + RProperty propMdmRecordChanged; //-- modem record change property (debug only) + RProperty propMdmTableRefreshed; //-- modem table re-read property (debug only) + + TESTL(propPhoneWatcherDisable.Attach(KUidSystemCategory, KUidTestProp_WatchersDisable.iUid) == KErrNone); + TESTL(propMdmRecordChanged.Attach(KUidSystemCategory, KUidTestProp_ModemRecordChanged.iUid) == KErrNone); + TESTL(propMdmTableRefreshed.Attach(KUidSystemCategory, KUidTestProp_ModemTableRefreshed.iUid) == KErrNone); + + // + // Install the Indicator and Signal Strength watcher... + // + TInt dummyWatcherParams; + CIndicatorWatcher* indicatorWatcher = CIndicatorWatcher::NewL((TAny*)&dummyWatcherParams); + CleanupStack::PushL(indicatorWatcher); + + CSignalStrengthWatcher* signalStrengthWatcher = CSignalStrengthWatcher::NewL((TAny*)&dummyWatcherParams); + CleanupStack::PushL(signalStrengthWatcher); + + // + // Allow a few seconds for the Active Objects to start... + // + PauseToRunActiveSchedulerL(10); + + + // + // To wait for the change events... + // + CWatcherObserverPS* watcher = new(ELeave) CWatcherObserverPS(); + CleanupStack::PushL(watcher); + + // + // Disable the watcher by setting the property... + // + TESTL(propPhoneWatcherDisable.Set(ETrue) == KErrNone ); + + INFO_PRINTF1(_L(" Watcher has been disabled.")); + + // + // Send some Comm DB modem record change events... + // + TTime time; + time.UniversalTime(); + + TESTL(RProperty::Set(KUidSystemCategory, KUidCommDbModemPhoneServicesAndSMSChange.iUid, I64LOW(time.Int64())) == KErrNone ); + + // + // Now wait for an ack that the change was spotted... + // + watcher->BindProperty(&propMdmRecordChanged); + watcher->WaitForPropertyChangeL(); + INFO_PRINTF1(_L(" CommDB change has been spotted.")); + + // + // Now wait for an ack that the modem table has been re-read ok + // + watcher->BindProperty(&propMdmTableRefreshed); + watcher->WaitForPropertyChangeL(); + INFO_PRINTF1(_L(" Modem table has been re-read.")); + + // + // Now wait a few seconds before trying again... + // + PauseToRunActiveSchedulerL(10); + + CleanupStack::PopAndDestroy(watcher); + CleanupStack::PopAndDestroy(signalStrengthWatcher); + CleanupStack::PopAndDestroy(indicatorWatcher); + + return TestStepResult(); + } // CTelWatchersUnitTestCommDBChangeWhenWatcherDisabledWithPublishSubscribe::doTestStepL