--- /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;
+ }
+