diff -r 9f5ae1728557 -r db3f5fa34ec7 messagingfw/msgurlhandler/test/basic/inc/MailtoSchemeHandlerTransitionValidation.inl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/msgurlhandler/test/basic/inc/MailtoSchemeHandlerTransitionValidation.inl Wed Nov 03 22:41:46 2010 +0530 @@ -0,0 +1,421 @@ +// Copyright (c) 1997-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: +// The implementation of the transition validation classes upon the CMailtoSchemeHandler class methods. +// +// + +/** + @file + @SYMCreationDate Created : 24/05/01 15:57:47 +*/ + +// ______________________________________________________________________________ +// +inline TMailtoSchemeHandler_Ctor_TransitionValidator::TMailtoSchemeHandler_Ctor_TransitionValidator(CUnitTestContext& aUTContext) +:TTransitionValidator(aUTContext) + { + // Do nothing + } + +inline TBool TMailtoSchemeHandler_Ctor_TransitionValidator::ValidatePreConditions() + { + return ETrue; + } + +inline TBool TMailtoSchemeHandler_Ctor_TransitionValidator::ValidatePostConditions(TTestBedAsyncState /* aAsyncState */) + { + if(iUTContext.StateAccessor().InvariantTest(REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iMailtoSchemeHandler)) + return EFalse; + return ETrue; + } + +// ______________________________________________________________________________ +// +inline TMailtoSchemeHandler_Dtor_TransitionValidator::TMailtoSchemeHandler_Dtor_TransitionValidator(CUnitTestContext& aUTContext) +:TTransitionValidator(aUTContext) + { + // Do nothing + } + +inline TBool TMailtoSchemeHandler_Dtor_TransitionValidator::ValidatePreConditions() + { + if(iUTContext.StateAccessor().InvariantTest(REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iMailtoSchemeHandler)) + return EFalse; + return ETrue; + } + +inline TBool TMailtoSchemeHandler_Dtor_TransitionValidator::ValidatePostConditions(TTestBedAsyncState /* aAsyncState */) + { + return ETrue; + } + + +// ______________________________________________________________________________ +// +inline TMailtoSchemeHandler_ParseUrlTest1_TransitionValidator::TMailtoSchemeHandler_ParseUrlTest1_TransitionValidator(CUnitTestContext& aUTContext) +:TTransitionValidator(aUTContext) + { + // Do nothing + } + +inline TBool TMailtoSchemeHandler_ParseUrlTest1_TransitionValidator::ValidatePreConditions() + { + if(iUTContext.StateAccessor().InvariantTest(REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iMailtoSchemeHandler)) + return EFalse; + return ETrue; + } + +inline TBool TMailtoSchemeHandler_ParseUrlTest1_TransitionValidator::ValidatePostConditions(TTestBedAsyncState /* aAsyncState */) + { + if(iUTContext.StateAccessor().InvariantTest(REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iMailtoSchemeHandler)) + return EFalse; + + CMailtoSchemeHandler* schemeHandler = REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iMailtoSchemeHandler; + TMailtoSchemeHandler_StateAccessor* stateAccessor = &REINTERPRET_CAST(TMailtoSchemeHandler_StateAccessor&, iUTContext.StateAccessor()); + RArray toArray = stateAccessor->GetRecipientArray(*schemeHandler); + const TInt toCount = toArray.Count(); + + RArray recipientCheck = REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iArray; + + for (TInt i=0; iGetSubject(*schemeHandler); + if (subject.Length() != 0) + { + iUTContext.DataLogger().LogInformation(_L("***** TEST FAILED *****")); + iUTContext.DataLogger().LogInformation(subject); + return EFalse; + } + + TPtrC& body = stateAccessor->GetBody(*schemeHandler); + if (body.Length() != 0) + { + iUTContext.DataLogger().LogInformation(_L("***** TEST FAILED *****")); + iUTContext.DataLogger().LogInformation(body); + return EFalse; + } + + return ETrue; + } + +// ______________________________________________________________________________ +// +inline TMailtoSchemeHandler_ParseUrlTest9_TransitionValidator::TMailtoSchemeHandler_ParseUrlTest9_TransitionValidator(CUnitTestContext& aUTContext) +:TTransitionValidator(aUTContext) + { + // Do nothing + } + +inline TBool TMailtoSchemeHandler_ParseUrlTest9_TransitionValidator::ValidatePreConditions() + { + if(iUTContext.StateAccessor().InvariantTest(REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iMailtoSchemeHandler)) + return EFalse; + return ETrue; + } + +inline TBool TMailtoSchemeHandler_ParseUrlTest9_TransitionValidator::ValidatePostConditions(TTestBedAsyncState /* aAsyncState */) + { + if(iUTContext.StateAccessor().InvariantTest(REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iMailtoSchemeHandler)) + return EFalse; + + CMailtoSchemeHandler* schemeHandler = REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iMailtoSchemeHandler; + TMailtoSchemeHandler_StateAccessor* stateAccessor = &REINTERPRET_CAST(TMailtoSchemeHandler_StateAccessor&, iUTContext.StateAccessor()); + RArray toArray = stateAccessor->GetRecipientArray(*schemeHandler); + const TInt toCount = toArray.Count(); + + const TDesC* subjectCheck = REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iSubjectCheck; + + + if (toCount != 0) + { + iUTContext.DataLogger().LogInformation(_L("***** TEST FAILED *****")); + return EFalse; + } + + TPtrC& subject = stateAccessor->GetSubject(*schemeHandler); + iUTContext.DataLogger().LogInformation(subject); + if (subject.CompareF(*subjectCheck) != 0) + { + iUTContext.DataLogger().LogInformation(_L("***** TEST FAILED *****")); + return EFalse; + } + + TPtrC& body = stateAccessor->GetBody(*schemeHandler); + if (body.Length() != 0) + { + iUTContext.DataLogger().LogInformation(_L("***** TEST FAILED *****")); + iUTContext.DataLogger().LogInformation(body); + return EFalse; + } + + return ETrue; + } + +// ______________________________________________________________________________ +// +inline TMailtoSchemeHandler_ParseUrlTest12_TransitionValidator::TMailtoSchemeHandler_ParseUrlTest12_TransitionValidator(CUnitTestContext& aUTContext) +:TTransitionValidator(aUTContext) + { + // Do nothing + } + +inline TBool TMailtoSchemeHandler_ParseUrlTest12_TransitionValidator::ValidatePreConditions() + { + if(iUTContext.StateAccessor().InvariantTest(REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iMailtoSchemeHandler)) + return EFalse; + return ETrue; + } + +inline TBool TMailtoSchemeHandler_ParseUrlTest12_TransitionValidator::ValidatePostConditions(TTestBedAsyncState /* aAsyncState */) + { + if(iUTContext.StateAccessor().InvariantTest(REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iMailtoSchemeHandler)) + return EFalse; + + CMailtoSchemeHandler* schemeHandler = REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iMailtoSchemeHandler; + TMailtoSchemeHandler_StateAccessor* stateAccessor = &REINTERPRET_CAST(TMailtoSchemeHandler_StateAccessor&, iUTContext.StateAccessor()); + RArray toArray = stateAccessor->GetRecipientArray(*schemeHandler); + const TInt toCount = toArray.Count(); + + const TDesC* bodyCheck = REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iBodyCheck; + + if (toCount != 0) + { + iUTContext.DataLogger().LogInformation(_L("***** TEST FAILED *****")); + return EFalse; + } + + TPtrC& subject = stateAccessor->GetSubject(*schemeHandler); + if (subject.Length() != 0) + { + iUTContext.DataLogger().LogInformation(_L("***** TEST FAILED *****")); + iUTContext.DataLogger().LogInformation(subject); + return EFalse; + } + + TPtrC& body = stateAccessor->GetBody(*schemeHandler); + iUTContext.DataLogger().LogInformation(body); + if (body.CompareF(*bodyCheck) != 0) + { + iUTContext.DataLogger().LogInformation(_L("***** TEST FAILED *****")); + return EFalse; + } + + return ETrue; + } + +// ______________________________________________________________________________ +// +inline TMailtoSchemeHandler_ParseUrlTest14_TransitionValidator::TMailtoSchemeHandler_ParseUrlTest14_TransitionValidator(CUnitTestContext& aUTContext) +:TTransitionValidator(aUTContext) + { + // Do nothing + } + +inline TBool TMailtoSchemeHandler_ParseUrlTest14_TransitionValidator::ValidatePreConditions() + { + if(iUTContext.StateAccessor().InvariantTest(REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iMailtoSchemeHandler)) + return EFalse; + return ETrue; + } + +inline TBool TMailtoSchemeHandler_ParseUrlTest14_TransitionValidator::ValidatePostConditions(TTestBedAsyncState /* aAsyncState */) + { + if(iUTContext.StateAccessor().InvariantTest(REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iMailtoSchemeHandler)) + return EFalse; + + CMailtoSchemeHandler* schemeHandler = REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iMailtoSchemeHandler; + TMailtoSchemeHandler_StateAccessor* stateAccessor = &REINTERPRET_CAST(TMailtoSchemeHandler_StateAccessor&, iUTContext.StateAccessor()); + RArray toArray = stateAccessor->GetRecipientArray(*schemeHandler); + const TInt toCount = toArray.Count(); + + RArray recipientCheck = REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iArray; + + for (TInt i=0; iGetSubject(*schemeHandler); + iUTContext.DataLogger().LogInformation(subject); + if (subject.CompareF(*subjectCheck) != 0) + { + iUTContext.DataLogger().LogInformation(_L("***** TEST FAILED *****")); + return EFalse; + } + + const TDesC* bodyCheck = REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iBodyCheck; + TPtrC& body = stateAccessor->GetBody(*schemeHandler); + iUTContext.DataLogger().LogInformation(body); + if (body.CompareF(*bodyCheck) != 0) + { + iUTContext.DataLogger().LogInformation(_L("***** TEST FAILED *****")); + return EFalse; + } + + return ETrue; + } + +// ______________________________________________________________________________ +// +inline TMailtoSchemeHandler_CreateEmailL_TransitionValidator::TMailtoSchemeHandler_CreateEmailL_TransitionValidator(CUnitTestContext& aUTContext) +:TTransitionValidator(aUTContext) + { + // Do nothing + } + +inline TBool TMailtoSchemeHandler_CreateEmailL_TransitionValidator::ValidatePreConditions() + { + if(iUTContext.StateAccessor().InvariantTest(REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iMailtoSchemeHandler)) + return EFalse; + return ETrue; + } + +inline TBool TMailtoSchemeHandler_CreateEmailL_TransitionValidator::ValidatePostConditions(TTestBedAsyncState /* aAsyncState */) + { + if(iUTContext.StateAccessor().InvariantTest(REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iMailtoSchemeHandler)) + return EFalse; + + CMailtoSchemeHandler* schemeHandler = REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iMailtoSchemeHandler; + TMailtoSchemeHandler_StateAccessor* stateAccessor = &REINTERPRET_CAST(TMailtoSchemeHandler_StateAccessor&, iUTContext.StateAccessor()); + RArray recipientCheck = stateAccessor->GetRecipientArray(*schemeHandler); + + TPtrC bodyCheck = REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iBody; + + TMsvId id = REINTERPRET_CAST(CMailtoSchemeHandler_UnitTestContext&,iUTContext).iId; + if (id == 0) + { + iUTContext.DataLogger().LogInformation(_L("***** TEST FAILED *****")); + return EFalse; + } + + _LIT(KTest, "This is a test"); + RTest test(KTest); + + CEmailTestUtils* testUtils = CEmailTestUtils::NewL(test, ETuGoClientSide); + CleanupStack::PushL(testUtils); + + testUtils->TestStart(1); + test.Start(_L("Send SMTP message")); + + testUtils->SetEntryL(id); + TMsvEntry entry = testUtils->Entry(); + + // Check Mtm + // + + TUid mtm = entry.iMtm; + const TUid mailMtm = {0x10001028}; + + if (mtm != mailMtm) + { + iUTContext.DataLogger().LogInformation(_L("***** TEST FAILED *****")); + return EFalse; + } + + // Check Subject + // + + TPtrC subject = entry.iDescription; + iUTContext.DataLogger().LogInformation(subject); + TPtrC& subjectCheck = stateAccessor->GetSubject(*schemeHandler); + if (subject.CompareF(subjectCheck) != 0) + { + iUTContext.DataLogger().LogInformation(_L("***** TEST FAILED *****")); + return EFalse; + } + + // Check Recipient + // + + CMsvStore* store = testUtils->iMsvEntry->ReadStoreL(); + CleanupStack::PushL(store); + CImHeader* header = CImHeader::NewLC(); + header->RestoreL(*store); + CDesCArray& toArray = header->ToRecipients(); + const TInt toCount = toArray.Count(); + for (TInt i=0; iiMsvEntry); + imEmailMessage->GetBodyTextL(iWait->iStatus, id, CImEmailMessage::EThisMessageOnly, *validRichText1, *paraFormatLayer, *charFormatLayer); + iWait->Start(); + CActiveScheduler::Start(); + + TBuf<100> bufa = validRichText1->Read(0 , 21); + TBuf<100> bufb(bodyCheck); + iUTContext.DataLogger().LogInformation(bufa); + //iUTContext.DataLogger().LogInformation(bufb); + if (bufa.Compare(bufb) != 0) + { + iUTContext.DataLogger().LogInformation(_L("***** TEST FAILED *****")); + return EFalse; + } + + CleanupStack::PopAndDestroy(2); //imEmailMessage, iWait + CleanupStack::PopAndDestroy(1); //validRichText1 + CleanupStack::PopAndDestroy(2); //paraFormatLayer, charFormatLayer + + testUtils->TestFinish(1); + testUtils->TestHarnessCompleted(); + + CleanupStack::PopAndDestroy(testUtils); + + test.End(); + test.Close(); + + return ETrue; + }