buildverification/smoketest/agenda/Src/TestAgendaBase.cpp
branchRCL_3
changeset 20 493058e57c8c
parent 0 9736f095102e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/buildverification/smoketest/agenda/Src/TestAgendaBase.cpp	Wed Sep 01 12:30:50 2010 +0100
@@ -0,0 +1,225 @@
+// Copyright (c) 2006-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:
+// This contains CTestAgendaCase which is the base class for all the Agenda TestCase DLL
+// 
+//
+
+// EPOC includes
+#include <e32base.h>
+#include <uri16.h>
+#include <uriutils.h>
+#include <test/testexecutelog.h>
+#include "TestAgendabase.h"
+#include "TestAgendaServerLaunchProgress.h"
+
+#include <calsession.h>
+
+
+
+_LIT(KDef,		"default");
+_LIT(KFileName,		"filenameSecure");
+
+void CTestAgendaPicture::NewPictureL(TPictureHeader& /*aHeader*/,const CStreamStore& /*aDeferredPictureStore*/)const
+/**
+Creates a new Picture object for use by agenda model, currently the implementation is empty as our code
+does not use any the functionality.
+*/
+	{
+	//empty implementation
+	}
+
+CTestAgendaPicture::CTestAgendaPicture()
+/**
+constructor, currently the implementation is empty
+*/
+	{
+	//empty implementation
+	}
+
+CTestAgendaPicture::~CTestAgendaPicture()
+/**
+destructor, currently the implementation is empty
+*/
+	{
+	//empty implementation
+	}
+
+CTestAgendaBase::CTestAgendaBase()
+: CTestStep()
+, iSchedular(NULL)
+, iEnteredBlocked(EFalse)
+, iExitedBlocked(EFalse)
+, iSessionConnected(EFalse)
+, iCalEntryViewBase(NULL)
+, iStore(NULL)
+, iCalSession(NULL)
+	{
+	}
+
+// destructor
+CTestAgendaBase::~CTestAgendaBase()
+	{
+	delete iSchedular;
+	iSchedular=NULL;
+	
+	}
+
+enum TVerdict CTestAgendaBase::doTestStepPreambleL()
+	{
+	TVerdict	ret = CTestStep::doTestStepPreambleL();
+	
+	INFO_PRINTF1(_L("doTestStepPreambleL"));
+	iSchedular=new (ELeave) CActiveScheduler();
+	CActiveScheduler::Install(iSchedular);
+	
+	iCalSession = CCalSession::NewL();
+
+	return ret;
+	}
+
+enum TVerdict CTestAgendaBase::doTestStepPostambleL()
+	{
+	
+	delete iCalEntryViewBase;
+	iCalEntryViewBase=NULL;
+	
+	delete iSchedular;
+	iSchedular=NULL;
+	CActiveScheduler::Install(NULL);
+	
+
+	return CTestStep::doTestStepPostambleL();
+	}
+
+// Create a new database
+void CTestAgendaBase::CreateDatabaseL( void )
+	{
+	TPtrC	ptrFileName;
+	TBool	returnValue =GetStringFromConfig(ConfigSection(), KFileName, ptrFileName);
+	if ( !returnValue )
+		returnValue=GetStringFromConfig(KDef, KFileName, ptrFileName);
+	
+	if (returnValue)
+		{
+		INFO_PRINTF2(_L("filename = %S"), &ptrFileName);
+		}
+	else
+		{
+		User::Leave(KErrNotFound);
+		}
+
+	//	Connect file server
+	User::LeaveIfError(iFs.Connect());
+	iSessionConnected=ETrue;
+	
+	TInt r;
+	if (iCalSession)
+	    {
+		TRAP(r, iCalSession->CreateCalFileL(ptrFileName));
+	    }
+	    
+	if (r == KErrAlreadyExists)
+	    {
+		TRAP_IGNORE(iCalSession->DeleteCalFileL(ptrFileName));
+		TRAP(r, iCalSession->CreateCalFileL(ptrFileName));
+	    }
+
+        
+	if (r!=KErrNone && r!=KErrAlreadyExists)
+		{
+		ERR_PRINTF2(_L("Creating Agenda file failed with error %d"), r);
+		SetTestStepResult(EFail);
+		}
+	}
+
+void CTestAgendaBase::OpenDatabaseL( void )
+	{
+	TPtrC	ptrFileName;
+	TBool	returnValue =GetStringFromConfig(ConfigSection(), KFileName, ptrFileName);
+	if ( !returnValue )
+		returnValue=GetStringFromConfig(KDef, KFileName, ptrFileName);
+	
+
+	if (returnValue)
+		{
+		INFO_PRINTF2(_L("filename = %S"), &ptrFileName);
+		}
+	else
+		{
+		User::Leave(KErrNotFound);
+		}
+
+	//	Connect file server
+	User::LeaveIfError(iFs.Connect());
+	iSessionConnected=ETrue;
+
+    
+	if (iCalSession)
+	    {
+		iCalSession->OpenL(ptrFileName);
+	    }	
+    
+	//open the database by creating an object of CTestAgendaServerLaunchProgress
+	CTestAgendaServerLaunchProgress*	progress = CTestAgendaServerLaunchProgress::NewL(this);
+	CleanupStack::PushL(progress);
+
+	//kick start the launching process
+	progress->Start();
+	CActiveScheduler::Start();
+	CleanupStack::PopAndDestroy(progress);
+
+	}
+
+void CTestAgendaBase::CleanupDatabase( void )
+	{
+	if (iCalEntryViewBase)
+	    {
+		delete iCalEntryViewBase;
+		iCalEntryViewBase = NULL;
+	    }
+
+/*	if (iCalSession)
+		{
+		delete iCalSession;
+		iCalSession=NULL;
+		}*/
+
+
+	if (iSessionConnected)
+		{
+		iFs.Close();
+		iSessionConnected=EFalse;
+		}
+	}
+	
+void CTestAgendaBase::SetCalEntryView(CCalEntryView* calEntryViewPtr)
+    {
+	iCalEntryViewBase = calEntryViewPtr;
+    }
+
+CCalSession& CTestAgendaBase::CalSession()
+    {
+	if (iCalSession)
+	    {
+		return *iCalSession;
+	    }
+	else
+	    {
+	    iCalSession = CCalSession::NewL();
+	    
+	    return *iCalSession;	
+	    }
+    }
+
+