common/tools/ats/smoketest/email/email/smtp/src/T_CreateSmtpMessageFromEmailFile.cpp
author victorp@symbian.org
Wed, 03 Feb 2010 16:06:24 +0000
changeset 872 17498133d9ad
parent 719 d5603c08781b
permissions -rw-r--r--
adding EPL headers to smoke test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
719
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     1
// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     2
// All rights reserved.
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     3
// This component and the accompanying materials are made available
872
17498133d9ad adding EPL headers to smoke test
victorp@symbian.org
parents: 719
diff changeset
     4
// under the terms of the License "Eclipse Public License v1.0"
719
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     5
// which accompanies this distribution, and is available
872
17498133d9ad adding EPL headers to smoke test
victorp@symbian.org
parents: 719
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
719
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     7
//
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     8
// Initial Contributors:
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    10
//
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    11
// Contributors:
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    12
//
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    13
// Description:
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    14
// [TestStep Name]
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    15
// CreateSmtpMessageFromEmailFile
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    16
// [Paramaters]
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    17
// ParentFolderName	: Name of the local folder under which the message 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    18
// needs to be created
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    19
// EmailFileName		: Email file from which the message is to be created
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    20
// KilobytesExtra		: Number of lines of 1024 characters to add to body text
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    21
// Default value is 0.
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    22
// [Test Step Description]
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    23
// Creates an Email message reading the contents from the email file specified
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    24
// from the config file.
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    25
// [APIs Used]
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    26
// CMsvEntry::SetEntryL
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    27
// 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    28
//
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    29
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    30
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    31
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    32
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    33
 @file
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    34
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    35
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    36
// User include
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    37
#include "ImCltCvRecv.h"
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    38
#include <t_utilscentralrepository.h>
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    39
#include "T_CreateSmtpMessageFromEmailFile.h"
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    40
#include <t_utilsenumconverter.h>
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    41
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    42
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    43
// Literals Used
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    44
_LIT(KEmailFileName, "EmailFileName");
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    45
_LIT(KParentFolderName,"ParentFolderName");
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    46
_LIT(KKilobytesExtra, "KilobytesExtra");
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    47
_LIT(KOverRideAddress, "OverRideAddress");
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    48
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    49
// Maximum length of a line read from Email file
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    50
const TInt KMaxLenghtOfLine = 1024;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    51
const TInt KMaxLenghtOfChar = 1;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    52
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    53
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    54
CT_MsgCreateSmtpMessageFromEmailFile()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    55
Sets the test step name to KCreateSmtpMessageFromEmailFile
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    56
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    57
@param aSharedDataSMTP
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    58
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    59
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    60
CT_MsgCreateSmtpMessageFromEmailFile::CT_MsgCreateSmtpMessageFromEmailFile(CT_MsgSharedDataSmtp& aSharedDataSMTP)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    61
:	CT_MsgSyncStepSMTP(aSharedDataSMTP)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    62
	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    63
	SetTestStepName(KCreateSmtpMessageFromEmailFile);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    64
	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    65
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    66
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    67
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    68
NewL()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    69
Static factory constructor. Uses two phase 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    70
construction.
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    71
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    72
@param aSharedDataSMTP
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    73
@leave KErrNoMemory
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    74
@return
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    75
A pointer to the newly created CT_MsgCreateSmtpMessageFromEmailFile object.
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    76
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    77
CT_MsgCreateSmtpMessageFromEmailFile* CT_MsgCreateSmtpMessageFromEmailFile::NewL(CT_MsgSharedDataSmtp& aSharedDataSMTP)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    78
	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    79
	CT_MsgCreateSmtpMessageFromEmailFile* self = new(ELeave) CT_MsgCreateSmtpMessageFromEmailFile(aSharedDataSMTP);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    80
	CleanupStack::PushL(self);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    81
	CleanupStack::Pop(self);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    82
	return self;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    83
	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    84
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    85
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    86
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    87
~CT_MsgCreateSmtpMessageFromEmailFile()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    88
Destructor
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    89
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    90
CT_MsgCreateSmtpMessageFromEmailFile::~CT_MsgCreateSmtpMessageFromEmailFile()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    91
	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    92
	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    93
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    94
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    95
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    96
doTestStepL()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    97
Reads the name of the email file,parent foldername from the ini file
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    98
Parses the email file to generate a message under the parent folder 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    99
mentioned.If the number of lines is mentioned in the ini file then adds it to the 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   100
message.If not mentioned takes a default of 0.
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   101
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   102
@return
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   103
Returns the test step result
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   104
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   105
TVerdict CT_MsgCreateSmtpMessageFromEmailFile::doTestStepL()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   106
	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   107
	INFO_PRINTF1(_L("Test Step: CreateSmtpMessageFrom email file"));
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   108
	TPtrC emailFileName;	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   109
	// Read the name of the email file from the ini
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   110
	if(!GetStringFromConfig(ConfigSection(),KEmailFileName,emailFileName))
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   111
		{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   112
		ERR_PRINTF1(_L("Email file name not specified"));
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   113
		SetTestStepResult(EFail);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   114
		}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   115
	else
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   116
		{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   117
		TInt numKilobytesExtra = 0;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   118
		GetIntFromConfig( ConfigSection(), KKilobytesExtra, numKilobytesExtra);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   119
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   120
		TPtrC parentFolderName;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   121
		if(!GetStringFromConfig( ConfigSection(), KParentFolderName, parentFolderName))
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   122
			{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   123
			ERR_PRINTF1(_L("Parent Folder is not specified"));
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   124
			SetTestStepResult(EFail);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   125
			}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   126
		else
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   127
			{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   128
			// Retrieves the folder Id based on the local folder name read from the ini file
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   129
			TMsvId parentFolderId = CT_MsgUtilsEnumConverter::FindFolderIdByName(parentFolderName);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   130
			if( parentFolderId == KErrNotFound)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   131
				{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   132
				ERR_PRINTF1(_L("Invalid local folder name specified"));
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   133
				SetTestStepResult(EFail);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   134
				}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   135
			else
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   136
				{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   137
				INFO_PRINTF2(_L("The parent folder Id is %d"),parentFolderId );
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   138
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   139
				// Retrieve the default Smtp service Id
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   140
				TMsvId	smtpServiceId(0);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   141
				TRAPD(err,smtpServiceId = CT_MsgUtilsCentralRepository::GetDefaultSmtpServiceIdL());
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   142
				if(smtpServiceId == KMsvNullIndexEntryId)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   143
					{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   144
					ERR_PRINTF1(_L("Invalid account name specified"));
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   145
					SetTestStepResult(EFail);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   146
					}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   147
				else
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   148
					{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   149
					if(err != KErrNone)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   150
						{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   151
						ERR_PRINTF2(_L("Failure while getting the default SMTP Service Id.  error = %d"),err);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   152
						SetTestStepResult(EFail);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   153
						}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   154
					else
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   155
						{	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   156
						INFO_PRINTF2(_L("The default Smtp serviceId is %d"),smtpServiceId );
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   157
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   158
						// Set the context to the folder in which message has to be created
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   159
						CMsvEntry*	entry = CMsvEntry::NewL(*iSharedDataSMTP.iSession,parentFolderId,TMsvSelectionOrdering());
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   160
						CleanupStack::PushL(entry);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   161
						entry->SetEntryL(parentFolderId);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   162
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   163
						RFs	fs;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   164
						User::LeaveIfError(fs.Connect());
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   165
						CleanupClosePushL(fs);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   166
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   167
						CImCltRecvConvert* recvConvert = CImCltRecvConvert::NewLC(fs,entry,KUidMsgTypeSMTP,
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   168
																			   smtpServiceId);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   169
						recvConvert->SetMsvId(parentFolderId);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   170
					
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   171
						// Read one line of text from the file, parse the line and set the fields of the email 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   172
						// message based on the contents of the parsed line.								   
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   173
						
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   174
						// Open the Email file in read mode
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   175
						RFile	file;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   176
						User::LeaveIfError(file.Open(fs,emailFileName,EFileRead));
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   177
						CleanupClosePushL(file);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   178
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   179
						TBuf8<KMaxLenghtOfLine> line;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   180
						TBuf8<KMaxLenghtOfChar> aChar;				// To read one character from the file
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   181
						TBool finished = FALSE;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   182
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   183
						recvConvert->ResetL();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   184
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   185
						// Parse each line from the 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   186
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   187
						do
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   188
							{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   189
						 	line.FillZ();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   190
						 	line.SetLength(0);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   191
						 	// Read one line from email file
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   192
						 	do 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   193
						  		{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   194
						  		file.Read(aChar, 1);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   195
						  		if(aChar.Length())
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   196
						  			{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   197
									line.Append(aChar);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   198
									}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   199
						  		else
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   200
									{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   201
									finished = TRUE;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   202
									}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   203
						  		}while(aChar.Length() && aChar[0] != 0x0A);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   204
							if(!line.Length())
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   205
								{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   206
								break;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   207
								}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   208
								// Parse the line for the fields of the email and store them
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   209
							recvConvert->ParseNextFieldL(line);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   210
							}while(!finished);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   211
					
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   212
							// For a large email, pad the email with extra characters
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   213
							if(numKilobytesExtra > 0)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   214
								{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   215
								const TChar KPadChar = 'L';
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   216
								line.Fill(KPadChar, 1024);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   217
								for(TInt i = 0; i < numKilobytesExtra; i++)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   218
									{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   219
									recvConvert->ParseNextFieldL(line);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   220
									}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   221
								}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   222
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   223
						// Complete the message creation by setting all the required fields and 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   224
						// storing the email on to the message store.
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   225
						// The created email's ID is returned by MessageCompelteL function
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   226
						//
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   227
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   228
						TMsvId messageId;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   229
						messageId = recvConvert->MessageCompleteL();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   230
						
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   231
						if(messageId == 0)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   232
							{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   233
							User::Leave(KErrUnknown);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   234
							}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   235
						TBool overrideAddr = ETrue; // Default is to override.
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   236
						GetBoolFromConfig(ConfigSection(), KOverRideAddress, overrideAddr);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   237
						// If the recipients email address in the message need to be changed to SMTP service's
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   238
						// email address field, "overrideAddr" should be set to ETrue.
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   239
						if(overrideAddr)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   240
							{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   241
							CImSmtpSettings* settings = new(ELeave) CImSmtpSettings();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   242
							CleanupStack::PushL(settings);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   243
					 		
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   244
					 		CEmailAccounts* accounts = CEmailAccounts::NewLC();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   245
					 		TSmtpAccount smtpAccount;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   246
					 		accounts->GetSmtpAccountL(smtpServiceId, smtpAccount);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   247
							accounts->LoadSmtpSettingsL(smtpAccount, *settings);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   248
							CleanupStack::PopAndDestroy(accounts);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   249
							
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   250
							HBufC* emailAddress=settings->EmailAddress().AllocL();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   251
							CleanupStack::PushL(emailAddress);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   252
							
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   253
							entry->SetEntryL(messageId);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   254
							CMsvStore* store = entry->EditStoreL();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   255
							CleanupStack::PushL(store);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   256
							
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   257
							CImHeader* header = CImHeader::NewLC(); 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   258
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   259
							header->RestoreL(*store); // Retrieves the email message header
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   260
							
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   261
							header->ToRecipients().Reset();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   262
							header->ToRecipients().AppendL(*emailAddress); // Modification of the e-mail ID
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   263
							
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   264
							header->StoreL(*store);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   265
							store->CommitL();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   266
							
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   267
							CleanupStack::PopAndDestroy(3, emailAddress);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   268
							CleanupStack::PopAndDestroy(settings);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   269
							}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   270
						INFO_PRINTF2(_L("Created a email from file %S"),&emailFileName);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   271
						INFO_PRINTF2(_L("The id of the message created is %d"),messageId);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   272
							
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   273
						CleanupStack::PopAndDestroy(4, entry); // file, recvConvert, fs, entry
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   274
						}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   275
					}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   276
				}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   277
			}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   278
		}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   279
	return TestStepResult();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   280
	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   281
		
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   282
		
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   283
		
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   284