--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/contentmgmt/referencedrmagent/tcaf/source/RightsManagerStep.cpp Mon Oct 12 10:17:04 2009 +0300
@@ -0,0 +1,297 @@
+/*
+* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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 <test/testexecutelog.h>
+#include "cafserver.h"
+#include "RightsManagerStep.h"
+#include "manager.h"
+#include "rightsmanager.h"
+#include "virtualpathptr.h"
+#include "streamableptrarray.h"
+#include "agent.h"
+#include "rightsinfo.h"
+#include "virtualpath.h"
+
+
+using namespace ContentAccess;
+
+
+/*
+ * This step creates a rights manager
+ *
+ */
+
+CCAFRightsManagerStep::~CCAFRightsManagerStep()
+ {
+ }
+
+CCAFRightsManagerStep::CCAFRightsManagerStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFRightsManagerStep);
+ }
+
+
+TVerdict CCAFRightsManagerStep::doTestStepL()
+ {
+ TInt expectedResult;
+ TInt result;
+ CRightsManager *rightsmanager = NULL;
+
+ RArray <TAgent> agents;
+
+ SetTestStepResult(EFail);
+
+ // Find the file to delete and the expected return code from the INI file
+ GetIntFromConfig(ConfigSection(),_L("result"),expectedResult);
+
+ INFO_PRINTF2(_L("CreateAgentResolver Expected result: %d"), expectedResult);
+
+ __UHEAP_MARK;
+ CManager *manager = CManager::NewL();
+ CleanupStack::PushL(manager);
+ TRAP(result, manager->ListAgentsL(agents));
+
+ if(result == KErrNone && agents.Count() > 0)
+ {
+ TRAP(result, rightsmanager = manager->CreateRightsManagerL(agents[0]));
+ CleanupStack::PushL(rightsmanager);
+ if(result != expectedResult && rightsmanager)
+ {
+ INFO_PRINTF3(_L("Create Rights Manager Expected result: %d, actual result: %d"), expectedResult, result);
+ }
+ else
+ {
+ SetTestStepResult(EPass);
+ }
+ CleanupStack::PopAndDestroy(rightsmanager);
+ }
+
+ CleanupStack::PopAndDestroy(manager);
+ agents.Close();
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+
+/*
+ * This step creates tests the rights manager listing functions
+ *
+ */
+
+CCAFRightsManagerListStep::~CCAFRightsManagerListStep()
+ {
+ }
+
+CCAFRightsManagerListStep::CCAFRightsManagerListStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFRightsManagerListStep);
+ }
+
+
+TVerdict CCAFRightsManagerListStep::doTestStepL()
+ {
+ TInt expectedResult;
+ TInt result;
+ TInt ListAPI;
+ TPtrC uri;
+ CRightsManager *rightsManager = NULL;
+
+ RArray <TAgent> agents;
+ RStreamablePtrArray <CRightsInfo> rights;
+ RStreamablePtrArray <CVirtualPath> contentList;
+
+ SetTestStepResult(EFail);
+
+ // Find the file to delete and the expected return code from the INI file
+ GetIntFromConfig(ConfigSection(),_L("API"),ListAPI);
+
+ if(ListAPI !=8 && ListAPI !=9)
+ {
+ GetStringFromConfig(ConfigSection(),_L("uri"),uri);
+ GetIntFromConfig(ConfigSection(),_L("result"),expectedResult);
+ }
+
+ __UHEAP_MARK;
+ CManager *manager = CManager::NewL();
+ CleanupStack::PushL(manager);
+ TRAP(result, manager->ListAgentsL(agents));
+
+ if(result == KErrNone && agents.Count() > 0)
+ {
+ TRAP(result, rightsManager = manager->CreateRightsManagerL(agents[0]));
+ CleanupStack::PopAndDestroy(manager);
+ if(rightsManager)
+ {
+ CleanupStack::PushL(rightsManager);
+ if(ListAPI == 1)
+ {
+ rightsManager->ListAllRightsL(rights);
+ CleanupClosePushL(rights);
+ if(rights.Count() == 1)
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF1(_L("ListAllRights() is empty"));
+ }
+ CleanupStack::PopAndDestroy(&rights);
+ }
+ else if(ListAPI == 2)
+ {
+ rightsManager->ListRightsL(rights, uri);
+ CleanupClosePushL(rights);
+ if(rights.Count() == 1)
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF1(_L("ListRights(uri) is empty"));
+ }
+ CleanupStack::PopAndDestroy(&rights);
+ }
+ else if(ListAPI == 3)
+ {
+ TVirtualPathPtr virtualPath = uri;
+ rightsManager->ListRightsL(rights, virtualPath );
+ CleanupClosePushL(rights);
+ if(rights.Count() == 1)
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF1(_L("ListRights(TVirtualPathPtr) is empty"));
+ }
+ CleanupStack::PopAndDestroy(&rights);
+ }
+ else if(ListAPI == 4)
+ {
+ CRightsInfo *rightsInfo = CRightsInfo::NewL(KNullDesC(), KNullDesC(), ERightsTypeConsumable , ERightsStatusNone);
+ CleanupStack::PushL(rightsInfo);
+ rightsManager->ListContentL(contentList, *rightsInfo);
+ CleanupStack::PopAndDestroy(rightsInfo);
+ CleanupClosePushL(contentList);
+ if(contentList.Count() == 1)
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF1(_L("ListContent(CRightsInfo) is empty"));
+ }
+ CleanupStack::PopAndDestroy(&contentList);
+ }
+ else if(ListAPI == 5)
+ {
+ CRightsInfo *rightsInfo = CRightsInfo::NewL(KNullDesC(), KNullDesC(), ERightsTypeConsumable , ERightsStatusNone);
+ CleanupStack::PushL(rightsInfo);
+ MAgentRightsBase *ptr = rightsManager->GetRightsDataL(*rightsInfo);
+ CleanupStack::PopAndDestroy(rightsInfo);
+ if(ptr == NULL)
+ {
+ SetTestStepResult(EPass);
+ }
+ }
+ else if(ListAPI == 6)
+ {
+ CRightsInfo *rightsInfo = CRightsInfo::NewL(KNullDesC(), KNullDesC(), ERightsTypeStateless , ERightsStatusNone);
+ CleanupStack::PushL(rightsInfo);
+ result = rightsManager->DeleteRightsObject(*rightsInfo);
+ CleanupStack::PopAndDestroy(rightsInfo);
+ if(result == KErrNone)
+ {
+ SetTestStepResult(EPass);
+ }
+ }
+ else if(ListAPI == 7)
+ {
+ TVirtualPathPtr virtualPath = uri;
+ result = rightsManager->DeleteAllRightsObjects(virtualPath);
+ if(result == KErrNone)
+ {
+ SetTestStepResult(EPass);
+ }
+ }
+ else if(ListAPI == 8 || ListAPI == 9)
+ {
+ //initialisation for testing purposes such as iUri, iFs, iFile, iExpectedResult and iUniqueId.
+ InitialiseFileHandleParametersL();
+
+ // test the RFile overload
+ if (ListAPI ==8)
+ {
+ TRAP(result,rightsManager->ListRightsL(rights, iFile, iUniqueId));
+ CleanupClosePushL(rights);
+
+ if(result == iExpectedResult)
+ {
+ SetTestStepResult(EPass);
+ INFO_PRINTF1(_L("CRightsManager::ListRightsL()(RFile handle overload) PASSED"));
+ }
+ else
+ {
+ INFO_PRINTF1(_L("CRightsManager::ListRightsL()(RFile handle overload) returned unexpected error"));
+ INFO_PRINTF3(_L("CRightsManager::ListRightsL()(RFile handle overload) Expected result: %d, actual result: %d"), iExpectedResult, result);
+ }
+ CleanupStack::PopAndDestroy(&rights);
+ }
+ else if (ListAPI ==9)
+ {
+ result = rightsManager->DeleteAllRightsObjects(iFile, iUniqueId);
+
+ if(result == iExpectedResult)
+ {
+ SetTestStepResult(EPass);
+ INFO_PRINTF1(_L("CRightsManager::DeleteAllRightsObjects()(RFile handle overload) PASSED"));
+ }
+ else
+ {
+ INFO_PRINTF1(_L("CRightsManager::DeleteAllRightsObjects()(RFile handle overload) returned unexpected error"));
+ INFO_PRINTF3(_L("CRightsManager::DeleteAllRightsObjects()(RFile handle overload) Expected result: %d, actual result: %d"), iExpectedResult, result);
+ }
+ }
+ //cleanup iFs and iFile instances by closing the handles.
+ CleanupStack::PopAndDestroy(2, &iFs);
+ }
+ CleanupStack::PopAndDestroy(rightsManager);
+ }
+ else
+ {
+ if (result == KErrNotSupported) // dummy test agent expects -5
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF1(_L("Create CRightsManager Failed"));
+ }
+ }
+ }
+ else
+ {
+ INFO_PRINTF1(_L("Create CManager Failed"));
+ }
+ agents.Close();
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+