diff -r 000000000000 -r 8e480a14352b messagingfw/wappushfw/tpush/INC081489.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/wappushfw/tpush/INC081489.cpp Mon Jan 18 20:36:02 2010 +0200 @@ -0,0 +1,284 @@ +// Copyright (c) 2006-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: +// + +#include + +#include "pushtests.h" +#include "dummywapstack.h" +#include "wappushmsggen.h" +#include + + +// si text message data + +_LIT8(KSIHref1, "http://www.xyz.com/ppaid/1231/abc.wml"); +_LIT8(KSIHref4, "http://www.xyz.com/ppaid/1234/abc.wml"); +_LIT8(KSIHref5, "http://www.xyz.com/ppaid/1236/abc.wml"); +_LIT8(KDate1, "2006-02-22T07:58:01Z"); +_LIT8(KDate2, "2006-02-22T08:58:01Z"); +_LIT8(KDate3, "2006-02-22T09:58:01Z"); +_LIT8(KDate4, "2006-02-22T10:58:01Z"); +_LIT8(KDate5, "2006-02-22T11:58:01Z"); +_LIT8(KDate6, "2006-02-22T12:58:01Z"); +_LIT8(KDate7, "2006-02-22T13:58:01Z"); +_LIT8(KDate8, "2006-02-22T14:58:01Z"); +_LIT8(KDate9, "2006-02-22T15:58:01Z"); +_LIT8(KDate10, "2006-02-22T16:58:01Z"); +_LIT8(KDate11, "2006-02-22T17:58:01Z"); +_LIT8(KSISiId1, "http://www.xyz.com/ppaid/1231/abc.wml"); +_LIT8(KSISiId2, "http://www.xyz.com/ppaid/1232/abc.wml"); +_LIT8(KSISiId3, "http://www.xyz.com/ppaid/1233/abc.wml"); +_LIT8(KSISiId5, "http://www.xyz.com/ppaid/1235/abc.wml"); + +/** set test name to 'Duplicate SI messages [CINC081489]' + @param void + @return string + string represents test name +*/ +const TDesC& CINC081489::TestName() +{ + _LIT(KTextSIMessageTest, "Duplicate SI messages [CINC081489]"); + return KTextSIMessageTest; +} + +/** set the number of test messages to use */ +void CINC081489::NumberTestCasesToRun() +{ + iNumberOfTestCases = 16; +} + +/** build different test messages to test specific SI reception aspects + in the SI content handler processing code. + @param TInt + the number of test messages to create and use + @return void +*/ +void CINC081489::PrepareTestMessageL(TInt aTestCase) +{ + // this set of test messages adds a test message + // to the store for the match cases, + // replaces the stored message and ends with no stored si message + const TUint8 KMessageHeader2[] = + { + //0xB0, //Content type "application/vnd.wap.slc" + 0xAD, //Content type "application/vnd.wap.si" + 0x92, // Date + 0x04, // length of field + 0x39, // Monday 15 August 2000 10:41:37 GMT + 0x90, + 0x6a, + 0xd0, + 0x94, // Expires + 0x04, // length of field + 0x39, // Monday 15 August 2000 10:41:37 GMT + 0x9a, + 0x6a, + 0xd0, + 0xAF, //X-Wap-Application-ID + 0x82 // Short int - 0x02 represent x-wap-application:push.ua + }; + + TBuf8<40> tempBuf; + TUint8 value; + for (TInt i = 0; i < 15; i++) + { + value = KMessageHeader2[i]; + tempBuf.Append(value); + } + + iHeadersBuf.Copy(tempBuf); + tempBuf.Copy(_L8("")); + + iBodyBuf.Delete(0,KBufferSize); + //iBodyBuf.Zero(); + + CWapPushMsgGen* msgGen = CWapPushMsgGen::NewL(); + CleanupStack::PushL(msgGen); + + msgGen->StartNewMsgL(CWapPushMsgGen::EServiceIndication); + + switch (aTestCase) + { + // INC081489 - part 1 + // Three messages with same EHRef, EServiceIndicationID and different EServiceIndicationCreated + case 0 : + msgGen->AppendFieldL(CWapPushMsgGen::EHRef, KSIHref1); + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationID, KSISiId1); + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationCreated, KDate1); + break; + case 1 : + msgGen->AppendFieldL(CWapPushMsgGen::EHRef, KSIHref1); + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationID, KSISiId1); + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationCreated, KDate2); + break; + case 2 : + msgGen->AppendFieldL(CWapPushMsgGen::EHRef, KSIHref1); + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationID, KSISiId1); + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationCreated, KDate3); + break; + case 3 :// INC081489 - part 2 + //Three messages with same EHRef, EServiceIndicationID and EServiceIndicationCreated + case 4 : + case 5 : + msgGen->AppendFieldL(CWapPushMsgGen::EHRef, KSIHref1); + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationID, KSISiId2); + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationCreated, KDate1); + break; + case 6 : // INC081568 - part 1 + // Same "si-id","created" and no value for the "href" attribute. + case 7 : + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationID, KSISiId3); + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationCreated, KDate4); + break; + case 8 : // INC082189 + // Two Push SI messages,the same "href"and "created",no "si-id", + case 9 : // + msgGen->AppendFieldL(CWapPushMsgGen::EHRef, KSIHref4); + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationCreated, KDate5); + break; + + // INC082190: Three Push SI msgs, the same "si-id",different "created",no "href" + case 10 : + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationID, KSISiId5); + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationCreated, KDate6); + break; + case 11 : + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationID, KSISiId5); + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationCreated, KDate7); + break; + case 12 : + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationID, KSISiId5); + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationCreated, KDate8); + break; + + // INC082191: Three Push SI msgs, the same "href",different "created",no "si-id" + case 13 : + msgGen->AppendFieldL(CWapPushMsgGen::EHRef, KSIHref5); + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationCreated, KDate9); + break; + case 14 : + msgGen->AppendFieldL(CWapPushMsgGen::EHRef, KSIHref5); + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationCreated, KDate10); + break; + case 15 : + msgGen->AppendFieldL(CWapPushMsgGen::EHRef, KSIHref5); + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationCreated, KDate11); + break; + + default: + // do nothing + break; + } + msgGen->AppendFieldL(CWapPushMsgGen::EServiceIndicationText, _L8("You have 4 new e-mails")); + + HBufC8* msg = msgGen->CreateMsgLC(); + iBodyBuf = msg->Des(); + CleanupStack::PopAndDestroy(2); //msgGen, msg +} + +/** confirm the message has been stored. + Writes the number of stored messages found to the log file - if present. + @param void + @return TBool + returns ETrue if messages found + returns EFalse if no messages found +*/ +TBool CINC081489::ConfirmMessagesSavedL() + { + CSISLPushMsgUtils* wapPushUtils = CSISLPushMsgUtils::NewL(); + CleanupStack::PushL(wapPushUtils); + + TMsvId localFolderId; + wapPushUtils->GetPushMsgFolderIdL(localFolderId); + + const TDesC& siId1 = _L("http://www.xyz.com/ppaid/1231/abc.wml"); + const TDesC& siId2 = _L("http://www.xyz.com/ppaid/1232/abc.wml"); + const TDesC& siId3 = _L("http://www.xyz.com/ppaid/1233/abc.wml"); + const TDesC& siId4 = _L("http://www.xyz.com/ppaid/1234/abc.wml"); + const TDesC& siId5 = _L("http://www.xyz.com/ppaid/1235/abc.wml"); + const TDesC& siId6 = _L("http://www.xyz.com/ppaid/1236/abc.wml"); + + CMsvEntrySelection* matchingIdList = wapPushUtils->FindSiIdLC(siId1); + + // INC081489 - part 1 + // Three messages with same EHRef, EServiceIndicationID and different EServiceIndicationCreated + TInt foundCount; + if (matchingIdList) + { + foundCount = matchingIdList->Count(); + } + else + foundCount = 0; + + CleanupStack::PopAndDestroy(matchingIdList + ); + + // INC081489 - part 2 + // Three messages with same EHRef, EServiceIndicationID and EServiceIndicationCreated + matchingIdList = wapPushUtils->FindSiIdLC(siId2); + + if (matchingIdList) + { + foundCount += matchingIdList->Count(); + } + + CleanupStack::PopAndDestroy(matchingIdList); + + // INC081568 - part 1 + // Same "si-id","created" and no value for the "href" attribute. + matchingIdList = wapPushUtils->FindSiIdLC(siId3); + + if (matchingIdList) + { + foundCount += matchingIdList->Count(); + } + CleanupStack::PopAndDestroy(matchingIdList); + + //INC082189 - Two Push SI messages,the same "href"and "created",no "si-id", + matchingIdList = wapPushUtils->FindSiIdLC(siId4); + + if (matchingIdList) + { + foundCount += matchingIdList->Count(); + } + CleanupStack::PopAndDestroy(matchingIdList); + + // INC082190: Three Push SI msgs, the same "si-id",different "created",no "href" + matchingIdList = wapPushUtils->FindSiIdLC(siId5); + + if (matchingIdList) + { + foundCount += matchingIdList->Count(); + } + + CleanupStack::PopAndDestroy(matchingIdList); + + // INC082191: Three Push SI msgs, the same "href",different "created",no "si-id" + matchingIdList = wapPushUtils->FindSiIdLC(siId6); + + if (matchingIdList) + { + foundCount += matchingIdList->Count(); + } + + TBuf buf; + _LIT(KLogSICount,"SI messages stored:\t%d"); + buf.Format(KLogSICount,foundCount); + WPLPrintf(buf); + + CleanupStack::PopAndDestroy(2); // wapPushUtils, matchingIdList + return foundCount; + } +