diff -r 000000000000 -r 72b543305e3a email/pop3andsmtpmtm/clientmtms/test/src/T_MIUT03.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/pop3andsmtpmtm/clientmtms/test/src/T_MIUT03.cpp Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,2804 @@ +// 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_MIUT03 +// Component: IMCM +// Owner: KP +// Brief description of test harness: +// Tests TImMessageField - tests for valid internet email addresses. +// Detailed description of test harness: +// As above. +// Functions not tested: +// ValidInternetEmailAddressChar(const TChar& aChar); +// ValidSubjectLineChar(const TChar& aChar); +// GetValidInternetEmailAddressFromString(TDesC&, TInt&) +// GetValidInternetEmailAddressFromString(TDesC&, TInt&, TInt&) +// GetValidInternetEmailAddressFromString(TDesC&, TInt&, TInt&, TInt&) +// ValidAliasName(const TDesC16& aAliasName); +// ValidAliasName(const TDesC16& aAliasName, TInt& rFirstBadCharPos); +// Input files required to run test harness: +// None +// Intermediate files produced while running test harness: +// :\msgtest\T_MIUT03\T_IMCM.log +// Output files produced by running test harness: +// :\msglogs\T_MIUT03...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\\T_MIUT03.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\\\T_MIUT03.exe onto the other platform +// 2. Copy \epoc32\release\\\MSVTESTUTILS.DLL into +// :\system\libs on the other platform +// 3. Copy \epoc32\release\\\EMAILTESTUTILS.DLL into +// :\system\libs on the other platform +// 4. Run T_MIUT03.exe on the other platform +// +// + +#include "emailtestutils.h" +#include "miutpars.h" // TImMessageField +#include +#include "miuthdr.h" // CImHeader + +// local variables etc // + +RTest test(_L("MIUT03 - Test TImMessageField class")); +LOCAL_D CTrapCleanup* theCleanup; +LOCAL_D CImLog* log; +LOCAL_D CEmailTestUtils* testUtils; + + //added test steps for PDEF119208:Can't send email with a especial symbol ">" in Your name field. + + _LIT(KMiutFrom, "ralph>< "); + _LIT(KMiutFrom1, "ralph<> "); + _LIT(KMiutFrom2, "ralph> "); + _LIT(KMiutFrom3, "ralph>>> "); + _LIT(KMiutFrom4, "ralph< "); + _LIT(KMiutFrom5, "ralph<<< "); +_LIT(KMiutFrom6, "David Noble Worrrkman "); +// + +LOCAL_C void ResultOfTest(TBool aResult,TInt aTestNo) + { + TBuf8<80> buf; + _LIT8(KIMCMTestPassed, "PASSED Test %d"); + _LIT8(KIMCMTestFailed, "FAILED Test %d"); + if (aResult) + { + buf.AppendFormat(KIMCMTestPassed, aTestNo); + test.Printf(TRefByValue_L("Passed test %d\n"),aTestNo); + log->AppendComment(buf); + } + else + { + buf.AppendFormat(KIMCMTestFailed, aTestNo); + test.Printf(TRefByValue_L("Failed test %d\n"),aTestNo); + log->AppendComment(buf); + } + } + +LOCAL_C TBool PassedTest(TBool aPassedTest, TDesC& aString, TBool aPass) + { + TBuf8<256> buf; + TBuf8<256> stringBuf; + if (aPass) + { + if (!aPassedTest) + { + _LIT8(KString, "\t\tString not valid: %S"); + stringBuf.Copy(aString); + buf.AppendFormat(KString, &stringBuf); + log->AppendError(buf,-1); + } + } + else + { + if (aPassedTest) + { + _LIT8(KString, "\t\tString valid: %S"); + stringBuf.Copy(aString); + buf.AppendFormat(KString, &stringBuf); + log->AppendError(buf,-1); + } + } + return (aPassedTest==aPass); + } + +LOCAL_C TBool CompareBadCharPos(TDesC& aString, TInt aBadPos1, TInt aBadPos2) + { + if (aBadPos1!=aBadPos2) + { + _LIT8(KString, "\t\tIncorrect bad character position in: %S"); + TBuf8<256> buf; + TBuf8<256> stringBuf; + stringBuf.Copy(aString); + buf.AppendFormat(KString, &stringBuf); + log->AppendError(buf,aBadPos1); + } + return (aBadPos1==aBadPos2); + } + +LOCAL_C TBool CompareFirstLastPos(TDesC& aString, TInt aFirstCharPos1, TInt aLastCharPos1, TInt aFirstCharPos2, TInt aLastCharPos2) + { + TBuf8<256> buf; + TBuf8<256> stringBuf; + if (aFirstCharPos1!=aFirstCharPos2) + { + _LIT8(KString, "\t\tIncorrect first character position in: %S"); + stringBuf.Copy(aString); + buf.AppendFormat(KString, &stringBuf); + log->AppendError(buf,aFirstCharPos1); + } + if (aLastCharPos1!=aLastCharPos2) + { + _LIT8(KString, "\t\tIncorrect last character position in: %S"); + stringBuf.SetLength(0); + buf.SetLength(0); + stringBuf.Copy(aString); + buf.AppendFormat(KString, &stringBuf); + log->AppendError(buf,aLastCharPos1); + } + return ((aFirstCharPos1==aFirstCharPos2)&&(aLastCharPos1==aLastCharPos2)); + } + +LOCAL_C TBool CompareExtractedEmailAddress(TPtrC aExtractedString, TDesC& aString, TBool aPass) + { + TBuf<256> extractedStringBuf; + extractedStringBuf.Copy(aExtractedString); + _LIT8(KString, "\t\tWrong email address extracted : %S"); + + if (((extractedStringBuf!=aString) & aPass)|((extractedStringBuf==aString) & !aPass)) + { + TBuf8<256> buf; + TBuf8<256> stringBuf; + stringBuf.Copy(extractedStringBuf); + buf.AppendFormat(KString, &stringBuf); + log->AppendError(buf,-1); + return EFalse; + } + return (((extractedStringBuf==aString) & aPass)|((extractedStringBuf!=aString) & !aPass)); + } + +// +// TImMessageField Test Functions // +// + +LOCAL_C TInt TestValidInternetEmailAddressFunction1(TBool aTest) + { + // This test tests the ValidInternetEmailAddress(TDesC&) function + TBuf8<80> buf; + _LIT8(KTest, "\tValidInternetEmailAddress(TDesC&) Test (Test %d)"); + buf.AppendFormat(KTest, aTest); + log->AppendComment(buf); + + TBool result = ETrue; + TImMessageField testMessageField; + CImHeader* header = CImHeader::NewLC(); + header->SetFromL(KMiutFrom); + header->SetFromL(KMiutFrom1); + header->SetFromL(KMiutFrom2); + header->SetFromL(KMiutFrom3); + header->SetFromL(KMiutFrom4); + header->SetFromL(KMiutFrom5); + header->SetFromL(KMiutFrom6); + TBuf<80> string=_L("an.email@address.com"); // legal address + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, ETrue); + + //added test steps for PDEF119205:Can't send email with a especial symbol ">" in Your name field. + string=_L("ralph>< "); + result &= PassedTest(testMessageField.ValidInternetEmailAddress(header->From()),string,ETrue); + + string=_L("ralph<> "); + result &= PassedTest(testMessageField.ValidInternetEmailAddress(header->From()),string,ETrue); + + string=_L("ralph> "); + result &= PassedTest(testMessageField.ValidInternetEmailAddress(header->From()),string,ETrue); + + string=_L("ralph>>> "); + result &= PassedTest(testMessageField.ValidInternetEmailAddress(header->From()),string,ETrue); + + string=_L("ralph< "); + result &= PassedTest(testMessageField.ValidInternetEmailAddress(header->From()),string,ETrue); + + string=_L("ralph<<< "); + result &= PassedTest(testMessageField.ValidInternetEmailAddress(header->From()),string,ETrue); + + string=_L("David Noble Worrrkman "); + result &= PassedTest(testMessageField.ValidInternetEmailAddress(header->From()),string,ETrue); + + string=_L("An alias (a comment)"); // legal address + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, ETrue); + + string=_L("stuff "); // valid + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, ETrue); + + string=_L(" (a comment)"); // valid + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, ETrue); + + string=_L(" no brackets"); // valid + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, ETrue); + +/* string=_L("send to test@psion.com by Thursday"); // valid + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, ETrue); +*/ + string=_L("test@Psion (test@Psion)"); // valid - should extract "" + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, ETrue); + + string=_L("\"Genet, Jean\" (test@Psion)"); // valid - should extract "" + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, ETrue); + +/* string=_L("test test.psion.comç (test@Psion)"); // valid - illegal char in alias, but all chars in email address are actually valid + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, ETrue); + + string=_L("@ @ab bc@ a@c &@"); // valid + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, ETrue); +*/ + string=_L("@ "); // valid + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, ETrue); + + string=_L(" @"); // valid + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, ETrue); + + string=_L("(comment before) an.email@address.com no brackets"); // valid + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, ETrue); + + string=_L("(comment before) an.email@address.com (a comment)"); // no alias + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, ETrue); + + string=_L("a@bc"); // valid + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, ETrue); + + string=_L("ab@c"); // valid + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, ETrue); + + string=_L("an.email@address>"); // illegal + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L(""); // illegal - "@" character not surrounded by other char + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L(""); // illegal - "@" character not surrounded by other char + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L(""); // illegal - no "@" character + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L("<@>"); // illegal - no substring surrounding "@" + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L(" a comment"); // invalid - missing open angled bracket + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L("test@Psion (test@Psion)"); // invalid - 2 '@' characters + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L("\" Genet,Jean \" (test@Psion)"); // invalid - 2 '@' characters + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L("\"Jean Genet\" (test@Psion)"); // invalid - 2 '@' characters + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L("test@Psion (test@Psion)"); // invalid - since <> don't contain legal address + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L(""); // invalid - return empty string + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L("\"\" <>"); // invalid + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L("<>"); // invalid + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L("A random bit of text"); // invalid + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L("test@Psion <çtest@psion.com> (test@Psion)"); // invalid illegal char + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L("test@Psion (test@Psion)"); // invalid - illegal char + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L("some stuff çtest@psion.com"); // invalid illegal char + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L("word @ @start end@ test@home "); // invalid - <> don't contain a valid email address + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L("@ "); // invalid - <> don't contain a valid email address + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L(" @"); // invalid - <> don't contain a valid email address + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L("an.email@address.com, another.email@address.com"); // illegal address + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L("an.email@address.com.another.email@address.com"); // illegal address + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L("an.email@address.com,another.email@address.com"); // illegal address + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + +/* // this test should be invalid but it isn't at the moment (26/04/99) + string=_L("an.email@address.com another.email@address.com"); // illegal address + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + */ + + // new cases following changes for more rigourous checking + string=_L("testing.@symbian.com"); // illegal address + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L("testing.one.two@symbian-uk.com"); // legal address + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, ETrue); + + string=_L("~test@uk~symbian.com"); // illegal address + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + string=_L("c?e^o@megabytes.com"); // legal address + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, ETrue); + + string=_L("f#%ko$$!!.???@smartphone.com"); // legal address + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, ETrue); + + string=_L("clever.mobile@sm@rtphone.com"); // illegal address + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string), string, EFalse); + + + ResultOfTest(result, aTest); + CleanupStack::PopAndDestroy(header); + return result; + } + + LOCAL_C TInt TestValidInternetEmailAddressFunction2(TBool aTest) + { + // This test tests the ValidInternetEmailAddress(TDesC&, TInt&) function + TBuf8<80> buf; + _LIT8(KTest, "\tValidInternetEmailAddress(TDesC&, TInt&) Test (Test %d)"); + buf.AppendFormat(KTest, aTest); + log->AppendComment(buf); + + TBool result = ETrue; + TInt badCharPos = 0; + TImMessageField testMessageField; + TBuf<80> string=_L("an.email@address.com"); // legal address + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 0); + + string=_L("An alias (a comment)"); // legal address + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 10); + + string=_L("stuff "); // valid + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 7); + + string=_L(" (a comment)"); // valid + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 1); + + string=_L(" no brackets"); // valid + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 3); + +/* string=_L("send to test@psion.com by Thursday"); // valid + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 8); +*/ + string=_L("test@Psion (test@Psion)"); // valid - should extract "" + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 12); + + string=_L("\"Genet, Jean\" (test@Psion)"); // valid - should extract "" + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 14); + +/* string=_L("test test.psion.comç (test@Psion)"); // valid - illegal char in alias, but all chars in email address are actually valid + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 18); + + string=_L("@ @ab bc@ a@c &@"); // valid + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 16); +*/ + string=_L("@ "); // valid + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 3); + + string=_L(" @"); // valid + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 2); + + string=_L("(comment before) an.email@address.com no brackets"); // valid + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 17); + + string=_L("(comment before) an.email@address.com (a comment)"); // no alias + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 17); + + string=_L("a@bc"); // valid + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 0); + + string=_L("ab@c"); // valid + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 0); + + string=_L("an.email@address>"); // illegal + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 0); + + string=_L(""); // illegal - "@" character not surrounded by other char + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + + string=_L(""); // illegal - "@" character not surrounded by other char + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + + string=_L(""); // illegal - no "@" character + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + + string=_L("<@>"); // illegal - no substring surrounding "@" + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + + string=_L(" a comment"); // invalid - missing open angled bracket + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 0); + + string=_L("test@Psion (test@Psion)"); // invalid - 2 '@' characters + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 12); + + string=_L("\" Genet,Jean \" (test@Psion)"); // invalid - 2 '@' characters + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 16); + + string=_L("\"Jean Genet\" (test@Psion)"); // invalid - 2 '@' characters + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 14); + + string=_L("test@Psion (test@Psion)"); // invalid - since <> don't contain legal address + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + + string=_L(""); // invalid - return empty string + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + + string=_L("\"\" <>"); // invalid + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + + string=_L("<>"); // invalid + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + + string=_L("A random bit of text"); // invalid + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + + string=_L("test@Psion <çtest@psion.com> (test@Psion)"); // invalid illegal char + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 12); + + string=_L("test@Psion (test@Psion)"); // invalid - illegal char + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + + string=_L("some stuff çtest@psion.com"); // invalid illegal char + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 11); + + string=_L("word @ @start end@ test@home "); // invalid - <> don't contain a valid email address + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + + string=_L("@ "); // invalid - <> don't contain a valid email address + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + + string=_L(" @"); // invalid - <> don't contain a valid email address + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 7); + + string=_L("an.email@address.com, another.email@address.com"); // illegal address + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 0); + + string=_L("an.email@address.com.another.email@address.com"); // illegal address + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 0); + + string=_L("an.email@address.com,another.email@address.com"); // illegal address + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 0); + +/* // this test should be invalid but it isn't at the moment (26/04/99) + string=_L("an.email@address.com another.email@address.com"); // illegal address + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 0); + */ + + // new cases following changes for more rigourous checking + string=_L("testing.@symbian.com"); // illegal address + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 0); + + string=_L("testing.one.two@symbian-uk.com"); // legal address + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 0); + + string=_L("~test@uk~symbian.com"); // illegal address + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 0); + + string=_L("c?e^o@megabytes.com"); // legal address + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 0); + + string=_L("f#%ko$$!!.???@smartphone.com"); // legal address + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 0); + + string=_L("clever.mobile@sm@rtphone.com"); // illegal address + badCharPos = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 0); + + ResultOfTest(result, aTest); + return result; + } + + LOCAL_C TInt TestValidInternetEmailAddressFunction3(TBool aTest) + { + // This test tests the ValidInternetEmailAddress(TDesC&, TInt&, TInt&) function + TBuf8<80> buf; + _LIT8(KTest, "\tValidInternetEmailAddress(TDesC&, TInt&, TInt&) Test (Test %d)"); + buf.AppendFormat(KTest, aTest); + log->AppendComment(buf); + + TBool result = ETrue; + TInt leftChar = 0; + TInt rightChar = 0; + TImMessageField testMessageField; + TBuf<80> string=_L("an.email@address.com"); // legal address + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, ETrue); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 19); + + string=_L("An alias (a comment)"); // legal address + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, ETrue); + result &= CompareFirstLastPos(string, leftChar, rightChar, 10, 29); + + string=_L("stuff "); // valid + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, ETrue); + result &= CompareFirstLastPos(string, leftChar, rightChar, 7, 22); + + string=_L(" (a comment)"); // valid + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, ETrue); + result &= CompareFirstLastPos(string, leftChar, rightChar, 1, 20); + + string=_L(" no brackets"); // valid + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, ETrue); + result &= CompareFirstLastPos(string, leftChar, rightChar, 3, 18); + +/* string=_L("send to test@psion.com by Thursday"); // valid + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, ETrue); + result &= CompareFirstLastPos(string, leftChar, rightChar, 9, 21); +*/ + string=_L("test@Psion (test@Psion)"); // valid - should extract "" + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, ETrue); + result &= CompareFirstLastPos(string, leftChar, rightChar, 12, 25); + + string=_L("\"Genet, Jean\" (test@Psion)"); // valid - should extract "" + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, ETrue); + result &= CompareFirstLastPos(string, leftChar, rightChar, 14, 27); + +/* string=_L("test test.psion.comç (test@Psion)"); // valid - illegal char in alias, but all chars in email address are actually valid + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, ETrue); + result &= CompareFirstLastPos(string, leftChar, rightChar, 22, 31); + + string=_L("@ @ab bc@ a@c &@"); // valid + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, ETrue); + result &= CompareFirstLastPos(string, leftChar, rightChar, 16, 18); +*/ + string=_L("@ "); // valid + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, ETrue); + result &= CompareFirstLastPos(string, leftChar, rightChar, 3, 7); + + string=_L(" @"); // valid + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, ETrue); + result &= CompareFirstLastPos(string, leftChar, rightChar, 2, 4); + + string=_L("(comment before) an.email@address.com no brackets"); // valid + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, ETrue); + result &= CompareFirstLastPos(string, leftChar, rightChar, 17, 36); + + string=_L("(comment before) an.email@address.com (a comment)"); // no alias + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, ETrue); + result &= CompareFirstLastPos(string, leftChar, rightChar, 17, 36); + + string=_L("a@bc"); // valid + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, ETrue); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 3); + + string=_L("ab@c"); // valid + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, ETrue); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 3); + + string=_L("an.email@address>"); // illegal + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 16); + + string=_L(""); // illegal - "@" character not surrounded by other char + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 12); + + string=_L(""); // illegal - "@" character not surrounded by other char + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 12); + + string=_L(""); // illegal - no "@" character + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 0); + + string=_L("<@>"); // illegal - no substring surrounding "@" + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 1); + + string=_L(" a comment"); // invalid - missing open angled bracket + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 16); + + string=_L("test@Psion (test@Psion)"); // invalid - 2 '@' characters + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, 12, 26); + + string=_L("\" Genet,Jean \" (test@Psion)"); // invalid - 2 '@' characters + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, 16, 30); + + string=_L("\"Jean Genet\" (test@Psion)"); // invalid - 2 '@' characters + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, 14, 27); + + string=_L("test@Psion (test@Psion)"); // invalid - since <> don't contain legal address + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 20); + + string=_L(""); // invalid - return empty string + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 0); + + string=_L("\"\" <>"); // invalid + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 0); + + string=_L("<>"); // invalid + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 0); + + string=_L("A random bit of text"); // invalid + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 0); + + string=_L("test@Psion <çtest@psion.com> (test@Psion)"); // invalid illegal char + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, 12, 26); + + string=_L("test@Psion (test@Psion)"); // invalid - illegal char + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 21); + + string=_L("some stuff çtest@psion.com"); // invalid illegal char + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, 11, 25); + + string=_L("word @ @start end@ test@home "); // invalid - <> don't contain a valid email address + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 15); + + string=_L("@ "); // invalid - <> don't contain a valid email address + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 0); + + string=_L(" @"); // invalid - <> don't contain a valid email address + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, 7, 0); + + string=_L("an.email@address.com, another.email@address.com"); // illegal address + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 20); + + string=_L("an.email@address.com.another.email@address.com"); // illegal address + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 45); + + string=_L("an.email@address.com,another.email@address.com"); // illegal address + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 45); + +/* // this test should be invalid but it isn't at the moment (26/04/99) + string=_L("an.email@address.com another.email@address.com"); // illegal address + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, 10, 29); + */ + + // new cases following changes for more rigourous checking + string=_L("testing.@symbian.com"); // illegal address + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 19); + + string=_L("testing.one.two@symbian-uk.com"); // legal address + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, ETrue); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 29); + + string=_L("~test@uk~symbian.com"); // illegal address + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 19); + + string=_L("c?e^o@megabytes.com"); // legal address + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, ETrue); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 18 ); + + string=_L("f#%ko$$!!.???@smartphone.com"); // legal address + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, ETrue); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 27); + + string=_L("clever.mobile@sm@rtphone.com"); // illegal address + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, leftChar, rightChar), string, EFalse); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 27); + + ResultOfTest(result, aTest); + return result; + } + +LOCAL_C TInt TestValidInternetEmailAddressFunction4(TBool aTest) + { + // This test tests the ValidInternetEmailAddress(TDesC&, TInt&, TInt&, TInt&) function + TBuf8<80> buf; + _LIT8(KTest, "\tValidInternetEmailAddress(TDesC&, TInt&, TInt&, TInt&) Test (Test %d)"); + buf.AppendFormat(KTest, aTest); + log->AppendComment(buf); + + TBool result = ETrue; + TInt badCharPos = 0; + TInt leftChar = 0; + TInt rightChar = 0; + TImMessageField testMessageField; + TBuf<80> string=_L("an.email@address.com"); // legal address + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 19, -1); + + string=_L("An alias (a comment)"); // legal address + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 10); + result &= CompareFirstLastPos(string, leftChar, rightChar, 29, -1); + + string=_L("stuff "); // valid + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 7); + result &= CompareFirstLastPos(string, leftChar, rightChar, 22, -1); + + string=_L(" (a comment)"); // valid + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 20, -1); + + string=_L(" no brackets"); // valid + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 3); + result &= CompareFirstLastPos(string, leftChar, rightChar, 18, -1); + +/* string=_L("send to test@psion.com by Thursday"); // valid + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 8); + result &= CompareFirstLastPos(string, leftChar, rightChar, 21, -1); +*/ + string=_L("test@Psion (test@Psion)"); // valid - should extract "" + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 12); + result &= CompareFirstLastPos(string, leftChar, rightChar, 25, -1); + + string=_L("\"Genet, Jean\" (test@Psion)"); // valid - should extract "" + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 14); + result &= CompareFirstLastPos(string, leftChar, rightChar, 27, -1); + +/* string=_L("test test.psion.comç (test@Psion)"); // valid - illegal char in alias, but all chars in email address are actually valid + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 18); + result &= CompareFirstLastPos(string, leftChar, rightChar, 31, -1); + + string=_L("@ @ab bc@ a@c &@"); // valid + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 16); + result &= CompareFirstLastPos(string, leftChar, rightChar, 18, -1); +*/ + string=_L("@ "); // valid + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 3); + result &= CompareFirstLastPos(string, leftChar, rightChar, 7, -1); + + string=_L(" @"); // valid + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 2); + result &= CompareFirstLastPos(string, leftChar, rightChar, 4, -1); + + string=_L("(comment before) an.email@address.com no brackets"); // valid + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 17); + result &= CompareFirstLastPos(string, leftChar, rightChar, 36, -1); + + string=_L("(comment before) an.email@address.com (a comment)"); // no alias + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 17); + result &= CompareFirstLastPos(string, leftChar, rightChar, 36, -1); + + string=_L("a@bc"); // valid + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 3, -1); + + string=_L("ab@c"); // valid + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 3, -1); + + string=_L("an.email@address>"); // illegal + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 16, 0); + + string=_L(""); // illegal - "@" character not surrounded by other char + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 12, -1); + + string=_L(""); // illegal - "@" character not surrounded by other char + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 12, -1); + + string=_L(""); // illegal - no "@" character + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, -1); + + string=_L("<@>"); // illegal - no substring surrounding "@" + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 1, -1); + + string=_L(" a comment"); // invalid - missing open angled bracket + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 16, 0); + + string=_L("test@Psion (test@Psion)"); // invalid - 2 '@' characters + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 12); + result &= CompareFirstLastPos(string, leftChar, rightChar, 26, 12); + + string=_L("\" Genet,Jean \" (test@Psion)"); // invalid - 2 '@' characters + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 16); + result &= CompareFirstLastPos(string, leftChar, rightChar, 30, 16); + + string=_L("\"Jean Genet\" (test@Psion)"); // invalid - 2 '@' characters + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 14); + result &= CompareFirstLastPos(string, leftChar, rightChar, 27, 14); + + string=_L("test@Psion (test@Psion)"); // invalid - since <> don't contain legal address + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 20, -1); + + string=_L(""); // invalid - return empty string + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, -1); + + string=_L("\"\" <>"); // invalid + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, -1); + + string=_L("<>"); // invalid + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, -1); + + string=_L("A random bit of text"); // invalid + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, -1); + + string=_L("test@Psion <çtest@psion.com> (test@Psion)"); // invalid illegal char + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 12); + result &= CompareFirstLastPos(string, leftChar, rightChar, 26, 12); + + string=_L("test@Psion (test@Psion)"); // invalid - illegal char + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 21, -1); + + string=_L("some stuff çtest@psion.com"); // invalid illegal char + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 11); + result &= CompareFirstLastPos(string, leftChar, rightChar, 25, 11); + + string=_L("word @ @start end@ test@home "); // invalid - <> don't contain a valid email address + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 15, -1); + + string=_L("@ "); // invalid - <> don't contain a valid email address + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, -1); + + string=_L(" @"); // invalid - <> don't contain a valid email address + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 7); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 7); + + string=_L("an.email@address.com, another.email@address.com"); // illegal address + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 20, 0); + + string=_L("an.email@address.com.another.email@address.com"); // illegal address + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 45, 0); + + string=_L("an.email@address.com,another.email@address.com"); // illegal address + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 45, 0); + +/* // this test should be invalid but it isn't at the moment (26/04/99) + string=_L("an.email@address.com another.email@address.com"); // illegal address + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 29, 0); + */ + + // new cases following changes for more rigourous checking. + // N.B. These values are being passed in wrongly due to an historical error affecting the whole test harness + // and are to be updated at a later date + + string=_L("testing.@symbian.com"); // illegal address + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 19, 0); + + string=_L("testing.one.two@symbian-uk.com"); // legal address + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 29, -1); + + string=_L("~test@uk~symbian.com"); // illegal address + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 19, 0); + + string=_L("c?e^o@megabytes.com"); // legal address + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 18, -1); + + string=_L("f#%ko$$!!.???@smartphone.com"); // legal address + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, ETrue); + result &= CompareBadCharPos(string, badCharPos, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 27, -1); + + string=_L("clever.mobile@sm@rtphone.com"); // illegal address + badCharPos = 0; + leftChar = 0; + rightChar = 0; + result &= PassedTest(testMessageField.ValidInternetEmailAddress(string, badCharPos, leftChar, rightChar), string, EFalse); + result &= CompareBadCharPos(string, badCharPos, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 27, 0); + + ResultOfTest(result, aTest); + return result; + } + + +LOCAL_C TBool TestValidSubjectLineFunction(TInt aTest) + { + // This test tests the ValidSubjectLine() function + // Most characters are valid and therefore all tests should be passed. + // These tests have been incorporated from the original test harness for completeness + TBuf8<80> buf; + _LIT8(KTest, "\tValidSubjectLine() Test (Test %d)"); + buf.AppendFormat(KTest, aTest); + log->AppendComment(buf); + + TBool result = ETrue; + TInt badChar; + TImMessageField testField; + TBuf<80>string=_L("!£$%^&*()_+{}~@:;'#?><,.testing the subject line parser 1234567890"); + TBool result1=(testField.ValidSubjectLine(string,badChar)!=EFalse); + if (!result1) + log->AppendError(_L8("\t\tBad Subject Line (!£$%^&*()_+{}~@:;'#?><,.testing the subject line parser...)"),-1); + result&=result1; + + string=_L(""); + TBool result2=(testField.ValidSubjectLine(string)!=EFalse); + if (!result2) + log->AppendError(_L8("\t\tBad Subject Line (Blank String)"),-1); + result&=result2; + + string=_L("Keith de Mendonça"); + TBool result3=(testField.ValidSubjectLine(string,badChar)!=EFalse); + if (!result3) + log->AppendError(_L8("\t\tBad Subject Line (Keith de Mendonça)"),-1); + result&=result3; + + string=_L("ça bad char at start of string"); + TBool result4=(testField.ValidSubjectLine(string,badChar)!=EFalse); + if (!result4) + log->AppendError(_L8("\t\tBad Subject Line (ça bad char at start of string)"),-1); + result&=result4; + + string=_L("a bad char at end of stringç"); + TBool result5=(testField.ValidSubjectLine(string,badChar)!=EFalse); + if (!result5) + log->AppendError(_L8("\t\tBad Subject Line (a bad char at end of stringç)"),-1); + result&=result5; + + string=_L("ç"); + TBool result6=(testField.ValidSubjectLine(string,badChar)!=EFalse); + if (!result6) + log->AppendError(_L8("\t\tBad Subject Line (ç)"),-1); + result&=result6; + + ResultOfTest(result,aTest); + return result; + } + + +LOCAL_C TInt TestGetValidInternetEmailAddressFromString1(TBool aTest) + { + // This test tests the GetValidInternetEmailAddressFromString(TDesC&) function + TBuf8<80> buf; + _LIT8(KTest, "\tGetValidInternetEmailAddressFromString(TDesC&) Test (Test %d)"); + buf.AppendFormat(KTest, aTest); + log->AppendComment(buf); + + TBool result = ETrue; + TImMessageField testMessageField; + TBuf<80> string=_L("an.email@address.com"); // legal address + TBuf<80> extractedString = string; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, ETrue); + + string=_L("An alias (a comment)"); // legal address + extractedString = _L("an.email@address.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, ETrue); + + string=_L("stuff "); // valid + extractedString = _L("an.email@address"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, ETrue); + + string=_L(" (a comment)"); // valid + extractedString = _L("an.email@address.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, ETrue); + + string=_L(" no brackets"); // valid + extractedString = _L("an.email@address"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, ETrue); + +/* string=_L("send to test@psion.com by Thursday"); // valid + extractedString = _L("test@psion.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, ETrue); +*/ + string=_L("test@Psion (test@Psion)"); // valid - should extract "" + extractedString = _L("test@psion.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, ETrue); + + string=_L("\"Genet, Jean\" (test@Psion)"); // valid - should extract "" + extractedString = _L("test@psion.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, ETrue); + +/* string=_L("test test.psion.comç (test@Psion)"); // valid - illegal char in alias, but all chars in email address are actually valid + extractedString = _L("test@Psion"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, ETrue); + + string=_L("@ @ab bc@ a@c &@"); // valid + extractedString = _L("a@b"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, ETrue); +*/ + string=_L("@ "); // valid + extractedString = _L("ab@cd"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, ETrue); + + string=_L(" @"); // valid + extractedString = _L("a@c"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, ETrue); + + string=_L("(comment before) an.email@address.com no brackets"); // valid + extractedString = _L("an.email@address.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, ETrue); + + string=_L("(comment before) an.email@address.com (a comment)"); // no alias + extractedString = _L("an.email@address.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, ETrue); + + string=_L("a@bc"); // valid + extractedString = string; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, ETrue); + + string=_L("ab@c"); // valid + extractedString = string; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, ETrue); + + string=_L("an.email@address>"); // illegal + extractedString = _L("an.email@address"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + + string=_L(""); // illegal - "@" character not surrounded by other char + extractedString = _L("@address.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + + string=_L(""); // illegal - "@" character not surrounded by other char + extractedString = _L("address.com@"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + + string=_L(""); // illegal - no "@" character + extractedString = _L("an.address.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + + string=_L("<@>"); // illegal - no substring surrounding "@" + extractedString = _L("@"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + + string=_L(" a comment"); // invalid - missing open angled bracket + extractedString = _L("an.email@address"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + +/* string=_L("test@Psion (test@Psion)"); // invalid - 2 '@' characters + extractedString = _L("test@@psion.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + + string=_L("\" Genet,Jean \" (test@Psion)"); // invalid - 2 '@' characters + extractedString = _L("test@@psion.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + + string=_L("\"Jean Genet\" (test@Psion)"); // invalid - 2 '@' characters + extractedString = _L("test@psion@com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); +*/ + string=_L("test@Psion (test@Psion)"); // invalid - since <> don't contain legal address + extractedString = _L("test.psion.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + +/* string=_L(""); // invalid - return empty string + extractedString = _L(""); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); +*/ + string=_L("\"\" <>"); // invalid + extractedString = _L(""); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + + string=_L("<>"); // invalid + extractedString = _L(""); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + + string=_L("A random bit of text"); // invalid + extractedString = _L(""); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + + string=_L("test@Psion <çtest@psion.com> (test@Psion)"); // invalid illegal char + extractedString = _L("çtest@psion.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + + string=_L("test@Psion (test@Psion)"); // invalid - illegal char + extractedString = _L("test.psion.comç"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + + string=_L("some stuff çtest@psion.com"); // invalid illegal char + extractedString = _L("çtest@psion.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + + string=_L("word @ @start end@ test@home "); // invalid - <> don't contain a valid email address + extractedString = _L("test"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + + string=_L("@ "); // invalid - <> don't contain a valid email address + extractedString = _L("abc"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + + string=_L(" @"); // invalid - <> don't contain a valid email address + extractedString = _L("abc"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + + string=_L("an.email@address.com, another.email@address.com"); // illegal address + extractedString = _L("an.email@address.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + + string=_L("an.email@address.com.another.email@address.com"); // illegal address + extractedString = _L("an.email@address.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + + string=_L("an.email@address.com,another.email@address.com"); // illegal address + extractedString = _L("an.email@address.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + +/* // this test should be invalid but it isn't at the moment (26/04/99) + string=_L("an.email@address.com another.email@address.com"); // illegal address + extractedString = _L("an.email@address.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string), extractedString, EFalse); + */ + ResultOfTest(result, aTest); + return result; + } + +/*LOCAL_C TInt TestGetValidInternetEmailAddressFromString2(TBool aTest) + { + // This test tests the GetValidInternetEmailAddressFromString(TDesC&, TInt&) function + TBuf8<80> buf; + _LIT8(KTest, "\tGetValidInternetEmailAddressFromString(TDesC&, TInt&) Test (Test %d)"); + buf.AppendFormat(KTest, aTest); + log->AppendComment(buf); + + TBool result = ETrue; + TInt error = 0; + TImMessageField testMessageField; + TBuf<80> string=_L("an.email@address.com"); // legal address + TBuf<80> extractedString = string; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, ETrue); + result &= CompareBadCharPos(string, error, 0); + + string=_L("An alias (a comment)"); // legal address + error = 0; + extractedString = _L("an.email@address.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, ETrue); + result &= CompareBadCharPos(string, error, 10); + + string=_L("stuff "); // valid + error = 0; + extractedString = _L("an.email@address"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, ETrue); + result &= CompareBadCharPos(string, error, 7); + + string=_L(" (a comment)"); // valid + error = 0; + extractedString = _L("an.email@address.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, ETrue); + result &= CompareBadCharPos(string, error, 1); + + string=_L(" no brackets"); // valid + error = 0; + extractedString = _L("an.email@address"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, ETrue); + result &= CompareBadCharPos(string, error, 3); +*/ +/* string=_L("send to test@psion.com by Thursday"); // valid + error = 0; + extractedString = _L("test@psion.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, ETrue); + result &= CompareBadCharPos(string, error, 8); +*/ +/* string=_L("test@Psion (test@Psion)"); // valid - should extract "" + error = 0; + extractedString = _L("test@psion.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, ETrue); + result &= CompareBadCharPos(string, error, 12); + + string=_L("\"Genet, Jean\" (test@Psion)"); // valid - should extract "" + error = 0; + extractedString = _L("test@psion.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, ETrue); + result &= CompareBadCharPos(string, error, 14); +*/ +/* string=_L("test test.psion.comç (test@Psion)"); // valid - illegal char in alias, but all chars in email address are actually valid + error = 0; + extractedString = _L("test@Psion"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, ETrue); + result &= CompareBadCharPos(string, error, 18); + + string=_L("@ @ab bc@ a@c &@"); // valid + error = 0; + extractedString = _L("a@b"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, ETrue); + result &= CompareBadCharPos(string, error, 16); +*/ +/* string=_L("@ "); // valid + error = 0; + extractedString = _L("ab@cd"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, ETrue); + result &= CompareBadCharPos(string, error, 3); + + string=_L(" @"); // valid + error = 0; + extractedString = _L("a@c"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, ETrue); + result &= CompareBadCharPos(string, error, 2); + + string=_L("(comment before) an.email@address.com no brackets"); // valid + error = 0; + extractedString = _L("an.email@address.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, ETrue); + result &= CompareBadCharPos(string, error, 17); + + string=_L("(comment before) an.email@address.com (a comment)"); // no alias + error = 0; + extractedString = _L("an.email@address.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, ETrue); + result &= CompareBadCharPos(string, error, 17); + + string=_L("a@bc"); // valid + error = 0; + extractedString = string; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, ETrue); + result &= CompareBadCharPos(string, error, 0); + + string=_L("ab@c"); // valid + error = 0; + extractedString = string; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, ETrue); + result &= CompareBadCharPos(string, error, 0); + + string=_L("an.email@address>"); // illegal + error = 0; + extractedString = _L("an.email@address"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, 0); + + string=_L(""); // illegal - "@" character not surrounded by other char + error = 0; + extractedString = _L("@address.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, -1); + + string=_L(""); // illegal - "@" character not surrounded by other char + error = 0; + extractedString = _L("address.com@"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, -1); + + string=_L(""); // illegal - no "@" character + error = 0; + extractedString = _L("an.address.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, -1); + + string=_L("<@>"); // illegal - no substring surrounding "@" + error = 0; + extractedString = _L("@"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, -1); + + string=_L(" a comment"); // invalid - missing open angled bracket + error = 0; + extractedString = _L("an.email@address"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, 0); +*/ +/* string=_L("test@Psion (test@Psion)"); // invalid - 2 '@' characters + error = 0; + extractedString = _L("test@@psion.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, 12); + + string=_L("\" Genet,Jean \" (test@Psion)"); // invalid - 2 '@' characters + error = 0; + extractedString = _L("test@@psion.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, 16); + + string=_L("\"Jean Genet\" (test@Psion)"); // invalid - 2 '@' characters + error = 0; + extractedString = _L("test@psion@com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, 14); +*/ +/* string=_L("test@Psion (test@Psion)"); // invalid - since <> don't contain legal address + error = 0; + extractedString = _L("test.psion.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, -1); +*/ +/* string=_L(""); // invalid - return empty string + error = 0; + extractedString = _L(""); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, -1); +*/ +/* string=_L("\"\" <>"); // invalid + error = 0; + extractedString = _L(""); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, -1); + + string=_L("<>"); // invalid + error = 0; + extractedString = _L(""); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, -1); + + string=_L("A random bit of text"); // invalid + error = 0; + extractedString = _L(""); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, -1); + + string=_L("test@Psion <çtest@psion.com> (test@Psion)"); // invalid illegal char + error = 0; + extractedString = _L("çtest@psion.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, 12); + + string=_L("test@Psion (test@Psion)"); // invalid - illegal char + error = 0; + extractedString = _L("test.psion.comç"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, -1); + + string=_L("some stuff çtest@psion.com"); // invalid illegal char + error = 0; + extractedString = _L("çtest@psion.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, 11); + + string=_L("word @ @start end@ test@home "); // invalid - <> don't contain a valid email address + error = 0; + extractedString = _L("test"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, -1); + + string=_L("@ "); // invalid - <> don't contain a valid email address + error = 0; + extractedString = _L("abc"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, -1); + + string=_L(" @"); // invalid - <> don't contain a valid email address + error = 0; + extractedString = _L("abc"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, 7); + + string=_L("an.email@address.com, another.email@address.com"); // illegal address + error = 0; + extractedString = _L("an.email@address.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, 0); + + string=_L("an.email@address.com.another.email@address.com"); // illegal address + error = 0; + extractedString = _L("an.email@address.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, 0); + + string=_L("an.email@address.com,another.email@address.com"); // illegal address + error = 0; + extractedString = _L("an.email@address.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, 0); +*/ +/* // this test should be invalid but it isn't at the moment (26/04/99) + string=_L("an.email@address.com another.email@address.com"); // illegal address + error = 0; + extractedString = _L("an.email@address.com"); + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error), extractedString, EFalse); + result &= CompareBadCharPos(string, error, 0); + */ +/* ResultOfTest(result, aTest); + return result; + } +*/ +/* +LOCAL_C TInt TestGetValidInternetEmailAddressFromString3(TBool aTest) + { + // This test tests the GetValidInternetEmailAddressFromString(TDesC&, TInt&, TInt&) function + TBuf8<80> buf; + _LIT8(KTest, "\tGetValidInternetEmailAddressFromString(TDesC&, TInt&, TInt&) Test (Test %d)"); + buf.AppendFormat(KTest, aTest); + log->AppendComment(buf); + + TBool result = ETrue; +*/ +/* TInt leftChar = 0; + TInt rightChar = 0; + TImMessageField testMessageField; + TBuf<80> string=_L("an.email@address.com"); // legal address + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 19); + + string=_L("An alias (a comment)"); // legal address + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 10, 29); + + string=_L("stuff "); // valid + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 7, 22); + + string=_L(" (a comment)"); // valid + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 1, 20); + + string=_L(" no brackets"); // valid + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 3, 18); +*/ +/* string=_L("send to test@psion.com by Thursday"); // valid + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 9, 21); +*/ +/* string=_L("test@Psion (test@Psion)"); // valid - should extract "" + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 12, 25); + + string=_L("\"Genet, Jean\" (test@Psion)"); // valid - should extract "" + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 14, 27); +*/ +/* string=_L("test test.psion.comç (test@Psion)"); // valid - illegal char in alias, but all chars in email address are actually valid + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 22, 31); + + string=_L("@ @ab bc@ a@c &@"); // valid + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 16, 18); +*/ +/* string=_L("@ "); // valid + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 3, 7); + + string=_L(" @"); // valid + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 2, 4); + + string=_L("(comment before) an.email@address.com no brackets"); // valid + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 17, 36); + + string=_L("(comment before) an.email@address.com (a comment)"); // no alias + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 17, 36); + + string=_L("a@bc"); // valid + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 3); + + string=_L("ab@c"); // valid + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 3); + + string=_L("an.email@address>"); // illegal + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 16); + + string=_L(""); // illegal - "@" character not surrounded by other char + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 12); + + string=_L(""); // illegal - "@" character not surrounded by other char + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 12); + + string=_L(""); // illegal - no "@" character + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 0); + + string=_L("<@>"); // illegal - no substring surrounding "@" + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 1); + + string=_L(" a comment"); // invalid - missing open angled bracket + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 16); + + string=_L("test@Psion (test@Psion)"); // invalid - 2 '@' characters + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 12, 26); + + string=_L("\" Genet,Jean \" (test@Psion)"); // invalid - 2 '@' characters + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 16, 30); + + string=_L("\"Jean Genet\" (test@Psion)"); // invalid - 2 '@' characters + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 14, 27); + + string=_L("test@Psion (test@Psion)"); // invalid - since <> don't contain legal address + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 20); + + string=_L(""); // invalid - return empty string + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 0); + + string=_L("\"\" <>"); // invalid + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 0); + + string=_L("<>"); // invalid + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 0); + + string=_L("A random bit of text"); // invalid + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 0); + + string=_L("test@Psion <çtest@psion.com> (test@Psion)"); // invalid illegal char + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 12, 26); + + string=_L("test@Psion (test@Psion)"); // invalid - illegal char + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 21); + + string=_L("some stuff çtest@psion.com"); // invalid illegal char + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 11, 25); + + string=_L("word @ @start end@ test@home "); // invalid - <> don't contain a valid email address + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 15); + + string=_L("@ "); // invalid - <> don't contain a valid email address + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, -1, 0); + + string=_L(" @"); // invalid - <> don't contain a valid email address + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 7, 0); + + string=_L("an.email@address.com, another.email@address.com"); // illegal address + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 20); + + string=_L("an.email@address.com.another.email@address.com"); // illegal address + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 45); + + string=_L("an.email@address.com,another.email@address.com"); // illegal address + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 45); +*/ +/* // this test should be invalid but it isn't at the moment (26/04/99) + string=_L("an.email@address.com another.email@address.com"); // illegal address + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, leftChar, rightChar), string); + result &= CompareFirstLastPos(string, leftChar, rightChar, 10, 29); + */ +/* ResultOfTest(result, aTest); + return result; + } +*/ +/* +LOCAL_C TInt TestGetValidInternetEmailAddressFromString4(TBool aTest) + { + // This test tests the GetValidInternetEmailAddressFromString(TDesC&, TInt&, TInt&, TInt&) function + TBuf8<90> buf; + _LIT8(KTest, "\tGetValidInternetEmailAddressFromString(TDesC&, TInt&, TInt&, TInt&) Test (Test %d)"); + buf.AppendFormat(KTest, aTest); + log->AppendComment(buf); + + TBool result = ETrue; +*/ +/* TInt error = 0; + TInt leftChar = 0; + TInt rightChar = 0; + TImMessageField testMessageField; + TBuf<80> string=_L("an.email@address.com"); // legal address + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 19, -1); + + string=_L("An alias (a comment)"); // legal address + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 10); + result &= CompareFirstLastPos(string, leftChar, rightChar, 29, -1); + + string=_L("stuff "); // valid + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 7); + result &= CompareFirstLastPos(string, leftChar, rightChar, 22, -1); + + string=_L(" (a comment)"); // valid + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 20, -1); + + string=_L(" no brackets"); // valid + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 3); + result &= CompareFirstLastPos(string, leftChar, rightChar, 18, -1); +*/ +/* string=_L("send to test@psion.com by Thursday"); // valid + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 8); + result &= CompareFirstLastPos(string, leftChar, rightChar, 21, -1); +*/ +/* string=_L("test@Psion (test@Psion)"); // valid - should extract "" + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 12); + result &= CompareFirstLastPos(string, leftChar, rightChar, 25, -1); + + string=_L("\"Genet, Jean\" (test@Psion)"); // valid - should extract "" + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 14); + result &= CompareFirstLastPos(string, leftChar, rightChar, 27, -1); +*/ +/* string=_L("test test.psion.comç (test@Psion)"); // valid - illegal char in alias, but all chars in email address are actually valid + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 18); + result &= CompareFirstLastPos(string, leftChar, rightChar, 31, -1); + + string=_L("@ @ab bc@ a@c &@"); // valid + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 16); + result &= CompareFirstLastPos(string, leftChar, rightChar, 18, -1); +*/ +/* string=_L("@ "); // valid + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 3); + result &= CompareFirstLastPos(string, leftChar, rightChar, 7, -1); + + string=_L(" @"); // valid + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 2); + result &= CompareFirstLastPos(string, leftChar, rightChar, 4, -1); + + string=_L("(comment before) an.email@address.com no brackets"); // valid + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 17); + result &= CompareFirstLastPos(string, leftChar, rightChar, 36, -1); + + string=_L("(comment before) an.email@address.com (a comment)"); // no alias + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 17); + result &= CompareFirstLastPos(string, leftChar, rightChar, 36, -1); + + string=_L("a@bc"); // valid + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 3, -1); + + string=_L("ab@c"); // valid + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 3, -1); + + string=_L("an.email@address>"); // illegal + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 16, -1); + + string=_L(""); // illegal - "@" character not surrounded by other char + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 12, -1); + + string=_L(""); // illegal - "@" character not surrounded by other char + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 12, -1); + + string=_L(""); // illegal - no "@" character + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, -1); + + string=_L("<@>"); // illegal - no substring surrounding "@" + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 1, -1); + + string=_L(" a comment"); // invalid - missing open angled bracket + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 16, -1); + + string=_L("test@Psion (test@Psion)"); // invalid - 2 '@' characters + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 12); + result &= CompareFirstLastPos(string, leftChar, rightChar, 26, 12); + + string=_L("\" Genet,Jean \" (test@Psion)"); // invalid - 2 '@' characters + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 16); + result &= CompareFirstLastPos(string, leftChar, rightChar, 30, 16); + + string=_L("\"Jean Genet\" (test@Psion)"); // invalid - 2 '@' characters + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 14); + result &= CompareFirstLastPos(string, leftChar, rightChar, 27, 14); + + string=_L("test@Psion (test@Psion)"); // invalid - since <> don't contain legal address + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 20, -1); + + string=_L(""); // invalid - return empty string + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, -1); + + string=_L("\"\" <>"); // invalid + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, -1); + + string=_L("<>"); // invalid + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, -1); + + string=_L("A random bit of text"); // invalid + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, -1); + + string=_L("test@Psion <çtest@psion.com> (test@Psion)"); // invalid illegal char + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 12); + result &= CompareFirstLastPos(string, leftChar, rightChar, 26, 12); + + string=_L("test@Psion (test@Psion)"); // invalid - illegal char + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 21, -1); + + string=_L("some stuff çtest@psion.com"); // invalid illegal char + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 11); + result &= CompareFirstLastPos(string, leftChar, rightChar, 25, 11); + + string=_L("word @ @start end@ test@home "); // invalid - <> don't contain a valid email address + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 15, -1); + + string=_L("@ "); // invalid - <> don't contain a valid email address + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, -1); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, -1); + + string=_L(" @"); // invalid - <> don't contain a valid email address + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 7); + result &= CompareFirstLastPos(string, leftChar, rightChar, 0, 7); + + string=_L("an.email@address.com, another.email@address.com"); // illegal address + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 20, 0); + + string=_L("an.email@address.com.another.email@address.com"); // illegal address + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 45, 0); + + string=_L("an.email@address.com,another.email@address.com"); // illegal address + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 45, 0); +*/ +/* // this test should be invalid but it isn't at the moment (26/04/99) + string=_L("an.email@address.com another.email@address.com"); // illegal address + error = 0; + leftChar = 0; + rightChar = 0; + result &= CompareExtractedEmailAddress(testMessageField.GetValidInternetEmailAddressFromString(string, error, leftChar, rightChar), string); + result &= CompareBadCharPos(string, error, 0); + result &= CompareFirstLastPos(string, leftChar, rightChar, 29, 0); + */ +/* ResultOfTest(result, aTest); + return result; + } +*/ + LOCAL_C TBool TestGetValidAliasFunction(TInt aTest) + { + // This test tests the GetValidAlias(TDesC&, TInt&) function + // The tests are also valid for GetValidAlias(TDesC16); + // These tests have been incorporated from the original test harness for completeness + TBuf8<80> buf; + _LIT8(KTest, "\tGetValidAlias(TDesC&, TInt&) Test (Test %d)"); + buf.AppendFormat(KTest, aTest); + log->AppendComment(buf); + + TBool result = ETrue; + TImMessageField testField; + TBuf<80>string=_L("An alias (a comment)"); // valid address + TBuf<80>output; + TInt error; + + output=testField.GetValidAlias(string,error); + _LIT(KFirstResult,"An alias"); + TBool result1=(error==KErrNone); + if(output !=KFirstResult) + result1=EFalse; + + if (!result1) + log->AppendError(_L8("\t\tAn alias (a comment) not valid"),-1); + result&=result1; + + TImMessageField msgField; + _LIT(KATest, "z "); + _LIT(KATestResult, "z"); + TPtrC foo(msgField.GetValidAlias(KATest)); + if(foo!=KATestResult) + { + log->AppendError(_L8("\t\tGetValidAlias on \"z \" didn't work"),-1); + result=EFalse; + } + + if(foo!=KATestResult) + { + log->AppendError(_L8("\t\tGetValidAlias on \"aa \" didn't work"),-1); + result=EFalse; + } + + + + string=_L(" (a comment)"); // no alias + output=testField.GetValidAlias(string,error); + TBool result2=(error==KErrNotFound); + if (!result2) + log->AppendError(_L8("\t\t (a comment) cannot be an alias"),-1); + result&=result2; + + string=_L(" no brackets"); // no alias + output=testField.GetValidAlias(string,error); + TBool result3=(error==KErrNotFound); + if (!result3) + log->AppendError(_L8("\t\t no brackets cannot be an alias"),-1); + result&=result3; + + string=_L(""); // no alias + output=testField.GetValidAlias(string,error); + TBool result4=(error==KErrNotFound); + if (!result4) + log->AppendError(_L8("\t\t cannot be an alias"),-1); + result&=result4; + + string=_L(" "); // no alias (empty chars) + output=testField.GetValidAlias(string,error); + TBool result5=(error==KErrNotFound); + if (!result5) + log->AppendError(_L8("\t\t cannot be an alias"),-1); + result&=result5; + + string=_L("just a normal sentence"); // no alias + output=testField.GetValidAlias(string,error); + TBool result6=(error==KErrNotFound); + if (!result6) + log->AppendError(_L8("\t\tjust a normal sentence cannot be an alias"),-1); + result&=result6; + + string=_L(""); // no alias + output=testField.GetValidAlias(string,error); + TBool result7=(error==KErrNotFound); + if (!result7) + log->AppendError(_L8("\t\tEmpty String cannot be an alias"),-1); + result&=result7; + + string=_L("Alias -> A (a comment)"); // valid address + output=testField.GetValidAlias(string,error); + _LIT(KFirstResult1,"Alias -> A"); + TBool result8=(error==KErrNone); + if(output !=KFirstResult1) + result8=EFalse; + + if (!result8) + log->AppendError(_L8("\t\tAlias -> A (a comment) not valid"),-1); + result&=result8; + + string=_L("Alias -< A (a comment)"); // valid address + output=testField.GetValidAlias(string,error); + _LIT(KFirstResult2,"Alias -< A"); + TBool result9=(error==KErrNone); + if(output !=KFirstResult2) + result9=EFalse; + + if (!result9) + log->AppendError(_L8("\t\tAlias -< A (a comment) not valid"),-1); + result&=result9; + + ResultOfTest(result,aTest); + return result; + } + +LOCAL_C TBool TestGetValidCommentFunction(TInt aTest) + { + // This test tests the GetValidComment(TDesC&, TInt&) function + // The tests are also valid for GetValidComment(TDesC16); + // These tests have been incorporated from the original test harness for completeness + TBuf8<80> buf; + _LIT8(KTest, "\tGetValidComment(TDesC&, TInt&) Test (Test %d)"); + buf.AppendFormat(KTest, aTest); + log->AppendComment(buf); + + TBool result = ETrue; + TImMessageField testField; + TBuf<80>string=_L("An alias (a comment)"); // valid address + TBuf<80>output; + TInt error; + // + output=testField.GetValidComment(string,error); + TBool result1=(error==KErrNone); + if (!result1) + log->AppendError(_L8("\t\tAn alias (a comment) has no comment"),-1); + result&=result1; + + string=_L(" (a comment)"); // no alias + output=testField.GetValidComment(string,error); + TBool result2=(error==KErrNone); + if (!result2) + log->AppendError(_L8("\t\t (a comment) has a comment"),-1); + result&=result2; + + string=_L("(comment before) an.email@address.com no brackets"); // invalid + output=testField.GetValidComment(string,error); + TBool result3=(error==KErrNotFound); + if (!result3) + log->AppendError(_L8("\t\t(comment before) an.email@address.com no brackets has a comment"),-1); + result&=result3; + + string=_L("(comment before) an.email@address.com (a comment)"); // no alias + output=testField.GetValidComment(string,error); + TBool result4=(error==KErrNotFound); + if (!result4) + log->AppendError(_L8("\t\t(comment before) an.email@address.com (a comment) has a comment"),-1); + result&=result4; + + string=_L(" no brackets"); // no alias + output=testField.GetValidComment(string,error); + TBool result5=(error==KErrNotFound); + if (!result5) + log->AppendError(_L8("\t\t no brackets has a comment"),-1); + result&=result5; + + string=_L(""); // no alias + output=testField.GetValidComment(string,error); + TBool result6=(error==KErrNotFound); + if (!result6) + log->AppendError(_L8("\t\t has a comment"),-1); + result&=result6; + + string=_L(" "); // no alias (empty chars) + output=testField.GetValidComment(string,error); + TBool result7=(error==KErrNotFound); + if (!result7) + log->AppendError(_L8("\t\t has a comment"),-1); + result&=result7; + + string=_L("just a normal sentence"); // no alias + output=testField.GetValidComment(string,error); + TBool result8=(error==KErrNotFound); + if (!result8) + log->AppendError(_L8("\t\tjust a normal sentence has a comment"),-1); + result&=result8; + + string=_L(""); // no alias + output=testField.GetValidComment(string,error); + TBool result9=(error==KErrNotFound); + if (!result9) + log->AppendError(_L8("\t\tEmpty String has a comment"),-1); + result&=result9; + + ResultOfTest(result,aTest); + + return result; + } + +LOCAL_C void ParserFunctionSelectionL() + { + TBool result = ETrue; + TInt testNo = 1; + + testUtils->TestStart(testNo); + result &= TestValidInternetEmailAddressFunction1(testNo++); + testUtils->TestFinish(testNo-1); + + testUtils->TestStart(testNo); + result &= TestValidInternetEmailAddressFunction2(testNo++); + testUtils->TestFinish(testNo-1); + + testUtils->TestStart(testNo); + result &= TestValidInternetEmailAddressFunction3(testNo++); + testUtils->TestFinish(testNo-1); + + testUtils->TestStart(testNo); + result &= TestValidInternetEmailAddressFunction4(testNo++); + testUtils->TestFinish(testNo-1); + + testUtils->TestStart(testNo); + result &= TestValidSubjectLineFunction(testNo++); + testUtils->TestFinish(testNo-1); + + testUtils->TestStart(testNo); + result &= TestGetValidInternetEmailAddressFromString1(testNo++); + testUtils->TestFinish(testNo-1); + +/* + NOT YET SUPPORTED + testUtils->TestStart(testNo); + result &= TestGetValidInternetEmailAddressFromString2(testNo++); + testUtils->TestFinish(testNo-1); + + testUtils->TestStart(testNo); + result &= TestGetValidInternetEmailAddressFromString3(testNo++); + testUtils->TestFinish(testNo-1); + + testUtils->TestStart(testNo); + result &= TestGetValidInternetEmailAddressFromString4(testNo++); + testUtils->TestFinish(testNo-1); +*/ + testUtils->TestStart(testNo); + result &= TestGetValidAliasFunction(testNo++); + testUtils->TestFinish(testNo-1); + + testUtils->TestStart(testNo); + result &= TestGetValidCommentFunction(testNo++); + testUtils->TestFinish(testNo-1); + + if (result) + { + log->AppendComment(_L8("PASSED All tests Correctly")); + test.Printf(_L("PASSED all Tests")); + testUtils->TestHarnessCompleted(); + } + else + { + test.Printf(_L("FAILED Tests")); + log->AppendError(_L8("FAILED At Least one test"),-1); + testUtils->TestHarnessFailed(KErrGeneral); + } + } + +// + +LOCAL_C void InitL() + { + 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_IMCM.log"), EAppend); + CleanupStack::PushL(log); + log->AppendComment(_L8("********** T_MIUT03 Test TImMessageField class **********")); + 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_MIUT03 Tests Complete ************")); + log->AppendComment(_L8("")); + + CleanupStack::PopAndDestroy(3); //testUtils, log, scheduler + } + + +// + +LOCAL_C void doMainL() + { + InitL(); + testUtils->GoClientSideL(); + test.Printf(_L("Performing Header Tests\n")); + + ParserFunctionSelectionL(); + + Closedown(); + } + +GLDEF_C TInt E32Main() + { + __UHEAP_MARK; + test.Start(_L("MIUT_03 - Test TImMessageField class")); + theCleanup=CTrapCleanup::New(); + TRAPD(ret,doMainL()); + test(ret==KErrNone); + delete theCleanup; + test.End(); + test.Close(); + __UHEAP_MARKEND; + return(KErrNone); + }