diff -r 000000000000 -r 2e3d3ce01487 commonappservices/alarmserver/Test/unit/src/TEAlarmTestSilentUntilStep.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commonappservices/alarmserver/Test/unit/src/TEAlarmTestSilentUntilStep.cpp Tue Feb 02 10:12:00 2010 +0200 @@ -0,0 +1,168 @@ +// Copyright (c) 2005-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: +// + +#include "TEAlarmTestSilentUntilStep.h" + +#include + +_LIT(KSilentUntil, "SilentUntil"); +_LIT(KInitialTime, "InitialTime"); +_LIT(KInvalidates, "Invalidates"); + +CTEAlarmTestSilentUntilStep::~CTEAlarmTestSilentUntilStep() + { + } + +CTEAlarmTestSilentUntilStep::CTEAlarmTestSilentUntilStep() + { + // MANDATORY Call to base class method to set up the human readable name for logging. + SetTestStepName(KTEAlarmTestSilentUntilStep); + } + +TVerdict CTEAlarmTestSilentUntilStep::doTestStepPreambleL() + { + SetTestStepResult(EFail); + + TVerdict verdict = CTEAlarmTestSilentStep::doTestStepPreambleL(); + + if(verdict != EPass) + { + SetTestStepResult(verdict); + return TestStepResult(); + } + + if(!GetTimeFromConfig(ConfigSection(), KSilentUntil, iSilentUntil)) + { + SetTestStepResult(ETestSuiteError); + return TestStepResult(); + } + + if(!GetTimeFromConfig(ConfigSection(), KInitialTime, iInitialTime)) + { + SetTestStepResult(ETestSuiteError); + return TestStepResult(); + } + + if(!GetBoolFromConfig(ConfigSection(), KInvalidates, iInvalidated)) + { + SetTestStepResult(ETestSuiteError); + return TestStepResult(); + } + + SetTestStepResult(EPass); + return TestStepResult(); + } + +TVerdict CTEAlarmTestSilentUntilStep::doTestStepL() + { + if(TestStepResult() != EPass) + { + return TestStepResult(); + } + + SetTestStepResult(EFail); + + INFO_PRINTF2(_L("Initial UTC Offset: %d s"), iInitialUTC.Int()); + + User::SetUTCOffset(iInitialUTC); + + TBuf<10> buf; + + iInitialTime.FormatL(buf, _L("%H:%T:%S")); + INFO_PRINTF2(_L("Initial UTC Time: %s"), buf.PtrZ()); + + TTime oldTime; + oldTime.UniversalTime(); + + User::SetUTCTime(iInitialTime); + + RASCliSession session; + + User::LeaveIfError(session.Connect()); + CleanupClosePushL(session); + + iSilentUntil.FormatL(buf, _L("%H:%T:%S")); + INFO_PRINTF2(_L("Setting Alarm Sounds Silent Until: %s"), buf.PtrZ()); + + User::LeaveIfError(session.SetAlarmSoundsSilentUntil(iSilentUntil)); + + if (!CheckSilentUntilL(session)) + { + goto ret; + } + + INFO_PRINTF2(_L("Updating UTC Offset: %d s"), iMoveToUTC.Int()); + User::SetUTCOffset(iMoveToUTC); + + // Let the Alarm Server react to the UTC change + User::After(1000000); + + if (!CheckSilentUntilL(session)) + { + goto ret; + } + + SetTestStepResult(EPass); + + ret: + User::SetUTCTime(oldTime); + CleanupStack::PopAndDestroy(); + return TestStepResult(); + } + +TVerdict CTEAlarmTestSilentUntilStep::doTestStepPostambleL() + { + SetTestStepResult(CTEAlarmTestSilentStep::doTestStepPostambleL()); + return TestStepResult(); + } + +TBool CTEAlarmTestSilentUntilStep::CheckSilentUntilL(const RASCliSession &aSession) + { + TTime getSilentUntil; + TInt ret = aSession.GetAlarmSoundsSilentUntil(getSilentUntil); + + TTime now; + now.HomeTime(); + + if ((ret == KErrGeneral) && + iInvalidated) // UTC offset change invalidates silent period. + { + return ETrue; + } + + User::LeaveIfError(ret); + + TBuf<10> buf; + iSilentUntil.FormatL(buf, _L("%H:%T:%S")); + + if (iSilentUntil != getSilentUntil) + { + INFO_PRINTF1(_L("SetAlarmSoundsSilentUntil and GetAlarmSoundsSilentUntil doesn't match!")); + INFO_PRINTF2(_L("SetAlarmsSilentUntil: %s"), buf.PtrZ()); + + getSilentUntil.FormatL(buf, _L("%H:%T:%S")); + INFO_PRINTF2(_L("GetAlarmsSilentUntil: %s"), buf.PtrZ()); + + return EFalse; + } + + INFO_PRINTF1(_L("SetAlarmSoundsSilentUntil and GetAlarmSoundsSilentUntil matches")); + INFO_PRINTF2(_L("SetAlarmsSilentUntil: %s"), buf.PtrZ()); + + getSilentUntil.FormatL(buf, _L("%H:%T:%S")); + INFO_PRINTF2(_L("GetAlarmsSilentUntil: %s"), buf.PtrZ()); + + return ETrue; + }