--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/email/pop3andsmtpmtm/clientmtms/test/src/T_imcm05.cpp Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,606 @@
+// Copyright (c) 1998-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:
+// Name of test harness: T_IMCM05
+// Component: IMCM
+// Owner: EH
+// Brief description of test harness:
+// Tests the HTML resolving functions on CImEmailMessage using real files
+// generated by any mail client. It also indirectly tests that the HTML
+// parsing code is compatible with the HTML resolving code.
+// Detailed description of test harness:
+// As above.
+// Input files required to run test harness:
+// \MSG\IMCMTSRC\mainpic.msg <DRIVE>:\msgtest\IMCM\mainpic.msg
+// \MSG\IMCMTSRC\mhtml1.eml <DRIVE>:\msgtest\IMCM\rfc822\mhtml1.eml
+// \MSG\IMCMTSRC\mhtml3.eml <DRIVE>:\msgtest\IMCM\rfc822\mhtml3.eml
+// \MSG\IMCMTSRC\mhtml5.eml <DRIVE>:\msgtest\IMCM\rfc822\mhtml5.eml
+// Intermediate files produced while running test harness:
+// <DRIVE>:\msglogs\T_IMCM05\T_IMCM05.LOG
+// Output files produced by running test harness:
+// <DRIVE>:\msglogs\T_IMCM05.<PLATFORM>.<VARIANT>.LOG.txt
+// Description of how to build test harness:
+// cd \msg\imcm\
+// bldmake bldfiles
+// abld test build
+// Description of how to run test harness:
+// The following instructions are the same for all platforms:
+// 1. Build T_DB test harness from COMMDB component:
+// cd \commdb\group
+// bldmake bldfiles
+// abld test build t_db
+// 2. Build the test utilities:
+// cd \msg\testutils\group\
+// bldmake bldfiles
+// abld build
+// WINS running instructions:
+// 1. \epoc32\release\wins\<VARIANT>\T_IMCM05.exe can be used at the command prompt
+// or executable can be run from Windows Explorer.
+// All other platform running instructions:
+// 1. Copy \epoc32\release\<PLATFORM>\<VARIANT>\T_IMCM05.exe onto the other platform
+// 2. Copy \epoc32\release\<PLATFORM>\<VARIANT>\MSVTESTUTILS.DLL into
+// <DRIVE>:\system\libs on the other platform
+// 3. Copy \epoc32\release\<PLATFORM>\<VARIANT>\EMAILTESTUTILS.DLL into
+// <DRIVE>:\system\libs on the other platform
+// 4. Run T_IMCM05.exe on the other platform
+//
+//
+
+#include "emailtestutils.h"
+#include <miutlog.h>
+#include <miutmsg.h>
+#include <txtrich.h>
+#include <logcli.h>
+#include <logview.h>
+
+
+// local variables etc //
+
+_LIT(KImcmTest, "T_IMCM05 - Testing URI resolving of real MHTML messages");
+_LIT(K_T_IMCM5_INIT, "Setting up MHTML test");
+_LIT(K_T_IMCM5_FIND_FIRST, "Finding first HTML page");
+_LIT(K_T_IMCM5_RESOLVE_URI, "Resolving URI");
+_LIT(K_T_IMCM5_FIND_FIRST_FILE_HANDLE, "Finding first HTML page file handle");
+_LIT(K_T_IMCM5_RESOLVE_URI_FILE_HANDLE, "Resolving URI File Handle");
+RTest test(KImcmTest);
+
+LOCAL_D CTrapCleanup* theCleanup;
+LOCAL_D CImLog* log;
+LOCAL_D CEmailTestUtils* testUtils;
+
+_LIT(KPictureUrl1, "cid:002101bf68b6$6782dfb0$060b970a@intra");
+
+//
+
+LOCAL_C void Init()
+ {
+ CActiveScheduler* scheduler = new (ELeave) CActiveScheduler;
+ CActiveScheduler::Install(scheduler);
+ CleanupStack::PushL(scheduler);
+
+ testUtils = CEmailTestUtils::NewLC(test);
+ testUtils->CreateAllTestDirectories();
+ testUtils->FileSession().SetSessionPath(_L("C:\\"));
+ testUtils->CleanMessageFolderL();
+
+ log = CImLog::NewL(_L("c:\\logs\\email\\t_imcm05.log"), EAppend);
+ CleanupStack::PushL(log);
+ log->AppendComment(_L8("*** T_IMCM05 Testing MHTML resolving with real message files ***"));
+ TBuf8<80> buf;
+#if defined(__WINS__)
+ buf.Append(_L8("WINS "));
+#else
+ buf.Append(_L8("MARM "));
+#endif
+#if defined(_UNICODE)
+ buf.Append(_L8("U"));
+#endif
+#if defined(_DEBUG)
+ buf.Append(_L8("DEB"));
+#else
+ buf.Append(_L8("REL"));
+#endif
+ log->AppendComment(buf);
+ }
+
+LOCAL_C void Closedown()
+ {
+ log->AppendComment(_L8("********** T_IMCM05 Tests Complete **********"));
+ log->AppendComment(_L8(""));
+
+ CleanupStack::PopAndDestroy(3); //testUtils, scheduler, log
+ }
+
+//
+
+TMsvId loadMessageL(const TDesC& aFileName, CEmailTestUtils& aTestUtils)
+ // Reset the message server
+ // Clean out the message folder
+ // Load the message and return its ID
+ {
+ aTestUtils.Reset();
+
+ // wait a couple of seconds
+ CTestTimer* timer = CTestTimer::NewL();
+ timer->After(5000000);
+ CActiveScheduler::Start();
+ delete timer;
+
+ aTestUtils.CleanMessageFolderL();
+ aTestUtils.GoServerSideL();
+
+ // Read the test message into the mail directory.
+ aTestUtils.CreateMessageL(aFileName, KMsvGlobalOutBoxIndexEntryId, KMsvGlobalOutBoxIndexEntryId);
+ aTestUtils.GoClientSideL();
+ timer = CTestTimer::NewL();
+ timer->After(5000000);
+ CActiveScheduler::Start();
+ delete timer;
+
+
+ CMsvEntry* entry = testUtils->iMsvEntry;
+ entry->SetEntryL(KMsvGlobalOutBoxIndexEntryId);
+ CMsvEntrySelection* newMessageList = entry->ChildrenL();
+ CleanupStack::PushL(newMessageList);
+ TMsvId newMessage = (*newMessageList)[0];
+ CleanupStack::PopAndDestroy(); // newMessageList
+
+ return newMessage;
+ }
+
+//
+
+LOCAL_C void doMainL()
+ {
+ Init();
+ CTestActive* testActive = new CTestActive;
+ CleanupStack::PushL(testActive);
+ TInt globalError = KErrNone;
+ TInt error;
+
+ testUtils->WriteComment(KImcmTest);
+ testUtils->FileSession().SetSessionPath(_L("c:\\"));
+
+ testUtils->WriteComment(K_T_IMCM5_INIT);
+
+ CImEmailMessage* emailMessage;
+ TMsvId newMessage;
+ TBool found;
+ TMsvId newEntryId;
+ TMsvId firstPageId;
+ TFileName fileCompareName;
+ RFile file;
+ HBufC* fileName;
+
+// Test message #1
+
+ // Read the test message into the mail directory.
+ newMessage = loadMessageL(_L("c:\\mailtest\\mainpic.msg"), *testUtils);
+
+ // Set up the emailMessage object
+ emailMessage = CImEmailMessage::NewLC(*(testUtils->iMsvEntry));
+
+ testUtils->TestStart(0, K_T_IMCM5_FIND_FIRST);
+ // Find the first HTML page.
+ testActive->StartL();
+ emailMessage->FindFirstHTMLPageL(newMessage, testActive->iStatus);
+ CActiveScheduler::Start();
+ fileName = emailMessage->GetUniversalResourceIdentifierL(newEntryId, found);
+ CleanupStack::PushL(fileName);
+ // Check we've got the right one.
+ testUtils->Test()(found);
+ error = ((*fileName).CompareF(_L("C:\\Private\\1000484b\\Mail2\\00001001_S\\4\\00100004_F\\Attachment.html")) == 0) ? KErrNone : KErrNotFound;
+ CleanupStack::PopAndDestroy(fileName);
+ testUtils->TestFinish(0, error);
+ if (globalError == KErrNone)
+ globalError = error;
+
+ testUtils->TestStart(1, K_T_IMCM5_RESOLVE_URI);
+ // Find the picture.
+ testActive->StartL();
+ emailMessage->FindUniversalResourceIdentifierL(newEntryId, _L(""), KPictureUrl1, testActive->iStatus);
+ CActiveScheduler::Start();
+ fileName = emailMessage->GetUniversalResourceIdentifierL(newEntryId, found);
+ CleanupStack::PushL(fileName);
+ // Check that we've got the right one.
+ testUtils->Test()(found);
+ error = ((*fileName).CompareF(_L("C:\\private\\1000484b\\Mail2\\00001001_S\\5\\00100005_F\\logo1.gif")) == 0) ? KErrNone : KErrNotFound;
+
+ CleanupStack::PopAndDestroy(fileName);
+ testUtils->TestFinish(1, error);
+ if (globalError == KErrNone)
+ globalError = error;
+
+ CleanupStack::PopAndDestroy(emailMessage);
+
+//
+
+// Test message #2
+
+ // Read the test message into the mail directory.
+ newMessage = loadMessageL(_L("c:\\mailtest\\rfc822\\mhtml1.eml"), *testUtils);
+ emailMessage = CImEmailMessage::NewLC(*(testUtils->iMsvEntry));
+
+ testUtils->TestStart(2, K_T_IMCM5_FIND_FIRST);
+ // Find the first HTML page.
+ testActive->StartL();
+ emailMessage->FindFirstHTMLPageL(newMessage, testActive->iStatus);
+ CActiveScheduler::Start();
+ fileName = emailMessage->GetUniversalResourceIdentifierL(newEntryId, found);
+ CleanupStack::PushL(fileName);
+ // Check we've got the right one.
+ testUtils->Test()(found);
+ error = ((*fileName).CompareF(_L("C:\\private\\1000484b\\Mail2\\00001001_S\\3\\00100003_F\\Attachment.html")) == 0 ) ? KErrNone : KErrNotFound;
+
+ CleanupStack::PopAndDestroy(fileName);
+ testUtils->TestFinish(2, error);
+ if (globalError == KErrNone)
+ globalError = error;
+
+ // Test quoted content-location values.
+ testUtils->TestStart(3, K_T_IMCM5_RESOLVE_URI);
+ testActive->StartL();
+ emailMessage->FindUniversalResourceIdentifierL(newEntryId, _L(""), _L("/styles.css"), testActive->iStatus);
+ CActiveScheduler::Start();
+ fileName = emailMessage->GetUniversalResourceIdentifierL(newEntryId, found);
+ CleanupStack::PushL(fileName);
+ // Check that we have not got the file, but a URI.
+ testUtils->Test()(!found);
+ error = ((*fileName).CompareF(_L("http://www.nokia.com/styles.css")) == 0 ) ? KErrNone : KErrNotFound;
+
+ CleanupStack::PopAndDestroy(fileName);
+ testUtils->TestFinish(3, error);
+ if (globalError == KErrNone)
+ globalError = error;
+
+ CleanupStack::PopAndDestroy(emailMessage);
+
+//
+
+// Test message #3
+
+ // Read the test message into the mail directory.
+ newMessage = loadMessageL(_L("c:\\mailtest\\rfc822\\mhtml5.eml"), *testUtils);
+ emailMessage = CImEmailMessage::NewLC(*(testUtils->iMsvEntry));
+
+ testUtils->TestStart(4, K_T_IMCM5_FIND_FIRST);
+ // Find the first HTML page.
+ testActive->StartL();
+ emailMessage->FindFirstHTMLPageL(newMessage, testActive->iStatus);
+ CActiveScheduler::Start();
+ fileName = emailMessage->GetUniversalResourceIdentifierL(newEntryId, found);
+ firstPageId = newEntryId;
+ CleanupStack::PushL(fileName);
+ // Check we've got the right one.
+ testUtils->Test()(found);
+ error = ((*fileName).CompareF(_L("C:\\private\\1000484b\\Mail2\\00001001_S\\5\\00100005_F\\Attachment.html")) == 0) ? KErrNone : KErrNotFound;
+
+ CleanupStack::PopAndDestroy(fileName);
+ testUtils->TestFinish(4, error);
+ if (globalError == KErrNone)
+ globalError = error;
+
+ testUtils->TestStart(5, K_T_IMCM5_RESOLVE_URI);
+ testActive->StartL();
+ emailMessage->FindUniversalResourceIdentifierL(newEntryId, _L(""), _L("http://www.nokia.com/pics/releasemore.gif"), testActive->iStatus);
+ CActiveScheduler::Start();
+ fileName = emailMessage->GetUniversalResourceIdentifierL(newEntryId, found);
+ CleanupStack::PushL(fileName);
+ // Check that we've got the right one.
+ testUtils->Test()(found);
+ error = ((*fileName).CompareF(_L("C:\\private\\1000484b\\Mail2\\00001001_S\\3\\00100013_F\\Attachment.gif")) == 0 ) ? KErrNone : KErrNotFound;
+
+ CleanupStack::PopAndDestroy(fileName);
+ testUtils->TestFinish(5, error);
+ if (globalError == KErrNone)
+ globalError = error;
+
+ testUtils->TestStart(6, K_T_IMCM5_RESOLVE_URI);
+ testActive->StartL();
+ newEntryId = firstPageId;
+ emailMessage->FindUniversalResourceIdentifierL(newEntryId, _L(""), _L("pics/102_grey_1px.gif"), testActive->iStatus);
+ CActiveScheduler::Start();
+ fileName = emailMessage->GetUniversalResourceIdentifierL(newEntryId, found);
+ CleanupStack::PushL(fileName);
+ // Check that we've got the right one.
+ testUtils->Test()(found);
+ error = ((*fileName).CompareF(_L("C:\\private\\1000484b\\Mail2\\00001001_S\\a\\0010000a_F\\Attachment.gif")) == 0 ) ? KErrNone : KErrNotFound;
+
+ CleanupStack::PopAndDestroy(fileName);
+ testUtils->TestFinish(6, error);
+ if (globalError == KErrNone)
+ globalError = error;
+
+ testUtils->TestStart(7, K_T_IMCM5_RESOLVE_URI);
+ testActive->StartL();
+ newEntryId = firstPageId;
+ emailMessage->FindUniversalResourceIdentifierL(newEntryId, _L(""), _L("/pics/snow_small.gif"), testActive->iStatus);
+ CActiveScheduler::Start();
+ fileName = emailMessage->GetUniversalResourceIdentifierL(newEntryId, found);
+ CleanupStack::PushL(fileName);
+ // Check that we've got the right one.
+ testUtils->Test()(found);
+ error = ((*fileName).CompareF(_L("C:\\private\\1000484b\\Mail2\\00001001_S\\6\\00100006_F\\Attachment.gif")) == 0 ) ? KErrNone : KErrNotFound;
+
+ CleanupStack::PopAndDestroy(fileName);
+ testUtils->TestFinish(7, error);
+ if (globalError == KErrNone)
+ globalError = error;
+
+ CleanupStack::PopAndDestroy(emailMessage);
+
+//
+
+// Test message #4
+// Hotmail message
+
+ // Read the test message into the mail directory.
+ newMessage = loadMessageL(_L("c:\\mailtest\\rfc822\\mhtml3.eml"), *testUtils);
+ emailMessage = CImEmailMessage::NewLC(*(testUtils->iMsvEntry));
+
+ testUtils->TestStart(8, K_T_IMCM5_FIND_FIRST);
+ // Find the first HTML page.
+ testActive->StartL();
+ emailMessage->FindFirstHTMLPageL(newMessage, testActive->iStatus);
+ CActiveScheduler::Start();
+ fileName = emailMessage->GetUniversalResourceIdentifierL(newEntryId, found);
+ firstPageId = newEntryId;
+ CleanupStack::PushL(fileName);
+ // Check we've got the right one.
+ testUtils->Test()(found);
+ error = ((*fileName).CompareF(_L("C:\\private\\1000484b\\Mail2\\00001001_S\\4\\00100004_F\\Attachment.html")) == 0 ) ? KErrNone : KErrNotFound; // eh xxxx, needs updating
+
+ CleanupStack::PopAndDestroy(fileName);
+ testUtils->TestFinish(8, error);
+ if (globalError == KErrNone)
+ globalError = error;
+
+ testUtils->TestStart(9, K_T_IMCM5_RESOLVE_URI);
+ testActive->StartL();
+ newEntryId = firstPageId;
+ emailMessage->FindUniversalResourceIdentifierL(newEntryId, _L(""), _L("cid:part_00$2c587273$285c5f6d@hotmail.com"), testActive->iStatus);
+ CActiveScheduler::Start();
+ fileName = emailMessage->GetUniversalResourceIdentifierL(newEntryId, found);
+ CleanupStack::PushL(fileName);
+ // Check that we've got the right one.
+ testUtils->Test()(found);
+ error = ((*fileName).CompareF(_L("C:\\private\\1000484b\\Mail2\\00001001_S\\5\\00100005_F\\Attachment.gif")) == 0 ) ? KErrNone : KErrNotFound; // eh xxxx, needs updating
+
+ CleanupStack::PopAndDestroy(fileName);
+ testUtils->TestFinish(9, error);
+ if (globalError == KErrNone)
+ globalError = error;
+
+ CleanupStack::PopAndDestroy(emailMessage);
+
+//
+// Test message #5
+
+ // Read the test message into the mail directory.
+ newMessage = loadMessageL(_L("c:\\mailtest\\mainpic.msg"), *testUtils);
+
+ // Set up the emailMessage object
+ emailMessage = CImEmailMessage::NewLC(*(testUtils->iMsvEntry));
+
+ testUtils->TestStart(10, K_T_IMCM5_FIND_FIRST_FILE_HANDLE);
+ // Find the first HTML page.
+ testActive->StartL();
+ emailMessage->FindFirstHTMLPageFileHandleL(newMessage, testActive->iStatus);
+ CActiveScheduler::Start();
+
+ testUtils->Test()(emailMessage->GetUniversalResourceIdentifierFileHandle(newEntryId, file) == KErrNone);
+ CleanupClosePushL(file);
+ testUtils->Test()(file.Name(fileCompareName)==KErrNone);
+ testUtils->Test()(fileCompareName.CompareF(_L("Attachment.html"))==0);
+ CleanupStack::PopAndDestroy(&file);
+
+ testUtils->TestFinish(10, error);
+ if (globalError == KErrNone)
+ globalError = error;
+
+ testUtils->TestStart(11, K_T_IMCM5_RESOLVE_URI_FILE_HANDLE);
+ // Find the picture.
+ testActive->StartL();
+ emailMessage->FindUniversalResourceIdentifierFileHandleL(newEntryId, _L(""), KPictureUrl1, testActive->iStatus);
+ CActiveScheduler::Start();
+
+ testUtils->Test()(emailMessage->GetUniversalResourceIdentifierFileHandle(newEntryId, file) == KErrNone);
+ CleanupClosePushL(file);
+ testUtils->Test()(file.Name(fileCompareName)==KErrNone);
+ testUtils->Test()(fileCompareName.CompareF(_L("logo1.gif"))==0);
+ CleanupStack::PopAndDestroy(&file);
+
+ testUtils->TestFinish(11, error);
+ if (globalError == KErrNone)
+ globalError = error;
+
+ CleanupStack::PopAndDestroy(emailMessage);
+
+// Test message #6
+
+ // Read the test message into the mail directory.
+ newMessage = loadMessageL(_L("c:\\mailtest\\rfc822\\mhtml1.eml"), *testUtils);
+ emailMessage = CImEmailMessage::NewLC(*(testUtils->iMsvEntry));
+
+ testUtils->TestStart(12, K_T_IMCM5_FIND_FIRST_FILE_HANDLE);
+ // Find the first HTML page.
+ testActive->StartL();
+ emailMessage->FindFirstHTMLPageFileHandleL(newMessage, testActive->iStatus);
+ CActiveScheduler::Start();
+ testUtils->Test()(emailMessage->GetUniversalResourceIdentifierFileHandle(newEntryId, file) == KErrNone);
+ CleanupClosePushL(file);
+ testUtils->Test()(file.Name(fileCompareName)==KErrNone);
+ testUtils->Test()(fileCompareName.CompareF(_L("Attachment.html"))==0);
+ CleanupStack::PopAndDestroy(&file);
+
+ testUtils->TestFinish(12, error);
+ if (globalError == KErrNone)
+ globalError = error;
+
+
+ // Test quoted content-location values.
+ testUtils->TestStart(13, K_T_IMCM5_RESOLVE_URI_FILE_HANDLE);
+ testActive->StartL();
+ emailMessage->FindUniversalResourceIdentifierFileHandleL(newEntryId, _L(""), _L("/styles.css"), testActive->iStatus);
+ CActiveScheduler::Start();
+ testUtils->Test()(emailMessage->GetUniversalResourceIdentifierFileHandle(newEntryId, file) == KErrNotFound);
+ testUtils->TestFinish(13, error);
+ if (globalError == KErrNone)
+ globalError = error;
+
+ CleanupStack::PopAndDestroy(emailMessage);
+
+
+//
+
+// Test message #7
+
+ // Read the test message into the mail directory.
+ newMessage = loadMessageL(_L("c:\\mailtest\\rfc822\\mhtml5.eml"), *testUtils);
+ emailMessage = CImEmailMessage::NewLC(*(testUtils->iMsvEntry));
+
+ testUtils->TestStart(14, K_T_IMCM5_FIND_FIRST_FILE_HANDLE);
+ // Find the first HTML page.
+ testActive->StartL();
+ emailMessage->FindFirstHTMLPageFileHandleL(newMessage, testActive->iStatus);
+ CActiveScheduler::Start();
+
+ testUtils->Test()(emailMessage->GetUniversalResourceIdentifierFileHandle(newEntryId, file) == KErrNone);
+ CleanupClosePushL(file);
+ firstPageId = newEntryId;
+ testUtils->Test()(file.Name(fileCompareName)==KErrNone);
+ testUtils->Test()(fileCompareName.CompareF(_L("Attachment.html"))==0);
+ CleanupStack::PopAndDestroy(&file);
+
+ testUtils->TestFinish(14, error);
+ if (globalError == KErrNone)
+ globalError = error;
+
+ testUtils->TestStart(15, K_T_IMCM5_RESOLVE_URI_FILE_HANDLE);
+ testActive->StartL();
+ emailMessage->FindUniversalResourceIdentifierFileHandleL(newEntryId, _L(""), _L("http://www.nokia.com/pics/releasemore.gif"), testActive->iStatus);
+ CActiveScheduler::Start();
+
+ testUtils->Test()(emailMessage->GetUniversalResourceIdentifierFileHandle(newEntryId, file) == KErrNone);
+ CleanupClosePushL(file);
+ testUtils->Test()(file.Name(fileCompareName)==KErrNone);
+ testUtils->Test()(fileCompareName.CompareF(_L("Attachment.gif"))==0);
+ CleanupStack::PopAndDestroy(&file);
+
+ testUtils->TestFinish(15, error);
+ if (globalError == KErrNone)
+ globalError = error;
+
+ testUtils->TestStart(16, K_T_IMCM5_RESOLVE_URI_FILE_HANDLE);
+ testActive->StartL();
+ newEntryId = firstPageId;
+ emailMessage->FindUniversalResourceIdentifierFileHandleL(newEntryId, _L(""), _L("pics/102_grey_1px.gif"), testActive->iStatus);
+ CActiveScheduler::Start();
+
+ testUtils->Test()(emailMessage->GetUniversalResourceIdentifierFileHandle(newEntryId, file) == KErrNone);
+ CleanupClosePushL(file);
+ testUtils->Test()(file.Name(fileCompareName)==KErrNone);
+ testUtils->Test()(fileCompareName.CompareF(_L("Attachment.gif"))==0);
+ CleanupStack::PopAndDestroy(&file);
+
+ testUtils->TestFinish(16, error);
+ if (globalError == KErrNone)
+ globalError = error;
+
+ testUtils->TestStart(17, K_T_IMCM5_RESOLVE_URI_FILE_HANDLE);
+ testActive->StartL();
+ newEntryId = firstPageId;
+ emailMessage->FindUniversalResourceIdentifierFileHandleL(newEntryId, _L(""), _L("/pics/snow_small.gif"), testActive->iStatus);
+ CActiveScheduler::Start();
+
+ testUtils->Test()(emailMessage->GetUniversalResourceIdentifierFileHandle(newEntryId, file) == KErrNone);
+ CleanupClosePushL(file);
+ testUtils->Test()(file.Name(fileCompareName)==KErrNone);
+ testUtils->Test()(fileCompareName.CompareF(_L("Attachment.gif"))==0);
+ CleanupStack::PopAndDestroy(&file);
+
+ testUtils->TestFinish(17, error);
+ if (globalError == KErrNone)
+ globalError = error;
+
+ CleanupStack::PopAndDestroy(emailMessage);
+
+//
+
+// Test message #8
+// Hotmail message
+
+ // Read the test message into the mail directory.
+ newMessage = loadMessageL(_L("c:\\mailtest\\rfc822\\mhtml3.eml"), *testUtils);
+ emailMessage = CImEmailMessage::NewLC(*(testUtils->iMsvEntry));
+
+ testUtils->TestStart(18, K_T_IMCM5_FIND_FIRST_FILE_HANDLE);
+ // Find the first HTML page.
+ testActive->StartL();
+ emailMessage->FindFirstHTMLPageFileHandleL(newMessage, testActive->iStatus);
+ CActiveScheduler::Start();
+
+ testUtils->Test()(emailMessage->GetUniversalResourceIdentifierFileHandle(newEntryId, file) == KErrNone);
+ firstPageId = newEntryId;
+ CleanupClosePushL(file);
+ testUtils->Test()(file.Name(fileCompareName)==KErrNone);
+ testUtils->Test()(fileCompareName.CompareF(_L("Attachment.html"))==0);
+ CleanupStack::PopAndDestroy(&file);
+
+ testUtils->TestFinish(18, error);
+ if (globalError == KErrNone)
+ globalError = error;
+
+ testUtils->TestStart(19, K_T_IMCM5_RESOLVE_URI_FILE_HANDLE);
+ testActive->StartL();
+ newEntryId = firstPageId;
+ emailMessage->FindUniversalResourceIdentifierFileHandleL(newEntryId, _L(""), _L("cid:part_00$2c587273$285c5f6d@hotmail.com"), testActive->iStatus);
+ CActiveScheduler::Start();
+
+ testUtils->Test()(emailMessage->GetUniversalResourceIdentifierFileHandle(newEntryId, file) == KErrNone);
+ CleanupClosePushL(file);
+ testUtils->Test()(file.Name(fileCompareName)==KErrNone);
+ testUtils->Test()(fileCompareName.CompareF(_L("Attachment.gif"))==0);
+ CleanupStack::PopAndDestroy(&file);
+
+ testUtils->TestFinish(19, error);
+ if (globalError == KErrNone)
+ globalError = error;
+
+ CleanupStack::PopAndDestroy(emailMessage);
+
+
+ CleanupStack::PopAndDestroy(testActive);
+
+ if (globalError == KErrNone)
+ testUtils->TestHarnessCompleted();
+ else
+ testUtils->TestHarnessFailed(globalError);
+
+ Closedown();
+ }
+
+GLDEF_C TInt E32Main()
+ {
+ __UHEAP_MARK;
+ test.Start(KImcmTest);
+ theCleanup=CTrapCleanup::New();
+ TRAPD(ret,doMainL());
+ test(ret==KErrNone);
+ delete theCleanup;
+ test.End();
+ test.Close();
+ __UHEAP_MARKEND;
+ User::Heap().Check();
+ return(KErrNone);
+ }