diff -r 9f5ae1728557 -r db3f5fa34ec7 messagingfw/wappushfw/tpushscriptbased/t_slmessage.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/wappushfw/tpushscriptbased/t_slmessage.cpp Wed Nov 03 22:41:46 2010 +0530 @@ -0,0 +1,202 @@ +// Copyright (c) 2007-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 +#include "pushtests.h" +#include "dummywapstack.h" +#include "wappushmsggen.h" +#include + +#include "httptestutils.h" +#if !defined(__TESTSCRIPTS_H__) +#include "TestScripts.h" +#endif + +_LIT8(KSLHref, "http://www.xyz.com/ppaid/123/abc.wml"); + +CWapPushSLMessageTest::CWapPushSLMessageTest(TInt aIndex, CHTTPTestUtils* aTestUtils):CWapPushMessageTest(aIndex, aTestUtils) + { + } + +const TDesC& CWapPushSLMessageTest::TestName() + { + _LIT(KTextSLMessageTest, "Service Loading"); + return KTextSLMessageTest; + } + +void CWapPushSLMessageTest::NumberTestCasesToRun() + { + iNumberOfTestCases = 1; + } + +TDesC8& CWapPushSLMessageTest::Uri() const + { + return (*(iUri)); + } + +void CWapPushSLMessageTest::PrepareTestMessageL(TInt aTestCase) + { + ReadAndSetParamsFromIniFileL(); + + CWapPushMsgGen* msgGen = CWapPushMsgGen::NewL(); + CleanupStack::PushL(msgGen); + + msgGen->StartNewMsgL(CWapPushMsgGen::EServiceLoad); + + if(iHRef) + { + msgGen->AppendFieldL(CWapPushMsgGen::EHRef, GetHRef()); + } + if(iAction) + { + msgGen->AppendFieldL(CWapPushMsgGen::EAction, GetAction()); + } + + const TUint8 KMessageHeader2[] = + { + 0xAF, + 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); + HBufC8* msg = msgGen->CreateMsgLC(); + + switch (aTestCase) + { + case 0 : + iBodyBuf = msg->Des(); + break; + + default: + // do nothing + break; + } + + CleanupStack::PopAndDestroy(2); //msgGen, msg + } + +TBool CWapPushSLMessageTest::ConfirmMessagesSavedL() + { + HBufC* tempHref = HBufC::NewLC(KSLHref().Length()); + tempHref->Des().Copy(KSLHref()); + + TInt returnVal = 0; + + CSISLPushMsgUtils *wapPushUtils = CSISLPushMsgUtils::NewL(); + CleanupStack::PushL(wapPushUtils); + + TMsvId matchingSlMsgEntryId; + matchingSlMsgEntryId = wapPushUtils->FindUrlL(*tempHref, KUidWapPushMsgSL); + + if(matchingSlMsgEntryId) + { + HBufC8* header = iHeadersBuf.AllocLC(); + HBufC8* body = iBodyBuf.AllocLC(); + + CPushMessage* pushMsg = CPushMessage::NewL(header, body); + CleanupStack::Pop(2); // body, header + CleanupStack::PushL(pushMsg); + + TBool isInt; + TPtrC8 appURI; + TInt appID=0; + pushMsg->GetAppIdL(appURI, appID, isInt); + CSLPushMsgEntry* slEntry=NULL; + if (isInt) + { + slEntry = CSLPushMsgEntry::NewL(appID); + } + else + { + slEntry = CSLPushMsgEntry::NewL(appURI); + } + CleanupStack::PushL(slEntry); + + slEntry->RetrieveL(wapPushUtils->Session(), matchingSlMsgEntryId); + + TInt trusted = slEntry->Trusted(); + TPtrC8 ptr(slEntry->MsgOriginUri()); + + RInetUriList inetUriList; + InetUriList::TListType listType; + TRAPD(err, inetUriList.OpenL()); + if(err == KErrNone) + { + TPtrC8 serverAddress(iUri->Des()); + err = inetUriList.GetListType(serverAddress, InetUriList::EWapPush, listType); + } + inetUriList.Close(); + if(trusted == 1) + { + // whitelist + if((iUri->Compare(slEntry->MsgOriginUri()) == 0) && (err == KErrNone) && (listType == InetUriList::EWhiteList)) + { + returnVal = KErrNone; + } + else + { + returnVal = KErrGeneral; + } + } + else if(trusted == 0) + { + // unknown + if((iUri->Compare(slEntry->MsgOriginUri()) == 0) && (err == InetUriList::KErrUriNotFound)) + { + returnVal = KErrNone; + } + else + { + returnVal = KErrGeneral; + } + } + + wapPushUtils->DeleteEntryNowL(matchingSlMsgEntryId); + CleanupStack::PopAndDestroy(slEntry); + CleanupStack::PopAndDestroy(pushMsg); + } + + CleanupStack::PopAndDestroy(wapPushUtils); + CleanupStack::PopAndDestroy(tempHref); + return returnVal; + } + +