diff -r afc583cfa176 -r da2ae96f639b contentmgmt/referencedrmagent/tcaf/source/RightsManagerStep.cpp --- /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 +#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 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 agents; + RStreamablePtrArray rights; + RStreamablePtrArray 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(); + } +