messagingfw/wappushfw/tpush/t_DRMmessage.cpp
changeset 0 8e480a14352b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingfw/wappushfw/tpush/t_DRMmessage.cpp	Mon Jan 18 20:36:02 2010 +0200
@@ -0,0 +1,488 @@
+// 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  <push/sislpushmsgutils.h>
+
+#include "pushtests.h"
+#include "dummywapstack.h"
+#include "wappushmsggen.h"
+#include <caf/rightsinfo.h>
+
+_LIT(KTestAgent, "Reference Test Agent");
+_LIT(KTestPassed,"DRM Test passed.Number of rights stored :\t%d expected rights : %d");
+_LIT(KTestFailed, "DRM Test failed.Number of rights stored :\t%d expected rights : %d ");
+
+_LIT8 ( KWBXmlROMessage, "\x03\x0E\x6A\x00\xC5\x05\x85\x06\x86\x07\x87\x01\x46\x47\x03\x31\x2E\x30\x00\x01\01\x49\x4A\x46\x48\x03\x63\x69\x64\x3A\x74\x65\x73\x74\x40\x66\x65\x72\x2E\x68\x72\x00\x01\x01\x4B\x4C\xC3\x10\xbd\x41\x30\x47\xc2\xf3\x10\x9a\x1e\x88\x2f\x9d\x81\x3d\x66\x82\x01\x01\x01\x4D\x4E\x52\x53\x03\x31\x00\x01\x01\x52\x54\x55\x03\x32\x30\x30\x36\x2D\x30\x33\x2D\x30\x31\x54\x30\x30\x3A\x30\x30\x3A\x30\x30\x00\x01\x56\x03\x32\x30\x30\x36\x2D\x30\x34\x2D\x33\x30\x54\x30\x30\x3A\x30\x30\x3A\x30\x30\x00\x01\x01\x01\x52\x57\x03\x50\x30\x59\x30\x4D\x33\x30\x44\x54\x31\x30\x48\x33\x30\x4D\x30\x53\x00\x01\x01\x01\x01\x01\x01" );
+ 
+//The rights element attribute is invalid.
+_LIT8 ( KInvalidWBXmlROMessage, "\x03\x0E\x6A\x00\xC5\x15\x85\x06\x86\x01\x46\x47\x03\x31\x2E\x30\x00\x01\01\x49\x4A\x46\x48\x01\x01\x01\x4D\x01\x01\x01" );
+
+//Xml RO Response message with Rights Object.
+_LIT8 ( KXmlROMessage, "<roap:roResponse xmlns:roap=\"urn:oma:bac:dldrm:roap-1.0\" status=\"Success\"><deviceId><keyIdentifier xsi:type=\"roap:X509SPKIHash\"><hash>vXENc+Um/9/NvmYKiHDLaErK0gk=</hash></keyIdentifier></deviceId><riID><keyIdentifier xsi:type=\"roap:X509SPKIHash\"><hash>vXENc+Um/9/NvmYKiHDLaErK0gk=</hash></keyIdentifier></riID><nonce>32efd34de39sdwefqwer</nonce><roap:protectedRO><roap:ro id=\"n8yu98hy0e2109eu09ewf09u\" stateful=\"true\" version=\"1.0\"><o-ex:rights o-ex=\"http://odrl.net/1.1/ODRL-EX\" o-dd=\"http://odrl.net/1.1/ODRL-DD\" ds=\"http://www.w3.org/2000/09/xmldsig#/\"><o-ex:context><o-dd:version>1.0</o-dd:version></o-ex:context><o-ex:agreement><o-ex:asset><o-ex:context><o-dd:uid>cid:4567829547@foo.com</o-dd:uid></o-ex:context><ds:KeyInfo><ds:KeyValue>vUEwR8LzEJoeiC+dgT1mgg==</ds:KeyValue></ds:KeyInfo></o-ex:asset><o-ex:permission><o-dd:play/></o-ex:permission></o-ex:agreement></o-ex:rights></roap:ro></roap:protectedRO><signature>d93e5fue3susdskjhkjedkjrewh53209efoihfdse10ue2109ue1</signature></roap:roResponse>");
+
+//</o-ex:context> is not present in the message after </uid>
+_LIT8 ( KInValidXmlROMessage, "<roap:roResponse xmlns:roap=\"urn:oma:bac:dldrm:roap-1.0\" status=\"Success\"><deviceId><keyIdentifier xsi:type=\"roap:X509SPKIHash\"><hash>vXENc+Um/9/NvmYKiHDLaErK0gk=</hash></keyIdentifier></deviceId><riID><keyIdentifier xsi:type=\"roap:X509SPKIHash\"><hash>vXENc+Um/9/NvmYKiHDLaErK0gk=</hash></keyIdentifier></riID><nonce>32efd34de39sdwefqwer</nonce><roap:protectedRO><roap:ro id=\"n8yu98hy0e2109eu09ewf09u\" stateful=\"true\" version=\"1.0\"><o-ex:rights o-ex=\"http://odrl.net/1.1/ODRL-EX\" o-dd=\"http://odrl.net/1.1/ODRL-DD\" ds=\"http://www.w3.org/2000/09/xmldsig#/\"><o-ex:context><o-dd:version>1.0</o-dd:version></o-ex:context><o-ex:agreement><o-ex:asset><o-ex:context><o-dd:uid>cid:4567829547@foo.com</o-dd:uid><ds:KeyInfo><ds:KeyValue>vUEwR8LzEJoeiC+dgT1mgg==</ds:KeyValue></ds:KeyInfo></o-ex:asset><o-ex:permission><o-dd:play/></o-ex:permission></o-ex:agreement></o-ex:rights></roap:ro></roap:protectedRO><signature>d93e5fue3susdskjhkjedkjrewh53209efoihfdse10ue2109ue1</signature></roap:roResponse>" );
+
+//Trigger message for registration request.
+_LIT8 ( KXmlRegReqTriggerMessage, "<roap:roapTrigger xmlns:roap=\"urn:oma:bac:dldrm:roap-1.0\" version=\"1.0\"><registrationRequest id=\"id1\"><riID><keyIdentifier xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\" xsi:type=\"roap:X509SPKIHash\"><hash>I94/ovDhizE5m/K6t5f1holSdLM=</hash></keyIdentifier></riID><riAlias>CoreMedia IOPServer</riAlias><nonce>FL2MM70k5OthJZrMte6r</nonce><roapURL>http://192.116.217.184:8080/iop-server/roap.cm;jsessionid=88C45AEB82C2755A641526A19B9050A7</roapURL></registrationRequest></roap:roapTrigger>");
+
+//Trigger message for RO Aquisation.
+_LIT8 ( KXmlROAquisationTriggerMessage, "<roap:roapTrigger xmlns:roap=\"urn:oma:bac:dldrm:roap-1.0\" version=\"1.0\"><roAcquisition id=\"id1\"><riID><keyIdentifier xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\" xsi:type=\"roap:X509SPKIHash\"><hash>I94/ovDhizE5m/K6t5f1holSdLM=</hash></keyIdentifier></riID><riAlias>CoreMedia IOP Test Server</riAlias><nonce>g5VsnV4L7qZzBMnH0idD</nonce><roapURL>http://192.116.217.184:8080/iop-server/roap.cm</roapURL><roID>offer6165.1.PphdCI0gysdL58zb_mid</roID><contentID>cid:cid6165_mid</contentID></roAcquisition></roap:roapTrigger>");
+
+//Trigger message for Join Domain.
+_LIT8 ( KXmlJoinDomainTriggerMessage, "<roap:roapTrigger xmlns:roap=\"urn:oma:bac:dldrm:roap-1.0\" xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"	version=\"1.0\"><joinDomain id=\"de32r23r4\"><riID><keyIdentifier xsi:type=\"roap:X509SPKIHash\"><hash>aXENc+Um/9/NvmYKiHDLaErK0fk=</hash></keyIdentifier></riID><nonce>sdfknjvfda438790fdjkl4rq</nonce><roapURL>http://ri.example.com/ro.cgi?tid=qw683hgew7d</roapURL><domainID>Domain-XYZ-001</domainID></joinDomain><signature>SomeSignature</signature></roap:roapTrigger>");
+
+//Trigger message for Leave Domain.
+_LIT8 ( KXmlLeaveDomainTriggerMessage, "<roap:roapTrigger xmlns:roap=\"urn:oma:bac:dldrm:roap-1.0\" xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"	version=\"1.0\"><leaveDomain id=\"de32r23r4\"><riID><keyIdentifier xsi:type=\"roap:X509SPKIHash\"><hash>aXENc+Um/9/NvmYKiHDLaErK0fk=</hash></keyIdentifier></riID><nonce>sdfknjvfda438790fdjkl4rq</nonce><roapURL>http://ri.example.com/ro.cgi?tid=qw683hgew7d</roapURL><domainID>Domain-XYZ-001</domainID></leaveDomain><signature>SomeSignature</signature></roap:roapTrigger>");
+
+//Invalid Trigger message for registration request. </hash> is absent.
+_LIT8 ( KInvalidXmlRegReqTriggerMessage, "<roap:roapTrigger xmlns:roap=\"urn:oma:bac:dldrm:roap-1.0\" version=\"1.0\"><registrationRequest id=\"id1\"><riID><keyIdentifier xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\" xsi:type=\"roap:X509SPKIHash\"><hash>I94/ovDhizE5m/K6t5f1holSdLM=</keyIdentifier></riID><riAlias>CoreMedia IOPServer</riAlias><nonce>FL2MM70k5OthJZrMte6r</nonce><roapURL>http://192.116.217.184:8080/iop-server/roap.cm;jsessionid=88C45AEB82C2755A641526A19B9050A7</roapURL></registrationRequest></roap:roapTrigger>");
+
+//Invalid Trigger message for RO Aquisation. </hash> is called after </KeyIdentifier>.
+_LIT8 ( KInvalidXmlROAquisationTriggerMessage, "<roap:roapTrigger xmlns:roap=\"urn:oma:bac:dldrm:roap-1.0\" version=\"1.0\"><roAcquisition id=\"id1\"><riID><keyIdentifier xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\" xsi:type=\"roap:X509SPKIHash\"><hash>I94/ovDhizE5m/K6t5f1holSdLM=</keyIdentifier></hash></riID><riAlias>CoreMedia IOP Test Server</riAlias><nonce>g5VsnV4L7qZzBMnH0idD</nonce><roapURL>http://192.116.217.184:8080/iop-server/roap.cm</roapURL><roID>offer6165.1.PphdCI0gysdL58zb_mid</roID><contentID>cid:cid6165_mid</contentID></roAcquisition></roap:roapTrigger>");
+
+//Invalid Trigger message for Join Domain. </riID> is Absent.
+_LIT8 ( KInvalidXmlJoinDomainTriggerMessage, "<roap:roapTrigger xmlns:roap=\"urn:oma:bac:dldrm:roap-1.0\" xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"	version=\"1.0\"><joinDomain id=\"de32r23r4\"><riID><keyIdentifier xsi:type=\"roap:X509SPKIHash\"><hash>aXENc+Um/9/NvmYKiHDLaErK0fk=</hash></keyIdentifier><nonce>sdfknjvfda438790fdjkl4rq</nonce><roapURL>http://ri.example.com/ro.cgi?tid=qw683hgew7d</roapURL><domainID>Domain-XYZ-001</domainID></joinDomain><signature>SomeSignature</signature></roap:roapTrigger>");
+
+//Invalid Trigger message for Leave Domain.</leaveDomain> is absent.
+_LIT8 ( KInvalidXmlLeaveDomainTriggerMessage, "<roap:roapTrigger xmlns:roap=\"urn:oma:bac:dldrm:roap-1.0\" xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"	version=\"1.0\"><leaveDomain id=\"de32r23r4\"><riID><keyIdentifier xsi:type=\"roap:X509SPKIHash\"><hash>aXENc+Um/9/NvmYKiHDLaErK0fk=</hash></keyIdentifier></riID><nonce>sdfknjvfda438790fdjkl4rq</nonce><roapURL>http://ri.example.com/ro.cgi?tid=qw683hgew7d</roapURL><domainID>Domain-XYZ-001</domainID><signature>SomeSignature</signature></roap:roapTrigger>");
+
+//The CID of this message is more than 128 characters.
+_LIT8 ( KLargeXmlROMessage, "<roap:roResponse xmlns:roap=\"urn:oma:bac:dldrm:roap-1.0\" status=\"Success\"><deviceId><keyIdentifier xsi:type=\"roap:X509SPKIHash\"><hash>vXENc+Um/9/NvmYKiHDLaErK0gk=</hash></keyIdentifier></deviceId><riID><keyIdentifier xsi:type=\"roap:X509SPKIHash\"><hash>vXENc+Um/9/NvmYKiHDLaErK0gk=</hash></keyIdentifier></riID><nonce>32efd34de39sdwefqwer</nonce><roap:protectedRO><roap:ro id=\"n8yu98hy0e2109eu09ewf09u\" stateful=\"true\" version=\"1.0\"><o-ex:rights o-ex=\"http://odrl.net/1.1/ODRL-EX\" o-dd=\"http://odrl.net/1.1/ODRL-DD\" ds=\"http://www.w3.org/2000/09/xmldsig#/\"><o-ex:context><o-dd:version>1.0</o-dd:version></o-ex:context><o-ex:agreement><o-ex:asset><o-ex:context><o-dd:uid>cid:TheMissionOfTheOpenMobileAllianceIsToFacilitateGlobalUserAdoptionOfMobileDataServicesBySpecifyingMarketDrivenMobileServiceEnablersThatEnsureServiceInteroperabilityAcrossDevicesGeographiesServiceProvidersOperatorsAndNetwork</o-dd:uid></o-ex:context><ds:KeyInfo><ds:KeyValue>vUEwR8LzEJoeiC+dgT1mgg==</ds:KeyValue></ds:KeyInfo></o-ex:asset><o-ex:permission><o-dd:play/></o-ex:permission></o-ex:agreement></o-ex:rights></roap:ro></roap:protectedRO><signature>d93e5fue3susdskjhkjedkjrewh53209efoihfdse10ue2109ue1</signature></roap:roResponse>" );
+
+//The CID of this message is more than 128 characters.
+_LIT8 ( KLargeWBXmlROMessage, "\x03\x0E\x6A\x00\xC5\x05\x85\x06\x86\x01\x46\x47\x03\x31\x2E\x30\x00\x01\01\x49\x4A\x46\x48\x03\x63\x69\x64\x3A\x73\x6F\x6D\x65\x64\x61\x74\x61\x73\x6F\x6D\x65\x64\x61\x74\x61\x73\x6F\x6D\x65\x64\x61\x74\x61\x73\x6F\x6D\x65\x64\x61\x74\x61\x73\x6F\x6D\x65\x64\x61\x74\x61\x73\x6F\x6D\x65\x64\x61\x74\x61\x73\x6F\x6D\x65\x64\x61\x74\x61\x73\x6F\x6D\x65\x64\x61\x74\x61\x73\x6F\x6D\x65\x64\x61\x74\x61\x73\x6F\x6D\x65\x64\x61\x74\x61\x73\x6F\x6D\x65\x64\x61\x74\x61\x73\x6F\x6D\x65\x64\x61\x74\x61\x73\x6F\x6D\x65\x64\x61\x74\x61\x73\x6F\x6D\x65\x64\x61\x74\x61\x73\x6F\x6D\x65\x64\x61\x74\x61\x73\x6F\x6D\x65\x64\x61\x74\x61\x73\x6F\x6D\x65\x64\x61\x74\x61\x00\x01\x01\x01\x4D\x01\x01\x01" );
+
+const TInt KTotalRights=4;	//Change it when rights written to rights.db changes from the test code.
+const TUint8 KWbXmlROMessageHeader[] = 
+	{
+	0xCB,  //Content type "application/vnd.oma.drm.rights+wbxml"
+	0xAF,	//X-Wap-Application-ID
+	0x88	// App type x-wap-application:drm.ua   //0x08
+	};	
+	
+const TUint8 KXmlROMessageHeader[] = 
+	{
+	0xCA,  	//Content type "application/vnd.oma.drm.rights+xml"
+	0xAF,	//X-Wap-Application-ID
+	0x88	// App type x-wap-application:drm.ua   //0x08
+	};	
+
+//Commented as WbXml trigger messages are not supported currently.
+/*const TUint8 KWbXmlTriggerMessageHeader[] = 
+	{
+	0xCD,  //application/vnd.oma.drm.roap-trigger+wbxml"
+	0xAF,	//X-Wap-Application-ID
+	0x88	// App type x-wap-application:drm.ua   //0x08
+	};*/	
+	
+const TUint8 KXmlTriggerMessageHeader[] = 
+	{
+	0xCC,  //Content type "application/vnd.oma.drm.roap-trigger+xml"
+	0xAF,	//X-Wap-Application-ID
+	0x88	// App type x-wap-application:drm.ua   //0x08
+	};	
+	
+/** set the test name for this test case
+	@param void
+	@return string
+		returns test name
+*/
+const TDesC& CWapPushDRMMessageTest::TestName()
+	{
+	_LIT(KTextDRMMessageTest,"DRM Test");
+	return KTextDRMMessageTest;
+	}
+
+/** specify the number of test messages to use */
+void CWapPushDRMMessageTest::NumberTestCasesToRun()
+	{
+	iNumberOfTestCases = 14;
+	}
+
+
+/** create test messages to use where aTestCase represents the
+	message index for multiple messages.
+
+	@param aTestCase message index value for selecting a test message
+	@return void
+ */
+void CWapPushDRMMessageTest::PrepareTestMessageL(TInt aTestCase)
+	{
+	// create hardcoded DRM test message.
+	iMsg = NULL;
+	switch ( aTestCase )
+		{
+	case 0 :
+		//Pass WBXml RO message.
+		WbXmlROMessageL();
+		break;
+	case 1:
+		//Pass invalid WBXML RO message
+		InvalidWbXmlROMessageL();
+		break;
+	case 2 :
+		//Pass XML RO message.
+		XmlROMessageL();
+		break;
+	case 3 :
+		//Pass invalid XML RO message.
+		InvalidXmlROMessageL();
+		break;
+	case 4:
+		//Pass XML Registration request Trigger message.
+		RegRequesttriggerMessageL();
+		break;
+	case 5:
+		//Pass XML RO Aquisation Trigger message.
+		ROAquisationTriggerMessageL();
+		break;
+	case 6:
+		//Pass XML Join Domain Trigger message.
+		JoinDomaintriggerMessageL();
+		break;
+	case 7:
+		//Pass XML Leave Domain Trigger message.
+		LeaveDomainTriggerMessageL();
+		break;
+	case 8:
+		//Pass invalid XML Registration Request Trigger message.
+		InvalidRegRequesttriggerMessageL();
+		break;
+	case 9 :
+		//Pass invalid XML RO Aquisation Trigger message.
+		InvalidROAquisationTriggerMessageL();
+		break;
+	case 10 :
+		//Pass invalid XML Join Domain Trigger message.
+		InvalidJoinDomaintriggerMessageL();
+		break;
+	case 11 :
+		//Pass invalid XML Leave Domain Trigger message.
+		InvalidLeaveDomainTriggerMessageL();
+		break;
+	case 12 :
+		//Pass Large XML RO message. Cid>128
+		LargeXmlROMessageL();
+		break;
+	case 13:
+		//Pass Large WBXML RO message. Cid>128
+		LargeWbXmlROMessageL();
+		break;
+	default :
+		return;	
+		}
+	
+	// copy data to iBodyBuf
+	iBodyBuf.Delete(0,KBufferSize);
+	iBodyBuf = iMsg->Des();
+	delete iMsg;
+	}
+	
+/*	@SYMTestCaseID WP-CIT-BV-0001
+	@SYMTestCaseDesc Test the DRM ROAP ROResponse push message delivery (XML format)
+					 to test agent.
+	@SYMTestStatus Implemented
+	@SYMTestPriority 1
+	@SYMTestActions Send a XML Push Message using the Dummy stack, and see that
+					the CDRMAppHandler and CROContentHandler are able to correctly store 
+					the Rights in rights.db using test agent.
+	@SYMTestExpectedResults	Test agent should write the rights data to rights.db.
+	@SYMPREQ PREQ GT257-CR763
+	@SYMTestType CIT
+*/
+void CWapPushDRMMessageTest::XmlROMessageL()
+	{
+	iMsg = KXmlROMessage().AllocL ();
+	iHeadersBuf.Delete(0,KBufferSize);
+	iHeadersBuf.Append(KXmlROMessageHeader, sizeof(KXmlROMessageHeader));
+	}
+	
+/*	@SYMTestCaseID WP-CIT-BV-0002
+	@SYMTestCaseDesc Test the DRM push message delivery (WBXML format) to test agent.
+	@SYMTestStatus Implemented
+	@SYMTestPriority 1
+	@SYMTestActions Send a WBXML DRM Push Message using the Dummy stack, and see that
+					the CDRMAppHandler and CROContentHandler are able to correctly store
+					the Rights in rights.db using test agent.
+	@SYMTestExpectedResults	Test agent should add the rights to rights.db.
+	@SYMPREQ PREQ GT257-CR763
+	@SYMTestType CIT
+*/
+void CWapPushDRMMessageTest::WbXmlROMessageL()
+	{
+	iMsg = KWBXmlROMessage().AllocL ();
+	iHeadersBuf.Delete(0,KBufferSize);
+	iHeadersBuf.Append(KWbXmlROMessageHeader, sizeof(KWbXmlROMessageHeader));
+	}
+	
+/*	@SYMTestCaseID WP-CIT-BV-0003
+	@SYMTestCaseDesc Test the DRM Trigger message delivery to test agent.
+	@SYMTestStatus Implemented
+	@SYMTestPriority 1
+	@SYMTestActions Send a valid DRM Push Message containing Registration Request trigger 
+					using the Dummy stack, and see that the CDRMAppHandler and 
+					CROAPTContentHandler are able to correctly parse the message using test agent.
+	@SYMTestExpectedResults	Test agent should parse the message without any error.
+	@SYMPREQ PREQ GT257-CR763
+	@SYMTestType CIT
+*/
+void CWapPushDRMMessageTest::RegRequesttriggerMessageL()
+	{
+	iMsg = KXmlRegReqTriggerMessage().AllocL ();
+	iHeadersBuf.Delete(0,KBufferSize);
+	iHeadersBuf.Append(KXmlTriggerMessageHeader, sizeof(KXmlTriggerMessageHeader));
+	}
+	
+/*	@SYMTestCaseID WP-CIT-BV-0004
+	@SYMTestCaseDesc Test the DRM Trigger message delivery to test agent.
+	@SYMTestStatus Implemented
+	@SYMTestPriority 1
+	@SYMTestActions Send a valid DRM Push Message containing RO acquisition trigger 
+					using the Dummy stack, and see that the CDRMAppHandler and 
+					CROAPTContentHandler are able to correctly parse the message using test agent.
+	@SYMTestExpectedResults	Test agent should parse the message without any error.
+	@SYMPREQ PREQ GT257-CR763
+	@SYMTestType CIT
+*/
+void CWapPushDRMMessageTest::ROAquisationTriggerMessageL()
+	{
+	iMsg = KXmlROAquisationTriggerMessage().AllocL ();
+	iHeadersBuf.Delete(0,KBufferSize);
+	iHeadersBuf.Append(KXmlTriggerMessageHeader, sizeof(KXmlTriggerMessageHeader));
+	}
+	
+/*	@SYMTestCaseID WP-CIT-BV-0005
+	@SYMTestCaseDesc Test the DRM Trigger message delivery to test agent.
+	@SYMTestStatus Implemented
+	@SYMTestPriority 1
+	@SYMTestActions Send a valid DRM Push Message containing Join Domain trigger using 
+					the Dummy stack, and see that the CDRMAppHandler and CROAPTContentHandler 
+					are able to correctly parse the message using test agent.
+	@SYMTestExpectedResults	Test agent should parse the message without any error.
+	@SYMPREQ PREQ GT257-CR763
+	@SYMTestType CIT
+*/
+void CWapPushDRMMessageTest::JoinDomaintriggerMessageL()
+	{
+	iMsg = KXmlJoinDomainTriggerMessage().AllocL ();
+	iHeadersBuf.Delete(0,KBufferSize);
+	iHeadersBuf.Append(KXmlTriggerMessageHeader, sizeof(KXmlTriggerMessageHeader));
+	}
+	
+/*	@SYMTestCaseID WP-CIT-BV-0006
+	@SYMTestCaseDesc Test the DRM Trigger message delivery to test agent.
+	@SYMTestStatus Implemented
+	@SYMTestPriority 1
+	@SYMTestActions Send a valid DRM Push Message containing Leave Domain trigger using 
+					the Dummy stack, and see that the CDRMAppHandler and CROAPTContentHandler 
+					are able to correctly parse the message using test agent.
+	@SYMTestExpectedResults	Test agent should parse the message without any error.
+	@SYMPREQ PREQ GT257-CR763
+	@SYMTestType CIT
+*/
+void CWapPushDRMMessageTest::LeaveDomainTriggerMessageL()
+	{
+	iMsg = KXmlLeaveDomainTriggerMessage().AllocL ();
+	iHeadersBuf.Delete(0,KBufferSize);
+	iHeadersBuf.Append(KXmlTriggerMessageHeader, sizeof(KXmlTriggerMessageHeader));
+	}
+	
+/*	@SYMTestCaseID WP-CIT-BV-0007
+	@SYMTestCaseDesc Test the Large DRM push message delivery (WBXML format) to test agent.
+	@SYMTestStatus Implemented
+	@SYMTestPriority 1
+	@SYMTestActions Send a large WBXML DRM Push Message with CID >128 using the Dummy stack, 
+					and see that the CDRMAppHandler and CROContentHandler are able to correctly 
+					store the Rights Object in the rights.db file using test agent
+	@SYMTestExpectedResults	Test agent should add the large rights to rights.db.
+	@SYMPREQ PREQ GT257-CR763
+	@SYMTestType CIT
+*/
+void CWapPushDRMMessageTest::LargeWbXmlROMessageL()
+	{
+	iMsg = KLargeWBXmlROMessage().AllocL ();
+	iHeadersBuf.Delete(0,KBufferSize);
+	iHeadersBuf.Append(KWbXmlROMessageHeader, sizeof(KWbXmlROMessageHeader));
+	}
+	
+/*	@SYMTestCaseID WP-CIT-BV-0008
+	@SYMTestCaseDesc Test the Large DRM push message delivery (XML format) to test agent.
+	@SYMTestStatus Implemented
+	@SYMTestPriority 1
+	@SYMTestActions Send a large XML DRM Push Message with CID >128 using the Dummy stack, 
+					and see that the CDRMAppHandler and CROContentHandler are able to correctly 
+					store the Rights Object in the rights.db file using test agent
+	@SYMTestExpectedResults	Test agent should add the large rights to rights.db.
+	@SYMPREQ PREQ GT257-CR763
+	@SYMTestType CIT
+*/
+void CWapPushDRMMessageTest::LargeXmlROMessageL()
+	{
+	iMsg = KLargeXmlROMessage().AllocL ();
+	iHeadersBuf.Delete(0,KBufferSize);
+	iHeadersBuf.Append(KXmlROMessageHeader, sizeof(KXmlROMessageHeader));
+	}
+	
+/*	@SYMTestCaseID WP-CIT-BI-0009
+	@SYMTestCaseDesc Test content handler reports appropriate error if WBXML tag's received 
+					 are not found in string table.
+	@SYMTestStatus Implemented
+	@SYMTestPriority 1
+	@SYMTestActions Send invalid DRM RO Message to test agent in WBXML format using dummy stack.
+	@SYMTestExpectedResults	The ROContentHandler should report KErrCorrupt error.
+	@SYMPREQ PREQ GT257-CR763
+	@SYMTestType CIT
+*/
+void CWapPushDRMMessageTest::InvalidWbXmlROMessageL()
+	{
+	iMsg = KInvalidWBXmlROMessage().AllocL();
+	iHeadersBuf.Delete(0,KBufferSize);
+	iHeadersBuf.Append(KWbXmlROMessageHeader, sizeof(KWbXmlROMessageHeader));
+	}
+	
+/*	@SYMTestCaseID WP-CIT-BI-0010
+	@SYMTestCaseDesc Test content handler reports appropriate error if the agent cannot 
+					 Parse/Validate the XML message.
+	@SYMTestStatus Implemented
+	@SYMTestPriority 1
+	@SYMTestActions Send invalid DRM RO Message to test agent in XML format using dummy stack.
+	@SYMTestExpectedResults	The ROContentHandler should report KErrCorrupt error.
+	@SYMPREQ PREQ GT257-CR763
+	@SYMTestType CIT
+*/
+void CWapPushDRMMessageTest::InvalidXmlROMessageL()
+	{
+	iMsg = KInValidXmlROMessage().AllocL ();
+	iHeadersBuf.Delete(0,KBufferSize);
+	iHeadersBuf.Append(KXmlROMessageHeader, sizeof(KXmlROMessageHeader));
+	}
+	
+/*	@SYMTestCaseID WP-CIT-BI-0011
+	@SYMTestCaseDesc Test content handler reports appropriate error if the agent cannot 
+					 Parse/Validate the XML message.
+	@SYMTestStatus Implemented
+	@SYMTestPriority 1
+	@SYMTestActions Send invalid DRM Registration Request Trigger Message in XML format 
+					using dummy stack.
+	@SYMTestExpectedResults	The ROAPTContentHandler should report KErrCorrupt error.
+	@SYMPREQ PREQ GT257-CR763
+	@SYMTestType CIT
+*/
+void CWapPushDRMMessageTest::InvalidRegRequesttriggerMessageL()
+	{
+	iMsg = KInvalidXmlRegReqTriggerMessage().AllocL ();
+	iHeadersBuf.Delete(0,KBufferSize);
+	iHeadersBuf.Append(KXmlTriggerMessageHeader, sizeof(KXmlTriggerMessageHeader));
+	}
+	
+/*	@SYMTestCaseID WP-CIT-BI-0012
+	@SYMTestCaseDesc Test content handler reports appropriate error if the agent cannot 
+					 Parse/Validate the XML message.
+	@SYMTestStatus Implemented
+	@SYMTestPriority 1
+	@SYMTestActions Send invalid DRM RO Acquisition Trigger Message in XML format 
+					using dummy stack.
+	@SYMTestExpectedResults	The ROAPTContentHandler should report KErrCorrupt error.
+	@SYMPREQ PREQ GT257-CR763
+	@SYMTestType CIT
+*/
+void CWapPushDRMMessageTest::InvalidROAquisationTriggerMessageL()
+	{
+	iMsg = KInvalidXmlROAquisationTriggerMessage().AllocL ();
+	iHeadersBuf.Delete(0,KBufferSize);
+	iHeadersBuf.Append(KXmlTriggerMessageHeader, sizeof(KXmlTriggerMessageHeader));
+	}
+	
+/*	@SYMTestCaseID WP-CIT-BI-0013
+	@SYMTestCaseDesc Test content handler reports appropriate error if the agent cannot 
+					 Parse/Validate the XML message.
+	@SYMTestStatus Implemented
+	@SYMTestPriority 1
+	@SYMTestActions Send invalid DRM Join Domain Trigger Message in XML format using dummy stack.
+	@SYMTestExpectedResults	The ROAPTContentHandler should report KErrCorrupt error.
+	@SYMPREQ PREQ GT257-CR763
+	@SYMTestType CIT
+*/
+void CWapPushDRMMessageTest::InvalidJoinDomaintriggerMessageL()
+	{
+	iMsg = KInvalidXmlJoinDomainTriggerMessage().AllocL ();
+	iHeadersBuf.Delete(0,KBufferSize);
+	iHeadersBuf.Append(KXmlTriggerMessageHeader, sizeof(KXmlTriggerMessageHeader));
+	}
+	
+/*	@SYMTestCaseID WP-CIT-BI-0014
+	@SYMTestCaseDesc Test content handler reports appropriate error if the agent cannot 
+					 Parse/Validate the XML message.
+	@SYMTestStatus Implemented
+	@SYMTestPriority 1
+	@SYMTestActions Send invalid DRM Leave Domain Trigger Message in XML format using dummy stack.
+	@SYMTestExpectedResults	The ROAPTContentHandler should report KErrCorrupt error.
+	@SYMPREQ PREQ GT257-CR763
+	@SYMTestType CIT
+*/
+void CWapPushDRMMessageTest::InvalidLeaveDomainTriggerMessageL()
+	{
+	iMsg = KInvalidXmlLeaveDomainTriggerMessage().AllocL ();
+	iHeadersBuf.Delete(0,KBufferSize);
+	iHeadersBuf.Append(KXmlTriggerMessageHeader, sizeof(KXmlTriggerMessageHeader));
+	}
+
+TBool CWapPushDRMMessageTest::ConfirmMessagesSavedL()
+	{
+	using namespace ContentAccess;
+	CRightsManager *rightsManager=NULL;
+	RStreamablePtrArray <CRightsInfo> rights;
+	//Create the manager object.
+	CManager *manager = CManager::NewL();
+	CleanupStack::PushL(manager);
+	//Now list out all registered agents 
+	RArray <TAgent> agents;
+	TRAPD(err, manager->ListAgentsL(agents));
+	if(err==KErrNoMemory)
+		{
+		User::LeaveNoMemory();
+		}
+	CleanupClosePushL(agents);
+	if(err==KErrNone && agents.Count()>0)
+		{
+		for(TInt cnt=0; cnt<agents.Count(); cnt++)
+			{
+			if(agents[cnt].Name().CompareF(KTestAgent)==0)
+				{
+				TRAP(err, rightsManager = manager->CreateRightsManagerL(agents[0]));
+				CleanupStack::PushL(rightsManager);
+				rightsManager->ListAllRightsL(rights);
+				TInt rightsCount = rights[0]->RightsType();
+				TBuf<KPushLogBuffer> buf;
+				if(rightsCount==KTotalRights)
+					{
+					buf.Format(KTestPassed,rightsCount,KTotalRights);
+					WPLPrintf(buf);	
+					}
+				else
+					{
+					buf.Format(KTestFailed,rightsCount,KTotalRights);
+					WPLPrintf(buf);	
+					}
+				rights.Close();
+				CleanupStack::PopAndDestroy(1);	//rightsManager
+				}
+			}
+		}
+	CleanupStack::PopAndDestroy(2); //agents, manager
+	return ETrue;
+	}
+