email/testutils/src/T_UtilsCentralRepository.cpp
branchSymbian2
changeset 1 8758140453c0
child 6 c108117318cb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/email/testutils/src/T_UtilsCentralRepository.cpp	Thu Jan 21 12:53:44 2010 +0000
@@ -0,0 +1,292 @@
+// 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 the License "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+// User includes
+#include <t_utilscentralrepository.h>
+
+// epoc includes
+#include <msvids.h>
+
+/**
+CT_MsgUtilsCentralRepository()
+Constructor
+*/
+EXPORT_C CT_MsgUtilsCentralRepository::CT_MsgUtilsCentralRepository()
+	{
+	}
+
+
+/**
+~CT_MsgUtilsCentralRepository()
+Destructor
+*/
+CT_MsgUtilsCentralRepository::~CT_MsgUtilsCentralRepository()
+	{
+	}
+
+
+/**
+GetDefaultSmtpServiceIdL()
+This function return the default Smtp Service Id. This method requires that a
+related IMAP4 or POP3 account has been previously created in the central
+repository - this is because SMTP accounts do not exist independently but only
+as part of an IMAP4 or POP3 account
+
+@return
+Entry ID of the default SMTP service entry
+*/
+EXPORT_C TMsvId CT_MsgUtilsCentralRepository::GetDefaultSmtpServiceIdL()
+	{
+	CEmailAccounts* emailAccounts = CEmailAccounts::NewLC();
+	
+	TSmtpAccount smtpAccount;
+	smtpAccount.iSmtpService = KMsvNullIndexEntryId;
+	User::LeaveIfError(emailAccounts->DefaultSmtpAccountL(smtpAccount));
+
+	CleanupStack::PopAndDestroy(emailAccounts);
+	
+	return smtpAccount.iSmtpService;
+	}
+
+
+/**
+GetImapServiceIdL()
+This function returns the Service Id of the IMAP account with the specified name
+
+@param aName
+The Imap account name
+
+@return
+It returns entry Id of an IMAP service
+*/
+EXPORT_C TMsvId CT_MsgUtilsCentralRepository::GetImapServiceIdL(TDes& aName)
+	{
+	TImapAccount imapAccount;
+	TMsvId imapServiceId = KMsvNullIndexEntryId;
+
+	TBool returnValue = GetImapAccountL( aName, imapAccount );
+	
+	if ( returnValue )
+		{
+		imapServiceId = imapAccount.iImapService;
+		}
+	return imapServiceId;
+	}
+
+
+/**
+GetPopServiceIdL()
+This function returns the Service Id of the POP account with the specified name
+
+@param aName
+The Pop account name
+
+@return
+Returns entry Id of an POP service
+*/
+EXPORT_C TMsvId CT_MsgUtilsCentralRepository::GetPopServiceIdL(TDes& aName)
+	{
+	TPopAccount popAccount;
+	TMsvId popServiceId = KMsvNullIndexEntryId;
+
+	TBool returnValue = GetPopAccountL( aName, popAccount );
+	
+	if ( returnValue )
+		{
+		popServiceId = popAccount.iPopService;
+		}
+	return popServiceId;
+	}
+
+/**
+GetSmtpServiceIdL()
+This function returns the Service Id of the SMTP account with the specified name
+
+@param aName
+The Smtp account name
+
+@return
+Returns entry Id of an SMTP service
+*/
+EXPORT_C TMsvId CT_MsgUtilsCentralRepository::GetSmtpServiceIdL(TDes& aName)
+	{
+	TSmtpAccount smtpAccount;
+	TMsvId smtpServiceId = KMsvNullIndexEntryId;
+
+	TBool returnValue = GetSmtpAccountL(aName, smtpAccount);
+	
+	if (returnValue)
+		{
+		smtpServiceId = smtpAccount.iSmtpService;
+		}
+	return smtpServiceId;
+	}
+
+/**
+GetImapAccountL()
+Searches the IMAP account with the specified name and 
+returns the TImapAccount oject associted to it.
+
+@param aName
+The Imap account name
+
+@param aImapAccount
+An object of type TImapAccount
+
+@leave KErrNotFound
+Leaves if no account found with the supplied name.
+
+@return
+ETrue if the account is found, else EFalse
+*/
+EXPORT_C TBool CT_MsgUtilsCentralRepository::GetImapAccountL(TDes& aName, TImapAccount& aImapAccount )
+	{
+	TImapAccount imapAccount;
+	imapAccount.iImapService = KMsvNullIndexEntryId;
+
+	// Get the list of IMAP accounts
+	RArray<TImapAccount> accountIds;
+
+	CEmailAccounts *emailAccounts = CEmailAccounts::NewLC();	
+	emailAccounts->GetImapAccountsL(accountIds);
+	
+	// Search for the account with the given name in the list of IMAP accounts
+	TBool accountFound = EFalse;
+	for( TInt index = 0; index < accountIds.Count(); index++)
+		{
+		TImapAccount tempAccount = accountIds[index];
+		TPtrC accountPtr( tempAccount.iImapAccountName );
+
+		if( accountPtr.Compare(aName) == 0 )
+			{
+			aImapAccount = tempAccount;
+			accountFound = ETrue;
+			break;
+			}
+		}
+	if(!accountFound)
+		{
+		User::Leave(KErrNotFound);
+		}
+	CleanupStack::PopAndDestroy(emailAccounts);
+	accountIds.Reset();
+	
+	return accountFound;
+	}
+
+
+/**
+GetPopAccountL()
+Searches the POP account with the specified name and 
+returns the TPopAccount oject associted to it.
+
+@param aName
+The Imap account name
+
+@param aPopAccount
+An object of type TPopAccount
+
+@leave KErrNotFound
+Leaves if no account found with the supplied name.
+
+@return
+ETrue if the account is found, else EFalse
+*/
+EXPORT_C TBool CT_MsgUtilsCentralRepository::GetPopAccountL(TDes& aName, TPopAccount& aPopAccount )
+	{
+	TPopAccount popAccount;
+	popAccount.iPopService = KMsvNullIndexEntryId;
+
+	// Get the list of POP accounts
+	RArray<TPopAccount> accountIds;
+
+	CEmailAccounts *emailAccounts = CEmailAccounts::NewLC();	
+	emailAccounts->GetPopAccountsL(accountIds);
+	
+	// Search for the account with the given name in the list of POP accounts
+	TBool accountFound = EFalse;
+	for( TInt index = 0; index < accountIds.Count(); index++)
+		{
+		TPopAccount tempAccount = accountIds[index];
+		TPtrC accountPtr( tempAccount.iPopAccountName );
+
+		if( accountPtr.Compare(aName) == 0 )
+			{
+			aPopAccount = tempAccount;
+			accountFound = ETrue;
+			break;
+			}
+		}
+	if(!accountFound)
+		{
+		User::Leave(KErrNotFound);
+		}
+	CleanupStack::PopAndDestroy(emailAccounts);
+	accountIds.Reset();
+
+	return accountFound;
+	}
+
+/**
+GetSmtpAccountL()
+Searches the SMTP account with the specified name and 
+returns the TSmtpAccount oject associted to it.
+
+@param aName
+The Smtp account name
+
+@param aSmtpAccount
+An object of type TSmtpAccount
+
+@leave KErrNotFound
+Leaves if no account found with the supplied name.
+
+@return
+ETrue if the account is found, else EFalse
+*/
+EXPORT_C TBool CT_MsgUtilsCentralRepository::GetSmtpAccountL(TDes& aName, TSmtpAccount& aSmtpAccount)
+	{
+	TSmtpAccount smtpAccount;
+	smtpAccount.iSmtpService = KMsvNullIndexEntryId;
+
+	// Get the list of SMTP accounts
+	RArray<TSmtpAccount> accountIds;
+
+	CEmailAccounts *emailAccounts = CEmailAccounts::NewLC();	
+	emailAccounts->GetSmtpAccountsL(accountIds);
+	
+	// Search for the account with the given name in the list of SMTP accounts
+	TBool accountFound = EFalse;
+	for( TInt index = 0; index < accountIds.Count(); index++)
+		{
+		TSmtpAccount tempAccount = accountIds[index];
+		TPtrC accountPtr( tempAccount.iSmtpAccountName );
+
+		if( accountPtr.Compare(aName) == 0 )
+			{
+			aSmtpAccount = tempAccount;
+			accountFound = ETrue;
+			break;
+			}
+		}
+	if(!accountFound)
+		{
+		User::Leave(KErrNotFound);
+		}
+	CleanupStack::PopAndDestroy(emailAccounts);
+	accountIds.Reset();
+
+	return accountFound;
+	}