//
// Copyright (c) 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:
//
// Test Case Name:
//	04_TotalSizeLimit_MultipleMails.script
// ------------------------------------------
// Component Under Test:
//	Email
// ------------------------------------------
// API function under test:
//	CImap4ClientMtm::InvokeAsyncFunctionL()
//	with IMAP4 command KIMAP4MTMPopulate
// ------------------------------------------
// Requirement/Use Case/Functional Spec:
//	CR SSIN-5VGN7E 
// ------------------------------------------
// Polarity:
//	Positive
// ------------------------------------------
// Test Type (unit, integration, panic, performance, conformance, stress, or interoperability):
//	Integration
// ------------------------------------------
// Expected Panic ID (if a panic test, only for non-scripted test cases):
//	n/a
// ------------------------------------------
// Interface Dependencies (does it require connection, which subsystems does it require):
// 	Requires connection to Messaging Server
// ------------------------------------------
// Importance (critical, high, or low):
//	High
// ------------------------------------------
// Execution Time (fast, medium, or slow):
//	medium
// ------------------------------------------
// Pre-condition description:
//	1.  Set the SMTP and IMAP4 service settings for an IMAP4 account
//	2.  Connect to IMAP4 server and synchronise with the IMAP4 server 
//	3.  Delete all mails in the Inbox on the server
//	4.  Disconnect from IMAP4 server
//
//	The Local Inbox and Sent Item folders and the remote Inbox folder of IMAP4 
//	account are cleaned up before starting the test.
// ------------------------------------------
// Action Description:
// 	CR SSIN-5VGN7E - IMAP4 Size Filtering
// 	- Test Case 04: 
//	1.  Create emails from RFC822 file and send emails to the same account
//	2.  Set the download limits
//	3.  Download the mails with IMAP4 KIMAP4MTMPopulate command
//	4.  Copy the mails from IMAP4 Inbox folder to Local inbox folder	
//	5.  Compare the received messages with sent messages based on the Download limits set
//		
// 	Implementation and execution:
//	The emails are sent to the sender's address only.
//	New messages are created, sent and received.  The received messages are compared with 
//    the sent messages, based on the download limits set, for size and contents.
//
//    Download Limits set: Partial Download limits is set
//			
//		TImImap4GetPartialMailInfo::iTotalSizeLimit = 5000
//		TImImap4GetPartialMailInfo::iBodyTextSizeLimit = 5000
//		TImImap4GetPartialMailInfo::iAttachmentSizeLimit = 5000
//		TImImap4PartialMailOptions::ECumulative
//
// ------------------------------------------
// Post-condition description (i.e., expected outcome):
//		If the email size is greater than the TImImap4GetPartialMailInfo::iTotalSizeLimit,
//		whatever fit in the total size limit should be downloaded in order of body text 
//		first then attachments and then html part of the email. Footer string should indicate the
//		remaining size of the body text (body text and html part)in the server.  
//		If the email size is lesser than the total size limit then the complete mail 
//		should be downloaded.
// ------------------------------------------
// Reference to a review document:
//	
// ------------------------------------------
// Full pathname of an epoc.ini (if there are special epoc.ini requirements)
// 	For emulator, an epoc.ini that creates an emulated external drive (drive letter 
//	between D: and Y:) is required. Optionally, an environment variable can be defined.
// ------------------------------------------
// Any CommDb restrictions:
//	NTRAS CommDb
// ------------------------------------------
// Build Requirements (e.g., no watchers):
//	No Watchers and Phone Book Synchroniser
// ------------------------------------------
// Hardware Requirements
//	Null Modem Cable for NT RAS connection
// ------------------------------------------

RUN_UTILS DeleteFile c:\messaging.db
LOAD_SUITE MessagingTestServer -SharedData
//CED c:\msgtest\TestFramework\Configurations\CommDbSettings\NtRasLongIdleTimeout.cfg

PREFIX RUN_TEST_STEP 1000 MessagingTestServer
BEGIN_TEST_CASE
SETUP_TEST_CASE
GetBaseConstants				c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	GetBaseConstants
InitNtRas					c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	InitNtRas
CreateSession				c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	CreateSession
ResetMessageStore				c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	ResetMessageStore
CreateImap4Service			c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	CreateImap4Service
CreateSmtpService				c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	CreateSmtpService
SetDefaultConfiguration			c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	SetDefaultConfiguration0
SetDefaultConfiguration			c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	SetDefaultConfiguration1
SetDefaultConfiguration			c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	SetDefaultConfiguration2
CreateRegistry				c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	CreateRegistry
CreateImap4Mtm				c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	CreateImap4Mtm
CreateSmtpMtm				c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	CreateSmtpMtm
GetDefaultSmtpService			c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	GetDefaultSmtpService
SetImap4ServiceParameters		c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	SetImap4ServiceParameters
SetSmtpServiceParameters		c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	SetSmtpServiceParameters
ConnectImap4Server   			c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	ConnectImap4Server0
DoFullImap4Synchronisation		c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	DoFullImap4Synchronisation0
FindEntryByName				c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	FindEntryByName0
DeleteChildren				c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	DeleteChildren
CheckChildrenCount			c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	CheckChildrenCount0
DisconnectImap4Server			c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	DisconnectImap4Server0
EXECUTE_TEST_CASE	
CreateSmtpMessageFromEmailFile	c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	CreateSmtpMessageFromEmailFile0
CopyEntry					c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	CopyEntry0
CreateSmtpMessageFromEmailFile	c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	CreateSmtpMessageFromEmailFile1
CopyEntry					c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	CopyEntry1
SetImap4PartialDownloadLimits		c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	SetImap4PartialDownloadLimits
ConnectImap4Server   			c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	ConnectImap4Server1
DoFullImap4Synchronisation		c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	DoFullImap4Synchronisation1
CreateChildrenSelection			c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	CreateChildrenSelection
DoImap4Populate				c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	DoImap4Populate
DisconnectImap4Server			c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	DisconnectImap4Server1
CHECK_POSTCONDITIONS
CreateChildrenSelection			c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini	CreateChildrenSentItems
CompareEmailMessages			c:\msgtest\TestFramework\ScriptedTestCases\Imap4SizeFiltering\04_TotalSizeLimit_MultipleMails.ini     CompareEmailMessages
END_TEST_CASE