--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/contentmgmt/referencedrmagent/tcaf/source/ManagerStep.cpp Mon Oct 12 10:17:04 2009 +0300
@@ -0,0 +1,1860 @@
+/*
+* Copyright (c) 2003-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 <apmstd.h>
+
+#include "cafserver.h"
+#include "ManagerStep.h"
+#include "manager.h"
+#include "dirstreamable.h"
+#include "virtualpathptr.h"
+#include "agent.h"
+#include "attributeset.h"
+#include "stringattributeset.h"
+#include "contentIterator.h"
+
+using namespace ContentAccess;
+
+
+
+/*
+ * This step deletes a file using the CAF framework
+ *
+ */
+
+CCAFDeleteStep::~CCAFDeleteStep()
+ {
+ }
+
+CCAFDeleteStep::CCAFDeleteStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFDeleteStep);
+ }
+
+
+TVerdict CCAFDeleteStep::doTestStepL()
+ {
+ TPtrC fileName;
+
+ TInt expectedResult;
+ TInt result;
+
+ SetTestStepResult(EFail);
+
+ // Find the file to delete and the expected return code from the INI file
+ GetStringFromConfig(ConfigSection(),_L("filename"),fileName);
+ GetIntFromConfig(ConfigSection(),_L("result"),expectedResult);
+
+ INFO_PRINTF3(_L("Delete File %S Expected result: %d"), &fileName, expectedResult);
+
+ __UHEAP_MARK;
+
+ TRAP(result, CManager::DeleteFileL(fileName));
+
+ if(result != KErrNone)
+ {
+ INFO_PRINTF2(_L("Delete file left: %d"), result);
+ if(result== expectedResult)
+ {
+ SetTestStepResult(EPass);
+ }
+ }
+ else if(result == expectedResult)
+ {
+ SetTestStepResult(EPass);
+ }
+ else INFO_PRINTF2(_L("Delete file left with error: %d"), result);
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+
+/*
+ * This step copies a file using the CAF framework
+ *
+ */
+
+CCAFCopyFileStep::~CCAFCopyFileStep()
+ {
+ }
+
+CCAFCopyFileStep::CCAFCopyFileStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFCopyFileStep);
+ }
+
+
+TVerdict CCAFCopyFileStep::doTestStepL()
+ {
+ TPtrC source;
+ TPtrC destination;
+
+ TInt expectedResult;
+ TInt result;
+
+ SetTestStepResult(EFail);
+
+ // Find the file to copy and the expected return code from the INI file
+ GetStringFromConfig(ConfigSection(),_L("source"),source);
+ GetStringFromConfig(ConfigSection(),_L("destination"),destination);
+ GetIntFromConfig(ConfigSection(),_L("result"),expectedResult);
+
+ INFO_PRINTF4(_L("Copy %S to %S, Expected result: %d"), &source, &destination, expectedResult);
+
+ __UHEAP_MARK;
+
+ CManager *manager = CManager::NewLC();
+
+ result = manager->CopyFile(source, destination);
+ if(result == expectedResult)
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF2(_L("CopyFile(source as filename overload) returned with unexpected error: %d"), result);
+ }
+ // set up 2nd overload testing
+ RFs fs;
+ RFile file;
+
+ // read the input file and pass it to the CAF
+ fs.Connect();
+ CleanupClosePushL(fs);
+ User::LeaveIfError(fs.ShareProtected());
+
+ result = file.Open(fs, source, EFileRead | EFileStream | EFileShareAny);
+ if (result == KErrNone)
+ {
+ CleanupClosePushL(file);
+
+ // test the RFile overload
+ result = manager->CopyFile(file, destination);
+
+ if ((result == expectedResult)&&(TestStepResult()==EPass))
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF2(_L("CopyFile(source as RFile handle overload) returned with unexpected error: %d"), result);
+ }
+
+ CleanupStack::PopAndDestroy(&file);
+
+ }
+ else if ((result == expectedResult)&&(TestStepResult()==EPass))
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF2(_L("CopyFile(source as RFile handle overload) returned with unexpected error: %d"), result);
+ }
+
+ CleanupStack::PopAndDestroy(&fs);
+
+ CleanupStack::PopAndDestroy(manager);
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+/*
+ * This step renames a file using the CAF framework
+ *
+ */
+
+CCAFRenameFileStep::~CCAFRenameFileStep()
+ {
+ }
+
+CCAFRenameFileStep::CCAFRenameFileStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFRenameFileStep);
+ }
+
+
+TVerdict CCAFRenameFileStep::doTestStepL()
+ {
+ TPtrC source;
+ TPtrC destination;
+
+ TInt expectedResult;
+ TInt result;
+
+ SetTestStepResult(EFail);
+
+ // Find the file to copy and the expected return code from the INI file
+ GetStringFromConfig(ConfigSection(),_L("source"),source);
+ GetStringFromConfig(ConfigSection(),_L("destination"),destination);
+ GetIntFromConfig(ConfigSection(),_L("result"),expectedResult);
+
+ INFO_PRINTF4(_L("Rename from %S to %S, Expected result: %d"), &source, &destination, expectedResult);
+
+ __UHEAP_MARK;
+
+ CManager *manager = CManager::NewLC();
+ result = manager->RenameFile(source, destination);
+ CleanupStack::PopAndDestroy(manager);
+
+ if(result == expectedResult)
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF2(_L("RenameFile() returned with unexpected error: %d"), result);
+ }
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+
+/*
+ * This step creates a directory using the CAF framework
+ *
+ */
+
+CCAFMkDirStep::~CCAFMkDirStep()
+ {
+ }
+
+CCAFMkDirStep::CCAFMkDirStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFMkDirStep);
+ }
+
+
+TVerdict CCAFMkDirStep::doTestStepL()
+ {
+ TPtrC path;
+ TInt expectedResult;
+ TInt result;
+
+ SetTestStepResult(EFail);
+
+ // Find the file to copy and the expected return code from the INI file
+ GetStringFromConfig(ConfigSection(),_L("path"),path);
+ GetIntFromConfig(ConfigSection(),_L("result"),expectedResult);
+
+ INFO_PRINTF3(_L("Create directory %S, Expected result: %d"), &path, expectedResult);
+
+ __UHEAP_MARK;
+
+ CManager *manager = CManager::NewLC();
+ result = manager->MkDir(path);
+ CleanupStack::PopAndDestroy(manager);
+
+ if(result == expectedResult)
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF2(_L("MkDir() returned with unexpected error: %d"), result);
+ }
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+
+/*
+ * This step creates several directory using the CAF framework
+ *
+ */
+
+CCAFMkDirAllStep::~CCAFMkDirAllStep()
+ {
+ }
+
+CCAFMkDirAllStep::CCAFMkDirAllStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFMkDirAllStep);
+ }
+
+
+TVerdict CCAFMkDirAllStep::doTestStepL()
+ {
+ TPtrC path;
+ TInt expectedResult;
+ TInt result;
+
+ SetTestStepResult(EFail);
+
+ // Find the file to copy and the expected return code from the INI file
+ GetStringFromConfig(ConfigSection(),_L("path"),path);
+ GetIntFromConfig(ConfigSection(),_L("result"),expectedResult);
+
+ INFO_PRINTF3(_L("Create directory %S, Expected result: %d"), &path, expectedResult);
+
+ __UHEAP_MARK;
+
+ CManager *manager = CManager::NewLC();
+ // remove directory in case it already exists
+ manager->RmDir(path);
+ result = manager->MkDirAll(path);
+ CleanupStack::PopAndDestroy(manager);
+
+ if(result == expectedResult)
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF2(_L("MkDirAll() returned with unexpected error: %d"), result);
+ }
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+/*
+ * This step removes a directory using the CAF framework
+ *
+ */
+
+CCAFRmDirStep::~CCAFRmDirStep()
+ {
+ }
+
+CCAFRmDirStep::CCAFRmDirStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFRmDirStep);
+ }
+
+
+TVerdict CCAFRmDirStep::doTestStepL()
+ {
+ TPtrC path;
+ TInt expectedResult;
+ TInt result;
+
+ SetTestStepResult(EFail);
+
+ // Find the file to copy and the expected return code from the INI file
+ GetStringFromConfig(ConfigSection(),_L("path"),path);
+ GetIntFromConfig(ConfigSection(),_L("result"),expectedResult);
+
+ INFO_PRINTF3(_L("Remove directory %S, Expected result: %d"), &path, expectedResult);
+
+ __UHEAP_MARK;
+
+ CManager *manager = CManager::NewLC();
+ result = manager->RmDir(path);
+ CleanupStack::PopAndDestroy(manager);
+
+ if(result == expectedResult)
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF2(_L("RmDir() returned with unexpected error: %d"), result);
+ }
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+/*
+ * This step lists the contents of a directory using the CAF framework
+ *
+ */
+
+CCAFGetDirStep::~CCAFGetDirStep()
+ {
+ }
+
+CCAFGetDirStep::CCAFGetDirStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFGetDirStep);
+ }
+
+
+TVerdict CCAFGetDirStep::doTestStepL()
+ {
+ TPtrC path;
+ TInt expectedResult;
+ TInt result;
+ TInt GetDirAPI = 0;
+
+ CDir *entrylist = NULL;
+ CDir *dirlist = NULL;
+ CDir *filelist = NULL;
+
+
+ SetTestStepResult(EFail);
+
+ // Find the file to copy and the expected return code from the INI file
+ GetStringFromConfig(ConfigSection(),_L("path"),path);
+ GetIntFromConfig(ConfigSection(),_L("API"),GetDirAPI);
+ GetIntFromConfig(ConfigSection(),_L("result"),expectedResult);
+
+ INFO_PRINTF3(_L("List contents of directory %S, Expected result: %d"), &path, expectedResult);
+
+ __UHEAP_MARK;
+
+ CManager *manager = CManager::NewLC();
+ if(GetDirAPI == 1)
+ {
+ result = manager->GetDir(path,ESortByName, KEntryAttNormal, entrylist);
+ }
+ else if(GetDirAPI == 2)
+ {
+ result = manager->GetDir(path,ESortByName, KEntryAttNormal, entrylist, dirlist);
+ }
+ else
+ {
+ result = manager->GetDir(path,TUidType(), ESortByName, filelist);
+ }
+ CleanupStack::PopAndDestroy(manager);
+
+ if(entrylist)
+ {
+ INFO_PRINTF2(_L("%d items in EntryList:"), entrylist->Count());
+ DisplayList(*entrylist);
+ delete entrylist;
+ entrylist = NULL;
+ }
+
+ if(dirlist)
+ {
+ INFO_PRINTF2(_L("%d items in DirList:"), dirlist->Count());
+ DisplayList(*dirlist);
+ delete dirlist;
+ dirlist = NULL;
+ }
+
+ if(filelist)
+ {
+ INFO_PRINTF2(_L("%d items in FileList:"), filelist->Count());
+ DisplayList(*filelist);
+ delete filelist;
+ filelist = NULL;
+ }
+
+ if(result == expectedResult)
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF2(_L("GetDir() returned with unexpected error: %d"), result);
+ }
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+
+void CCAFGetDirStep::DisplayList(CDir& aDir)
+ {
+ TInt i = 0;
+ for(i = 0; i < aDir.Count(); i++)
+ {
+ INFO_PRINTF2(_L(" %S"), &aDir[i].iName );
+ }
+ }
+
+
+/*
+ * This step tests the notification functions
+ *
+ */
+
+CCAFManagerNotifyStep::~CCAFManagerNotifyStep()
+ {
+ }
+
+CCAFManagerNotifyStep::CCAFManagerNotifyStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFManagerNotifyStep);
+ }
+
+
+TVerdict CCAFManagerNotifyStep::doTestStepL()
+ {
+ TPtrC uri;
+ TInt result;
+ TRequestStatus status = KRequestPending;
+
+ TInt Status1;
+ TInt Cancel1;
+ TInt Cancel2;
+
+
+ SetTestStepResult(EPass);
+
+ // Find the file to copy and the expected return code from the INI file
+ GetStringFromConfig(ConfigSection(),_L("path"),uri);
+ GetIntFromConfig(ConfigSection(),_L("Status1"),Status1);
+ GetIntFromConfig(ConfigSection(),_L("Cancel1"),Cancel1);
+ GetIntFromConfig(ConfigSection(),_L("Cancel2"),Cancel2);
+
+ INFO_PRINTF2(_L("Performing notification tests on %S"), &uri);
+
+ __UHEAP_MARK;
+ CManager *manager = CManager::NewLC();
+ // Wait for rights
+ manager->NotifyStatusChange(uri, ERightsAvailable, status);
+ User::WaitForRequest(status);
+ if(status.Int() != Status1)
+ {
+ INFO_PRINTF3(_L("Status expected: %d returned unexpected status %d"), Status1, status.Int());
+ SetTestStepResult(EFail);
+ }
+ result = manager->CancelNotifyStatusChange(uri, status);
+ if(result != Cancel1)
+ {
+ INFO_PRINTF3(_L("Cancel request expected return value: %d returned unexpected value %d"), Cancel1, result);
+ SetTestStepResult(EFail);
+ }
+
+ // Wait for rights expired but cancel before they arrive
+ manager->NotifyStatusChange(uri, ERightsExpired, status);
+ result = manager->CancelNotifyStatusChange(uri, status);
+ if(result != Cancel2)
+ {
+ INFO_PRINTF3(_L("Cancel2 request expected return value: %d returned unexpected value %d"), Cancel2, result);
+ SetTestStepResult(EFail);
+ }
+
+ CleanupStack::PopAndDestroy(manager);
+
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+/*
+ * This step sets a property in the agents
+ *
+ */
+
+CCAFManagerSetPropertyStep::~CCAFManagerSetPropertyStep()
+ {
+ }
+
+CCAFManagerSetPropertyStep::CCAFManagerSetPropertyStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFManagerSetPropertyStep);
+ }
+
+
+TVerdict CCAFManagerSetPropertyStep::doTestStepL()
+ {
+ TInt expectedResult;
+ TInt result;
+
+ SetTestStepResult(EFail);
+
+ // Find the file to copy and the expected return code from the INI file
+ GetIntFromConfig(ConfigSection(),_L("result"),expectedResult);
+
+ INFO_PRINTF2(_L("Set Property expected result: %d"), expectedResult);
+
+ __UHEAP_MARK;
+
+ CManager *manager = CManager::NewLC();
+ result = manager->SetProperty(EAgentPropertyBufferSize, 100);
+ CleanupStack::PopAndDestroy(manager);
+
+ // dummy test Agent expects KErrNotSupported
+ if(result == expectedResult || result == KErrNotSupported)
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF2(_L("SetProperty() returned with unexpected error: %d"), result);
+ }
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+
+/*
+ * This step asks the agent to display information about a file
+ *
+ */
+
+CCAFManagerDisplayInfoStep::~CCAFManagerDisplayInfoStep()
+ {
+ }
+
+CCAFManagerDisplayInfoStep::CCAFManagerDisplayInfoStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFManagerDisplayInfoStep);
+ }
+
+
+TVerdict CCAFManagerDisplayInfoStep::doTestStepL()
+ {
+ TPtrC uri;
+ TInt expectedResult;
+ TInt result;
+
+ SetTestStepResult(EFail);
+
+ // Find the file to copy and the expected return code from the INI file
+ GetStringFromConfig(ConfigSection(),_L("uri"),uri);
+ GetIntFromConfig(ConfigSection(),_L("result"),expectedResult);
+
+ INFO_PRINTF3(_L("DisplayInfo for %S expected result: %d"), &uri, expectedResult);
+
+ __UHEAP_MARK;
+
+ CManager *manager = CManager::NewLC();
+ TRAP(result, manager->DisplayInfoL(EFileProperties, TVirtualPathPtr(uri)));
+ CleanupStack::PopAndDestroy(manager);
+
+ if(result == expectedResult)
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF2(_L("DisplayInfoL() left with unexpected error: %d"), result);
+ }
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+/*
+ * This step asks CAF for a list of agents
+ *
+ */
+
+CCAFManagerListAgentsStep::~CCAFManagerListAgentsStep()
+ {
+ }
+
+CCAFManagerListAgentsStep::CCAFManagerListAgentsStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFManagerListAgentsStep);
+ }
+
+
+TVerdict CCAFManagerListAgentsStep::doTestStepL()
+ {
+ TPtrC uri;
+ TInt expectedResult;
+ TInt expectedNumber;
+ TInt result;
+
+ RArray <TAgent> agents;
+
+ SetTestStepResult(EFail);
+
+ // Find the file to copy and the expected return code from the INI file
+ GetIntFromConfig(ConfigSection(),_L("count"),expectedNumber);
+ GetIntFromConfig(ConfigSection(),_L("result"),expectedResult);
+
+ INFO_PRINTF2(_L("List agents expected result: %d"), expectedResult);
+
+ __UHEAP_MARK;
+
+ CManager *manager = CManager::NewLC();
+ TRAP(result, manager->ListAgentsL(agents));
+ CleanupStack::PopAndDestroy(manager);
+
+ TInt i = 0;
+ for (i = 0; i < agents.Count(); i++)
+ {
+ TPtrC agentName = agents[i].Name();
+ INFO_PRINTF2(_L(" %S"), &agentName);
+ }
+
+ INFO_PRINTF2(_L("List agents expected result: %d"), expectedResult);
+
+ if(result == expectedResult)
+ {
+ if(expectedNumber == agents.Count())
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF2(_L("Expected number of agents: %d"), expectedNumber);
+ }
+ }
+ else
+ {
+ INFO_PRINTF2(_L("ListAgents left with unexpected error: %d"), result);
+ }
+
+ agents.Close();
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+/*
+ * This step attempts to perform an agent specific command
+ *
+ */
+
+CCAFManagerAgentSpecificStep::~CCAFManagerAgentSpecificStep()
+ {
+ }
+
+CCAFManagerAgentSpecificStep::CCAFManagerAgentSpecificStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFManagerAgentSpecificStep);
+ }
+
+
+TVerdict CCAFManagerAgentSpecificStep::doTestStepL()
+ {
+ TPtrC input16;
+ TPtrC output16;
+ TInt expectedResult;
+ TInt command;
+ TInt result;
+ TBuf8 <100> actualOutput;
+ TBuf8 <100> output;
+ TBuf8 <100> input;
+ TInt index = 0;
+
+ RArray <TAgent> agents;
+ _LIT(KTestAgentName, "Reference Test Agent");
+
+ SetTestStepResult(EPass);
+
+ GetIntFromConfig(ConfigSection(),_L("command"),command);
+ GetStringFromConfig(ConfigSection(),_L("input"),input16);
+ GetStringFromConfig(ConfigSection(),_L("output"),output16);
+ GetIntFromConfig(ConfigSection(),_L("result"),expectedResult);
+
+ input.Copy(input16);
+ output.Copy(output16);
+
+ __UHEAP_MARK;
+ CManager *manager = CManager::NewLC();
+ TRAP(result, manager->ListAgentsL(agents));
+
+ INFO_PRINTF1(_L("Running synchronous Agent specific command"));
+ actualOutput.SetLength(0);
+ if(result == KErrNone && agents.Count() > 0)
+ {
+ for(index = 0; index < agents.Count(); index++)
+ {
+ if(agents[index].Name() == KTestAgentName())
+ {
+ break;
+ }
+ }
+ result = manager->AgentSpecificCommand(agents[index],command, input, actualOutput);
+ }
+ else
+ {
+ SetTestStepResult(EFail);
+ }
+ if(result != expectedResult)
+ {
+ SetTestStepResult(EFail);
+ INFO_PRINTF3(_L("Async Expected result: %d, actual result: %d"), expectedResult, result);
+ }
+ else if(actualOutput != output)
+ {
+ SetTestStepResult(EFail);
+ INFO_PRINTF3(_L("Async Expected output: %S, actual output: %S"), &output, &actualOutput);
+ }
+
+ INFO_PRINTF1(_L("Running asynchronous Agent specific command"));
+ TRequestStatus status;
+ actualOutput.SetLength(0);
+ if((result == KErrNone || result == expectedResult) && agents.Count() > 0)
+ {
+ manager->AgentSpecificCommand(agents[index], command, input, actualOutput, status);
+ User::WaitForRequest(status);
+ }
+ else
+ {
+ SetTestStepResult(EFail);
+ }
+ if(status.Int() != expectedResult)
+ {
+ SetTestStepResult(EFail);
+ INFO_PRINTF3(_L("Async Expected result: %d, actual result: %d"), expectedResult, status.Int());
+ }
+ else if(actualOutput != output)
+ {
+ SetTestStepResult(EFail);
+ INFO_PRINTF3(_L("Async Expected output: %S, actual output: %S"), &output, &actualOutput);
+ }
+
+ CleanupStack::PopAndDestroy(manager);
+ agents.Close();
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+/*
+ * This step attempts to display configuration information
+ *
+ */
+
+CCAFManagerDisplayConfigStep::~CCAFManagerDisplayConfigStep()
+ {
+ }
+
+CCAFManagerDisplayConfigStep::CCAFManagerDisplayConfigStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFManagerDisplayConfigStep);
+ }
+
+TVerdict CCAFManagerDisplayConfigStep::doTestStepL()
+ {
+ TInt expectedResult;
+ TInt result = KErrNone;
+
+ RArray <TAgent> agents;
+ CManager *manager;
+
+ SetTestStepResult(EPass);
+
+ GetIntFromConfig(ConfigSection(),_L("result"),expectedResult);
+
+ __UHEAP_MARK;
+ manager = CManager::NewL();
+ CleanupStack::PushL(manager);
+ TRAP(result, manager->ListAgentsL(agents));
+
+ if(result == KErrNone && agents.Count() > 0)
+ {
+ TRAP(result, manager->DisplayManagementInfoL(agents[0]));
+ }
+ else
+ {
+ SetTestStepResult(EFail);
+ }
+ if(result != expectedResult && result != KErrNotSupported) // dummy test agent expects -5
+ {
+ SetTestStepResult(EFail);
+ INFO_PRINTF3(_L("Expected result: %d, actual result: %d"), expectedResult, result);
+ }
+
+ CleanupStack::PopAndDestroy(manager);
+ agents.Close();
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+/*
+ * Manager attribute step
+ *
+ */
+
+CCAFManagerAttributeStep::~CCAFManagerAttributeStep()
+ {
+ }
+
+CCAFManagerAttributeStep::CCAFManagerAttributeStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFManagerAttributeStep);
+ }
+
+TVerdict CCAFManagerAttributeStep::doTestStepL()
+ {
+#ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
+ TBool wmdrmFlag = EFalse;
+ GetBoolFromConfig(ConfigSection(),_L("wmdrmEnabled"), wmdrmFlag);
+
+ if(wmdrmFlag)
+ {
+ TVerdict verdict = doWmdrmTestStepL();
+ return verdict;
+ }
+#endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
+
+ TInt attribute;
+ TInt value = KErrNone;
+ TInt expectedValue;
+ TPtrC uri;
+ TPtrC uniqueId;
+
+ CManager *manager;
+
+ SetTestStepResult(EPass);
+
+ GetIntFromConfig(ConfigSection(),_L("attribute"),attribute);
+ GetStringFromConfig(ConfigSection(),_L("uri"),uri);
+ GetStringFromConfig(ConfigSection(),_L("uniqueid"),uniqueId);
+ GetIntFromConfig(ConfigSection(),_L("value"),expectedValue);
+
+ __UHEAP_MARK;
+ manager = CManager::NewL();
+ if(manager)
+ {
+ CleanupStack::PushL(manager);
+ User::LeaveIfError(manager->GetAttribute(attribute, value, TVirtualPathPtr(uri, uniqueId)));
+ if(expectedValue!= value)
+ {
+ SetTestStepResult(EFail);
+ INFO_PRINTF3(_L("CManager::GetAttribute() Expected value: %d, actual value: %d"), expectedValue, value);
+ }
+ CleanupStack::PopAndDestroy(manager);
+ }
+ else
+ {
+ SetTestStepResult(EFail);
+ INFO_PRINTF1(_L("CManager construction failed"));
+ }
+
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+/*
+ * Manager attributeset step
+ *
+ */
+
+CCAFManagerAttributeSetStep::~CCAFManagerAttributeSetStep()
+ {
+ }
+
+CCAFManagerAttributeSetStep::CCAFManagerAttributeSetStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFManagerAttributeSetStep);
+ }
+
+TVerdict CCAFManagerAttributeSetStep::doTestStepL()
+ {
+#ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
+ TBool wmdrmFlag = EFalse;
+ GetBoolFromConfig(ConfigSection(),_L("wmdrmEnabled"), wmdrmFlag);
+
+ if(wmdrmFlag)
+ {
+ TVerdict verdict = doWmdrmTestStepL();
+ return verdict;
+ }
+#endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
+
+ TInt value1;
+ TInt value2;
+ TInt expectedValue1;
+ TInt expectedValue2;
+ TInt attribute1;
+ TInt attribute2;
+ TInt result = KErrNone;
+ TPtrC uri;
+ TPtrC uniqueId;
+
+ CManager *manager;
+
+ SetTestStepResult(EPass);
+
+ GetStringFromConfig(ConfigSection(),_L("uri"),uri);
+ GetStringFromConfig(ConfigSection(),_L("uniqueid"),uniqueId);
+ GetIntFromConfig(ConfigSection(),_L("attribute1"),attribute1);
+ GetIntFromConfig(ConfigSection(),_L("attribute2"),attribute2);
+ GetIntFromConfig(ConfigSection(),_L("value1"),expectedValue1);
+ GetIntFromConfig(ConfigSection(),_L("value2"),expectedValue2);
+
+ __UHEAP_MARK;
+ manager = CManager::NewL();
+ if(manager)
+ {
+ CleanupStack::PushL(manager);
+ RAttributeSet attributeSet;
+ CleanupClosePushL(attributeSet);
+ attributeSet.AddL(attribute1);
+ attributeSet.AddL(attribute2);
+ result = manager->GetAttributeSet(attributeSet, TVirtualPathPtr(uri, uniqueId));
+ if(result != KErrNone)
+ {
+ SetTestStepResult(EFail);
+ INFO_PRINTF1(_L("CManager::GetAttribute() failed"));
+ }
+ User::LeaveIfError(attributeSet.GetValue(attribute1, value1));
+ User::LeaveIfError(attributeSet.GetValue(attribute2, value2));
+ if(expectedValue1 != value1 || expectedValue2 != value2 || attributeSet.Count() != 2)
+ {
+ SetTestStepResult(EFail);
+ INFO_PRINTF1(_L("CManager::GetAttributeSet() values don't match expected values"));
+ }
+ CleanupStack::PopAndDestroy(&attributeSet);
+ CleanupStack::PopAndDestroy(manager);
+ }
+ else
+ {
+ SetTestStepResult(EFail);
+ INFO_PRINTF1(_L("CManager construction failed"));
+ }
+
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+
+/*
+ * Manager string attribute step
+ *
+ */
+
+CCAFManagerStringAttributeStep::~CCAFManagerStringAttributeStep()
+ {
+ }
+
+CCAFManagerStringAttributeStep::CCAFManagerStringAttributeStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFManagerStringAttributeStep);
+ }
+
+TVerdict CCAFManagerStringAttributeStep::doTestStepL()
+ {
+#ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
+ TBool wmdrmFlag = EFalse;
+ GetBoolFromConfig(ConfigSection(),_L("wmdrmEnabled"), wmdrmFlag);
+
+ if(wmdrmFlag)
+ {
+ TVerdict verdict = doWmdrmTestStepL();
+ return verdict;
+ }
+#endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
+
+ TInt expectedResult;
+ TInt attribute;
+ TPtrC expectedValue;
+ TBuf <200> value;
+ TInt result = KErrNone;
+ TPtrC uri;
+ TPtrC uniqueId;
+
+ CManager *manager;
+
+ SetTestStepResult(EPass);
+
+ GetIntFromConfig(ConfigSection(),_L("attribute"),attribute);
+ GetStringFromConfig(ConfigSection(),_L("uri"),uri);
+ GetStringFromConfig(ConfigSection(),_L("uniqueid"),uniqueId);
+ GetStringFromConfig(ConfigSection(),_L("value"),expectedValue);
+ GetIntFromConfig(ConfigSection(),_L("result"),expectedResult);
+
+ __UHEAP_MARK;
+ manager = CManager::NewL();
+ if(manager)
+ {
+ CleanupStack::PushL(manager);
+ result = manager->GetStringAttribute(attribute, value, TVirtualPathPtr(uri, uniqueId));
+ if(result != expectedResult)
+ {
+ SetTestStepResult(EFail);
+ INFO_PRINTF3(_L("CManager::GetStringAttribute() Expected result: %d, actual result: %d"), expectedResult, result);
+ }
+ if(value != expectedValue)
+ {
+ SetTestStepResult(EFail);
+ INFO_PRINTF3(_L("CManager::GetStringAttribute() Expected value: %S, actual result: %S"), &expectedValue, &value);
+ }
+
+ CleanupStack::PopAndDestroy(manager);
+ }
+ else
+ {
+ SetTestStepResult(EFail);
+ INFO_PRINTF1(_L("CManager construction failed"));
+ }
+
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+/*
+ * Manager StringAttributeSet step
+ *
+ */
+
+CCAFManagerStringAttributeSetStep::~CCAFManagerStringAttributeSetStep()
+ {
+ }
+
+CCAFManagerStringAttributeSetStep::CCAFManagerStringAttributeSetStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFManagerStringAttributeSetStep);
+ }
+
+TVerdict CCAFManagerStringAttributeSetStep::doTestStepL()
+ {
+#ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
+ TBool wmdrmFlag = EFalse;
+ GetBoolFromConfig(ConfigSection(),_L("wmdrmEnabled"), wmdrmFlag);
+
+ if(wmdrmFlag)
+ {
+ TVerdict verdict = doWmdrmTestStepL();
+ return verdict;
+ }
+#endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
+
+ TPtrC expectedValue1;
+ TPtrC expectedValue2;
+ TBuf <200> value1;
+ TBuf <200> value2;
+ TInt result1;
+ TInt result2;
+ TInt attribute1;
+ TInt attribute2;
+ TInt result = KErrNone;
+ TPtrC uri;
+ TPtrC uniqueId;
+
+ CManager *manager;
+
+ SetTestStepResult(EPass);
+
+ GetStringFromConfig(ConfigSection(),_L("uri"),uri);
+ GetStringFromConfig(ConfigSection(),_L("uniqueid"),uniqueId);
+ GetIntFromConfig(ConfigSection(),_L("attribute1"),attribute1);
+ GetIntFromConfig(ConfigSection(),_L("attribute2"),attribute2);
+ GetStringFromConfig(ConfigSection(),_L("value1"),expectedValue1);
+ GetStringFromConfig(ConfigSection(),_L("value2"),expectedValue2);
+ GetIntFromConfig(ConfigSection(),_L("result1"),result1);
+ GetIntFromConfig(ConfigSection(),_L("result2"),result2);
+
+
+ __UHEAP_MARK;
+ manager = CManager::NewL();
+ if(manager)
+ {
+ CleanupStack::PushL(manager);
+ RStringAttributeSet attributeSet;
+ CleanupClosePushL(attributeSet);
+ attributeSet.AddL(attribute1);
+ attributeSet.AddL(attribute2);
+ result = manager->GetStringAttributeSet(attributeSet, TVirtualPathPtr(uri, uniqueId));
+ if(result != KErrNone)
+ {
+ SetTestStepResult(EFail);
+ INFO_PRINTF1(_L("CManager::GetAttribute() failed"));
+ }
+ if(result1 != attributeSet.GetValue(attribute1, value1))
+ {
+ INFO_PRINTF1(_L("RStringAttributeSet::GetValue failed"));
+ }
+ if(result2 != attributeSet.GetValue(attribute2, value2))
+ {
+ INFO_PRINTF1(_L("RStringAttributeSet::GetValue failed"));
+ }
+ if(value1 != expectedValue1 || value2 != expectedValue2 || attributeSet.Count() != 2)
+ {
+ SetTestStepResult(EFail);
+ INFO_PRINTF1(_L("CManager::GetAttributeSet() values don't match expected values"));
+ }
+ CleanupStack::PopAndDestroy(&attributeSet);
+ CleanupStack::PopAndDestroy(manager);
+ }
+ else
+ {
+ SetTestStepResult(EFail);
+ INFO_PRINTF1(_L("CManager construction failed"));
+ }
+
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+
+
+
+CIteratorTestStateMachine::CIteratorTestStateMachine(CCAFContentIteratorStep *aParent) : CActive(EPriorityStandard)
+ {
+ iParent = aParent;
+ }
+
+CIteratorTestStateMachine::~CIteratorTestStateMachine()
+ {
+ delete iter;
+ delete iPath;
+ delete iMimeType;
+ }
+
+void CIteratorTestStateMachine::DoCancel()
+ {
+ // Not used
+ CActiveScheduler::Stop();
+ }
+
+
+void CIteratorTestStateMachine::RunTestL(const TDesC& aPath, TBool aRecursive, const TDesC8& aMimeType)
+ {
+ iPath = aPath.AllocL();
+ iMimeType = aMimeType.AllocL();
+ iRecursive = aRecursive;
+
+ // This function will only return once all files have been found
+ // and the RunL() method calls CActiveScheduler::Stop()
+ CActiveScheduler::Add(this);
+ iStatus = KRequestPending;
+ SetActive();
+ TRequestStatus *ptr = &iStatus;
+ User::RequestComplete(ptr, KErrNone);
+ CActiveScheduler::Start();
+ }
+
+void CIteratorTestStateMachine::RunL()
+ {
+ TBuf <KMaxDataTypeLength> mime16;
+ TVirtualPathPtr location(KNullDesC(), KNullDesC());
+
+ if(iStatus.Int() != KErrNone)
+ {
+ delete iter;
+ iter = NULL;
+ CActiveScheduler::Stop();
+ }
+ else
+ {
+ switch(iState)
+ {
+ case 0: // create iterator
+ iter = CContentIterator::NewL(*iPath, iRecursive, *iMimeType);
+ iStatus = KRequestPending;
+ iter->Next(iStatus);
+ SetActive();
+ iState = 1;
+ break;
+
+ case 1: // get result of Next request
+ location = iter->VirtualPath();
+ mime16.Copy(iter->MimeType());
+ iParent->PrintResult(location.URI(), location.UniqueId(), mime16);
+ iStatus = KRequestPending;
+ iter->Next(iStatus);
+ SetActive();
+ break;
+ default:
+ CActiveScheduler::Stop();
+ break;
+ };
+ }
+ }
+
+/*
+ * Content Iterator Step
+ *
+ */
+
+CCAFContentIteratorStep::~CCAFContentIteratorStep()
+ {
+ }
+
+CCAFContentIteratorStep::CCAFContentIteratorStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFContentIteratorStep);
+ }
+
+TVerdict CCAFContentIteratorStep::doTestStepL()
+ {
+ TPtrC path;
+ TPtrC mimeType;
+ TBuf8 <KMaxDataTypeLength> mimeType8;
+
+ SetTestStepResult(EPass);
+
+ GetStringFromConfig(ConfigSection(),_L("path"),path);
+ GetStringFromConfig(ConfigSection(),_L("mimetype"),mimeType);
+
+ mimeType8.Copy(mimeType);
+
+ __UHEAP_MARK;
+
+ CIteratorTestStateMachine *t = new CIteratorTestStateMachine(this);
+
+ t->RunTestL(path, ETrue, mimeType8);
+
+ delete t;
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+void CCAFContentIteratorStep::PrintResult(const TDesC& aFileName, const TDesC& aUniqueId, const TDesC& aMimeType)
+ {
+ INFO_PRINTF4(_L("File: %S, UniqueId: %S, MimeType: %S"), &aFileName, &aUniqueId, &aMimeType);
+ }
+
+
+/*
+ * This step asks the agent to display information about a file using the file handle
+ *
+ */
+CCAFManagerDisplayInfoByFileHandleStep::~CCAFManagerDisplayInfoByFileHandleStep()
+ {
+ }
+
+CCAFManagerDisplayInfoByFileHandleStep::CCAFManagerDisplayInfoByFileHandleStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFManagerDisplayInfoByFileHandleStep);
+ }
+
+
+TVerdict CCAFManagerDisplayInfoByFileHandleStep::doTestStepL()
+ {
+ TInt result;
+
+ //initialisation for testing purposes such as iUri, iFs, iFile, iExpectedResult and iUniqueId.
+ InitialiseFileHandleParametersL();
+
+ SetTestStepResult(EFail);
+
+ __UHEAP_MARK;
+ CManager *manager = CManager::NewLC();
+
+ TRAP(result, manager->DisplayInfoL(EFileProperties, iFile, iUniqueId));
+ if(result == iExpectedResult)
+ {
+ SetTestStepResult(EPass);
+ INFO_PRINTF1(_L("CManager::DisplayInfoL()(RFile handle overload) PASSED"));
+ }
+ else
+ {
+ INFO_PRINTF1(_L("CManager::DisplayInfoL()(RFile handle overload) returned unexpected error"));
+ INFO_PRINTF3(_L("CManager::DisplayInfoL()(RFile handle overload) Expected result: %d, actual result: %d"), iExpectedResult, result);
+ }
+
+ //cleanup manager instance
+ CleanupStack::PopAndDestroy(manager);
+ //cleanup iFs and iFile instances by closing the handles.
+ CleanupStack::PopAndDestroy(2, &iFs);
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+/*
+ * Manager attribute step using file handle.
+ *
+ */
+
+CCAFManagerAttributeByFileHandleStep::~CCAFManagerAttributeByFileHandleStep()
+ {
+ }
+
+CCAFManagerAttributeByFileHandleStep::CCAFManagerAttributeByFileHandleStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFManagerAttributeByFileHandleStep);
+ }
+
+TVerdict CCAFManagerAttributeByFileHandleStep::doTestStepL()
+ {
+ TInt attribute;
+ TInt value = KErrNone;
+ TInt result= KErrNone;
+ TInt expectedValue;
+
+ //initialisation for testing purposes such as iUri, iFs, iFile, iExpectedResult and iUniqueId.
+ InitialiseFileHandleParametersL();
+ GetIntFromConfig(ConfigSection(),_L("attribute"),attribute);
+ GetIntFromConfig(ConfigSection(),_L("value"),expectedValue);
+
+ SetTestStepResult(EFail);
+
+ __UHEAP_MARK;
+ CManager *manager = CManager::NewLC();
+
+ result = manager->GetAttribute(attribute, value, iFile, iUniqueId);
+ //expectedResult has priority over the values collected.
+ if(result == iExpectedResult)
+ {
+ if(value == expectedValue)
+ {
+ SetTestStepResult(EPass);
+ INFO_PRINTF1(_L("CManager::GetAttribute()(RFile handle overload) PASSED"));
+ }
+ else
+ {
+ INFO_PRINTF1(_L("CManager::GetAttribute()(RFile handle overload) values don't match expected values"));
+ INFO_PRINTF3(_L("CManager::GetAttribute()(RFile handle overload) Expected value: %d, actual value: %d"), expectedValue, value);
+ }
+ }
+ else
+ {
+ INFO_PRINTF1(_L("CManager::GetAttribute()(RFile handle overload) returned unexpected error"));
+ INFO_PRINTF3(_L("CManager::GetAttribute()(RFile handle overload) Expected result: %d, actual result: %d"), iExpectedResult, result);
+ }
+
+ //cleanup manager instance
+ CleanupStack::PopAndDestroy(manager);
+ //cleanup iFs and iFile instances by closing the handles.
+ CleanupStack::PopAndDestroy(2, &iFs);
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+/*
+ * Manager attributeset step by file handle.
+ *
+ */
+
+CCAFManagerAttributeSetByFileHandleStep::~CCAFManagerAttributeSetByFileHandleStep()
+ {
+ }
+
+CCAFManagerAttributeSetByFileHandleStep::CCAFManagerAttributeSetByFileHandleStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFManagerAttributeSetByFileHandleStep);
+ }
+
+TVerdict CCAFManagerAttributeSetByFileHandleStep::doTestStepL()
+ {
+ TInt value1;
+ TInt value2;
+ TInt expectedValue1;
+ TInt expectedValue2;
+ TInt attribute1;
+ TInt attribute2;
+ TInt result = KErrNone;
+
+ //initialisation for testing purposes such as iUri, iFs, iFile, iExpectedResult and iUniqueId.
+ InitialiseFileHandleParametersL();
+ GetIntFromConfig(ConfigSection(),_L("attribute1"),attribute1);
+ GetIntFromConfig(ConfigSection(),_L("attribute2"),attribute2);
+ GetIntFromConfig(ConfigSection(),_L("value1"),expectedValue1);
+ GetIntFromConfig(ConfigSection(),_L("value2"),expectedValue2);
+
+ SetTestStepResult(EFail);
+
+ __UHEAP_MARK;
+ CManager *manager = CManager::NewLC();
+
+ RAttributeSet attributeSet;
+ CleanupClosePushL(attributeSet);
+ attributeSet.AddL(attribute1);
+ attributeSet.AddL(attribute2);
+
+ result = manager->GetAttributeSet(attributeSet, iFile, iUniqueId);
+ //expectedResult has priority over the values collected.
+ if(result == iExpectedResult)
+ {
+ User::LeaveIfError(attributeSet.GetValue(attribute1, value1));
+ User::LeaveIfError(attributeSet.GetValue(attribute2, value2));
+ if(value1 == expectedValue1 && value2 == expectedValue2)
+ {
+ SetTestStepResult(EPass);
+ INFO_PRINTF1(_L("CManager::GetAttributeSet()(RFile handle overload) PASSED"));
+ }
+ else
+ {
+ INFO_PRINTF1(_L("CManager::GetAttributeSet()(RFile handle overload) values don't match expected values"));
+ INFO_PRINTF3(_L("CManager::GetAttributeSet()(RFile handle overload) Expected value: %d, actual value: %d"), expectedValue1, value1);
+ INFO_PRINTF3(_L("CManager::GetAttributeSet()(RFile handle overload) Expected value: %d, actual value: %d"), expectedValue2, value2);
+ }
+ }
+ else
+ {
+ INFO_PRINTF1(_L("CManager::GetAttributeSet()(RFile handle overload) returned unexpected error"));
+ INFO_PRINTF3(_L("CManager::GetAttributeSet()(RFile handle overload) Expected result: %d, actual result: %d"), iExpectedResult, result);
+ }
+
+ //cleanup manager and attributeSet instances
+ CleanupStack::PopAndDestroy(2, manager);
+ //cleanup iFs and iFile instances by closing the handles.
+ CleanupStack::PopAndDestroy(2, &iFs);
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+
+/*
+ * Manager string attribute step by file handle
+ *
+ */
+
+CCAFManagerStringAttributeByFileHandleStep::~CCAFManagerStringAttributeByFileHandleStep()
+ {
+ }
+
+CCAFManagerStringAttributeByFileHandleStep::CCAFManagerStringAttributeByFileHandleStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFManagerStringAttributeByFileHandleStep);
+ }
+
+TVerdict CCAFManagerStringAttributeByFileHandleStep::doTestStepL()
+ {
+ TInt attribute;
+ TInt result = KErrNone;
+ TPtrC expectedValue;
+ TBuf <200> value;
+
+ //initialisation for testing purposes such as iUri, iFs, iFile, iExpectedResult and iUniqueId.
+ InitialiseFileHandleParametersL();
+ GetIntFromConfig(ConfigSection(),_L("attribute"),attribute);
+ GetStringFromConfig(ConfigSection(),_L("value"),expectedValue);
+
+ SetTestStepResult(EFail);
+
+ __UHEAP_MARK;
+ CManager* manager = CManager::NewLC();
+
+ result = manager->GetStringAttribute(attribute, value, iFile, iUniqueId);
+ //expectedResult has priority over the values collected.
+ if(result == iExpectedResult)
+ {
+ if (value == expectedValue)
+ {
+ SetTestStepResult(EPass);
+ INFO_PRINTF1(_L("CManager::GetStringAttribute()(RFile handle overload) PASSED"));
+ }
+ else
+ {
+ INFO_PRINTF1(_L("CManager::GetStringAttribute()(RFile handle overload) values don't match expected values"));
+ INFO_PRINTF3(_L("CManager::GetStringAttribute()(RFile handle overload) Expected value: %S, actual value: %S"), &expectedValue, &value);
+ }
+ }
+ else
+ {
+ INFO_PRINTF1(_L("CManager::GetStringAttribute()(RFile handle overload) returned unexpected error"));
+ INFO_PRINTF3(_L("CManager::GetStringAttribute()(RFile handle overload) Expected result: %d, actual result: %d"), iExpectedResult, result);
+ }
+
+ //cleanup manager instance
+ CleanupStack::PopAndDestroy(manager);
+ //cleanup iFs and iFile instances by closing the handles.
+ CleanupStack::PopAndDestroy(2, &iFs);
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+/*
+ * Manager StringAttributeSet step by file handle.
+ *
+ */
+
+CCAFManagerStringAttributeSetByFileHandleStep::~CCAFManagerStringAttributeSetByFileHandleStep()
+ {
+ }
+
+CCAFManagerStringAttributeSetByFileHandleStep::CCAFManagerStringAttributeSetByFileHandleStep(CCAFServer& aParent) : iParent(aParent)
+ {
+ SetTestStepName(KCAFManagerStringAttributeSetByFileHandleStep);
+ }
+
+TVerdict CCAFManagerStringAttributeSetByFileHandleStep::doTestStepL()
+ {
+ TInt attribute1;
+ TInt attribute2;
+ TInt result = KErrNone;
+ TPtrC expectedValue1;
+ TPtrC expectedValue2;
+ TBuf <200> value1;
+ TBuf <200> value2;
+
+ //initialisation for testing purposes such as iUri, iFs, iFile, iExpectedResult and iUniqueId.
+ InitialiseFileHandleParametersL();
+ GetIntFromConfig(ConfigSection(),_L("attribute1"),attribute1);
+ GetIntFromConfig(ConfigSection(),_L("attribute2"),attribute2);
+ GetStringFromConfig(ConfigSection(),_L("value1"),expectedValue1);
+ GetStringFromConfig(ConfigSection(),_L("value2"),expectedValue2);
+
+ SetTestStepResult(EFail);
+
+ __UHEAP_MARK;
+ CManager* manager = CManager::NewLC();
+
+ RStringAttributeSet attributeSet;
+ CleanupClosePushL(attributeSet);
+ attributeSet.AddL(attribute1);
+ attributeSet.AddL(attribute2);
+
+ result = manager->GetStringAttributeSet(attributeSet, iFile, iUniqueId);
+ //expectedResult has priority over the values collected.
+ if(result == iExpectedResult)
+ {
+ User::LeaveIfError(attributeSet.GetValue(attribute1, value1));
+ User::LeaveIfError(attributeSet.GetValue(attribute2, value2));
+ if (value1 == expectedValue1 && value2 == expectedValue2)
+ {
+ SetTestStepResult(EPass);
+ INFO_PRINTF1(_L("CManager::GetStringAttributeSet()(RFile handle overload) PASSED"));
+ }
+ else
+ {
+ INFO_PRINTF1(_L("CManager::GetStringAttributeSet()(RFile handle overload) values don't match expected values"));
+ INFO_PRINTF3(_L("CManager::GetStringAttributeSet()(RFile handle overload) Expected value: %S, actual value: %S"), &expectedValue1, &value1);
+ INFO_PRINTF3(_L("CManager::GetStringAttributeSet()(RFile handle overload) Expected value: %S, actual value: %S"), &expectedValue2, &value2);
+ }
+ }
+ else
+ {
+ INFO_PRINTF1(_L("CManager::GetStringAttributeSet()(RFile handle overload) returned unexpected error"));
+ INFO_PRINTF3(_L("CManager::GetStringAttributeSet()(RFile handle overload) Expected result: %d, actual result: %d"), iExpectedResult, result);
+ }
+
+ //cleanup manager and attributeSet instances
+ CleanupStack::PopAndDestroy(2, manager);
+ //cleanup iFs and iFile instances by closing the handles.
+ CleanupStack::PopAndDestroy(2, &iFs);
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+#ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
+
+// The following methods test the various manager attribute APIs for WMDRM content.
+
+TVerdict CCAFManagerAttributeStep::doWmdrmTestStepL()
+ {
+ SetTestStepResult(EFail);
+
+ TInt attribVal;
+ GetIntFromConfig(ConfigSection(),_L("attribute"), attribVal);
+
+ TInt expectedValue;
+ GetIntFromConfig(ConfigSection(),_L("value"), expectedValue);
+
+ __UHEAP_MARK;
+
+ TPtrC header;
+ HBufC8* headerData = NULL;
+
+ if(GetStringFromConfig(ConfigSection(),_L("header"), header))
+ {
+ headerData = ConvertDes16toHBufC8LC(header);
+ }
+ else
+ {
+ headerData = CreateWmdrmHeaderLC();
+ }
+
+ TInt value;
+ CManager *manager = CManager::NewLC();
+
+ User::LeaveIfError(manager->GetAttribute(*headerData, attribVal, value));
+ if(expectedValue == value)
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF3(_L("CManager::GetAttribute() Expected value: %d, actual value: %d"), expectedValue, value);
+ }
+
+ CleanupStack::PopAndDestroy(2, headerData);
+
+ __UHEAP_MARKEND;
+ return TestStepResult();
+ }
+
+
+TVerdict CCAFManagerAttributeSetStep::doWmdrmTestStepL()
+ {
+ SetTestStepResult(EFail);
+
+ TInt attribute1;
+ GetIntFromConfig(ConfigSection(),_L("attribute1"),attribute1);
+
+ TInt attribute2;
+ GetIntFromConfig(ConfigSection(),_L("attribute2"),attribute2);
+
+ TInt expectedValue1;
+ GetIntFromConfig(ConfigSection(),_L("value1"),expectedValue1);
+
+ TInt expectedValue2;
+ GetIntFromConfig(ConfigSection(),_L("value2"),expectedValue2);
+
+__UHEAP_MARK;
+
+ TPtrC header;
+ HBufC8* headerData = NULL;
+
+ if(GetStringFromConfig(ConfigSection(),_L("header"), header))
+ {
+ headerData = ConvertDes16toHBufC8LC(header);
+ }
+ else
+ {
+ headerData = CreateWmdrmHeaderLC();
+ }
+
+ RAttributeSet attributeSet;
+ CleanupClosePushL(attributeSet);
+ attributeSet.AddL(attribute1);
+ attributeSet.AddL(attribute2);
+
+ CManager *manager = CManager::NewLC();
+ TInt result = manager->GetAttributeSet(*headerData, attributeSet);
+ if(result == KErrNone)
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF1(_L("CManager::GetAttributeSet() failed"));
+ }
+
+ TInt value1;
+ User::LeaveIfError(attributeSet.GetValue(attribute1, value1));
+
+ TInt value2;
+ User::LeaveIfError(attributeSet.GetValue(attribute2, value2));
+
+ if(expectedValue1 == value1 && expectedValue2 == value2 && attributeSet.Count() == 2)
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF1(_L("CManager::GetAttributeSet() values don't match expected values"));
+ }
+
+ CleanupStack::PopAndDestroy(3, headerData);
+
+__UHEAP_MARKEND;
+
+ return TestStepResult();
+ }
+
+
+TVerdict CCAFManagerStringAttributeStep::doWmdrmTestStepL()
+ {
+ SetTestStepResult(EFail);
+
+ TInt attribVal;
+ GetIntFromConfig(ConfigSection(),_L("attribute"),attribVal);
+
+ TPtrC expectedValue;
+ GetStringFromConfig(ConfigSection(),_L("value"),expectedValue);
+
+ TInt expectedResult;
+ GetIntFromConfig(ConfigSection(),_L("result"),expectedResult);
+
+__UHEAP_MARK;
+
+ TPtrC header;
+ HBufC8* headerData = NULL;
+
+ if(GetStringFromConfig(ConfigSection(),_L("header"), header))
+ {
+ headerData = ConvertDes16toHBufC8LC(header);
+ }
+ else
+ {
+ headerData = CreateWmdrmHeaderLC();
+ }
+
+ CManager* manager = CManager::NewLC();
+ TBuf <200> value;
+ TInt result = manager->GetStringAttribute(*headerData, attribVal, value);
+ if(result == expectedResult && value == expectedValue)
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF3(_L("CManager::GetStringAttribute() Expected result: %d, actual result: %d"), expectedResult, result);
+ INFO_PRINTF3(_L("CManager::GetStringAttribute() Expected value: %S, actual value: %S"), &expectedValue, &value);
+ }
+
+ CleanupStack::PopAndDestroy(2, headerData);
+
+__UHEAP_MARKEND;
+
+ return TestStepResult();
+ }
+
+
+TVerdict CCAFManagerStringAttributeSetStep::doWmdrmTestStepL()
+ {
+ SetTestStepResult(EFail);
+
+ TInt attribute1;
+ GetIntFromConfig(ConfigSection(),_L("attribute1"),attribute1);
+
+ TInt attribute2;
+ GetIntFromConfig(ConfigSection(),_L("attribute2"),attribute2);
+
+ TPtrC expectedValue1;
+ GetStringFromConfig(ConfigSection(),_L("value1"),expectedValue1);
+
+ TPtrC expectedValue2;
+ GetStringFromConfig(ConfigSection(),_L("value2"),expectedValue2);
+
+__UHEAP_MARK;
+
+ TPtrC header;
+ HBufC8* headerData = NULL;
+
+ if(GetStringFromConfig(ConfigSection(),_L("header"), header))
+ {
+ headerData = ConvertDes16toHBufC8LC(header);
+ }
+ else
+ {
+ headerData = CreateWmdrmHeaderLC();
+ }
+
+ RStringAttributeSet attributeSet;
+ CleanupClosePushL(attributeSet);
+ attributeSet.AddL(attribute1);
+ attributeSet.AddL(attribute2);
+
+ CManager* manager = CManager::NewLC();
+ TInt result = manager->GetStringAttributeSet(*headerData, attributeSet);
+ TBuf <200> value1;
+ TBuf <200> value2;
+ if(result == KErrNone)
+ {
+ TInt result3 = attributeSet.GetValue(attribute1, value1);
+ TInt result4 = attributeSet.GetValue(attribute2, value2);
+
+ if(value1 == expectedValue1 && value2 == expectedValue2 && attributeSet.Count() == 2
+ && result3 == KErrNone && result4 == KErrNone)
+ {
+ SetTestStepResult(EPass);
+ }
+ else
+ {
+ INFO_PRINTF3(_L("RStringAttributeSet::GetValue() for attribute1.Expected value: %S, actual value: %S"), &expectedValue1, &value1);
+ INFO_PRINTF3(_L("RStringAttributeSet::GetValue() for attribute2.Expected value: %S, actual value: %S"), &expectedValue2, &value2);
+ INFO_PRINTF3(_L("RStringAttributeSet::GetValue() for attribute1. Expected result: %d, actual result: %d"), 0, result3);
+ INFO_PRINTF3(_L("RStringAttributeSet::GetValue() for attribute2. Expected result: %d, actual result: %d"), 0, result4);
+ }
+ }
+ else
+ {
+ INFO_PRINTF1(_L("CManager::GetStringAttributeSet() failed"));
+ }
+
+ CleanupStack::PopAndDestroy(3, headerData);
+
+__UHEAP_MARKEND;
+
+ return TestStepResult();
+ }
+
+#endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT