commonappservices/alarmserver/Test/unit/src/TEAlarmTestSilentUntilStep.cpp
changeset 0 2e3d3ce01487
--- /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 <asclisession.h>
+
+_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;
+	}