sl@0: /* sl@0: * Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of the License "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: sl@0: * sl@0: */ sl@0: sl@0: sl@0: #include "tupsdbmanagementstep.h" sl@0: #include "tupsintegdefs.h" sl@0: #include sl@0: sl@0: using namespace UserPromptService; sl@0: sl@0: _LIT(KOperationCreateView, "CreateView"); sl@0: _LIT(KOperationCancelCloseView, "CancelCloseView"); sl@0: _LIT(KOperationNextMatch, "NextMatch"); sl@0: _LIT(KOperationRemoveDecision, "RemoveDecision"); sl@0: _LIT(KOperationUpdateDecisionAllow, "UpdateDecisionAllow"); sl@0: _LIT(KOperationUpdateDecisionDeny, "UpdateDecisionDeny"); sl@0: _LIT(KOperationCancelUpdate, "CancelUpdate"); sl@0: _LIT(KOperationDeleteDatabase, "DeleteDatabase"); sl@0: _LIT(KOperationDecisionCount, "DecisionCount"); sl@0: sl@0: sl@0: CUpsDbRequest* CUpsDbRequest::NewL() sl@0: { sl@0: CUpsDbRequest* me = new (ELeave) CUpsDbRequest(); sl@0: CleanupStack::PushL(me); sl@0: me->ConstructL(); sl@0: CleanupStack::Pop(me); sl@0: return me; sl@0: } sl@0: sl@0: CUpsDbRequest::~CUpsDbRequest() sl@0: { sl@0: delete iDecisionFilter; sl@0: } sl@0: sl@0: CUpsDbRequest::CUpsDbRequest() sl@0: :iOperation(0), iClientSid(0), iEvaluatorId(0), iServiceId(0), iServerSid(0), iFingerprint(0), sl@0: iClientEntity(0), iDescription(0), iDecisionResult(0), iMajorPolicyVersion(0), iRecordId(0), iEvaluatorInfo(0), iExpectedDecisionCount(0) sl@0: { sl@0: } sl@0: sl@0: void CUpsDbRequest::ConstructL() sl@0: { sl@0: iDecisionFilter = CDecisionFilter::NewL(); sl@0: } sl@0: sl@0: CUPSDbManagementStep::CUPSDbManagementStep() sl@0: { sl@0: SetTestStepName(KUPSDbManagementStep); sl@0: } sl@0: sl@0: CUPSDbManagementStep::~CUPSDbManagementStep() sl@0: { sl@0: iUpsManager.CancelAndCloseView(); sl@0: iUpsManager.Close(); sl@0: iArraySersToRequest.ResetAndDestroy(); sl@0: INFO_PRINTF2(_L("END CELLS: %d"), User::CountAllocCells()); sl@0: __UHEAP_MARKEND; sl@0: } sl@0: sl@0: TVerdict CUPSDbManagementStep::doTestStepPreambleL() sl@0: /** sl@0: * @return - TVerdict code sl@0: * Override of base class virtual sl@0: */ sl@0: { sl@0: __UHEAP_MARK; sl@0: sl@0: INFO_PRINTF2(_L("START CELLS: %d"), User::CountAllocCells()); sl@0: sl@0: // reads client name and SID sl@0: TParse clientFullName; sl@0: RThread client; sl@0: clientFullName.Set(client.FullName(),NULL, NULL); sl@0: iTEFServerName=clientFullName.Name(); sl@0: iExpectedClientSid = client.SecureId() ; sl@0: client.Close(); sl@0: sl@0: // Read how many times the test step needs to be repeated. sl@0: TName fStepRepeat(_L("StepRepeat")); sl@0: TInt repeats; sl@0: sl@0: if(GetIntFromConfig(ConfigSection(),fStepRepeat,repeats)) sl@0: { sl@0: iStepRepeat=repeats; sl@0: } sl@0: else sl@0: { sl@0: iStepRepeat=1; sl@0: } sl@0: sl@0: // Read values for test sequence from INI file. (ARRAY of values) sl@0: TInt index=0; sl@0: TName fOperation; sl@0: fOperation.Format(_L("Operation_%d"), index); sl@0: TName fClientSid; sl@0: fClientSid.Format(_L("ClientSid_%d"),index); sl@0: TName fEvaluatorId; sl@0: fEvaluatorId.Format(_L("EvaluatorId_%d"),index); sl@0: TName fServiceId; sl@0: fServiceId.Format(_L("ServiceId_%d"),index); sl@0: TName fServerSid; sl@0: fServerSid.Format(_L("ServerSid_%d"),index); sl@0: TName fFingerprint; sl@0: fFingerprint.Format(_L("Fingerprint_%d"),index); sl@0: TName fClientEntity; sl@0: fClientEntity.Format(_L("ClientEntity_%d"),index); sl@0: TName fDescription; sl@0: fDescription.Format(_L("Description_%d"),index); sl@0: TName fDecisionResult; sl@0: fDecisionResult.Format(_L("DecisionResult_%d"),index); sl@0: TName fMajorPolicyVersion; sl@0: fMajorPolicyVersion.Format(_L("MajorPolicyVersion_%d"),index); sl@0: TName fRecordId; sl@0: fRecordId.Format(_L("RecordId_%d"),index); sl@0: TName fEvaluatorInfo; sl@0: fEvaluatorInfo.Format(_L("EvaluatorInfo_%d"),index); sl@0: TName fExpectedDecisionCount; sl@0: fExpectedDecisionCount.Format(_L("ExpectedDecisionCount_%d"),index); sl@0: sl@0: TPtrC operation; sl@0: TInt clientSid; sl@0: TInt evaluatorId; sl@0: TInt serviceId; sl@0: TInt serverSid; sl@0: TPtrC fingerprint; sl@0: TPtrC clientEntity; sl@0: TPtrC description; sl@0: TPtrC decisionResult; sl@0: TInt majorPolicyVersion; sl@0: TInt recordId; sl@0: TInt evaluatorInfo; sl@0: TInt expectedDecisionCount; sl@0: sl@0: while (GetStringFromConfig(ConfigSection(),fOperation,operation)) sl@0: { sl@0: sl@0: // Create an instance of a new request sl@0: CUpsDbRequest* newRequest = CUpsDbRequest::NewL(); sl@0: CleanupStack::PushL(newRequest); sl@0: sl@0: // Set the operation to be performed sl@0: newRequest->iOperation = operation; sl@0: sl@0: if(GetHexFromConfig(ConfigSection(),fClientSid,clientSid)) sl@0: { sl@0: newRequest->iClientSid = clientSid; sl@0: newRequest->iDecisionFilter->SetClientSid(TSecureId(clientSid),EEqual); sl@0: } sl@0: sl@0: if(GetHexFromConfig(ConfigSection(),fEvaluatorId,evaluatorId)) sl@0: { sl@0: newRequest->iEvaluatorId = evaluatorId; sl@0: newRequest->iDecisionFilter->SetEvaluatorId(TUid::Uid(evaluatorId),EEqual); sl@0: } sl@0: sl@0: if(GetHexFromConfig(ConfigSection(),fServiceId,serviceId)) sl@0: { sl@0: newRequest->iServiceId = serviceId; sl@0: newRequest->iDecisionFilter->SetServiceId(TUid::Uid(serviceId),EEqual); sl@0: } sl@0: sl@0: if(GetHexFromConfig(ConfigSection(),fServerSid,serverSid)) sl@0: { sl@0: newRequest->iServerSid = serverSid; sl@0: newRequest->iDecisionFilter->SetServerSid(TSecureId(serverSid),EEqual); sl@0: } sl@0: sl@0: if(GetStringFromConfig(ConfigSection(),fFingerprint,fingerprint)) sl@0: { sl@0: HBufC8* fingerprintConverter = HBufC8::NewLC(fingerprint.Length()); sl@0: TPtr8 fingerprintPtr = fingerprintConverter->Des(); sl@0: fingerprintPtr.Copy(fingerprint); sl@0: sl@0: newRequest->iFingerprint = fingerprintPtr; sl@0: sl@0: HBufC8* binaryFingerprint = StringToBinaryLC(fingerprintPtr); sl@0: sl@0: newRequest->iDecisionFilter->SetFingerprintL(*binaryFingerprint,EEqual); sl@0: CleanupStack::PopAndDestroy(binaryFingerprint); sl@0: CleanupStack::PopAndDestroy(fingerprintConverter); sl@0: } sl@0: sl@0: if(GetStringFromConfig(ConfigSection(),fClientEntity,clientEntity)) sl@0: { sl@0: HBufC8* clientEntityConverter = HBufC8::NewLC(clientEntity.Length()); sl@0: TPtr8 clientEntityPtr = clientEntityConverter->Des(); sl@0: clientEntityPtr.Copy(clientEntity); sl@0: sl@0: newRequest->iClientEntity = clientEntityPtr; sl@0: newRequest->iDecisionFilter->SetClientEntityL(clientEntityPtr,EEqual); sl@0: CleanupStack::PopAndDestroy(clientEntityConverter); sl@0: } sl@0: sl@0: if(GetStringFromConfig(ConfigSection(),fDescription,description)) sl@0: { sl@0: newRequest->iDescription = description; sl@0: } sl@0: sl@0: if(GetStringFromConfig(ConfigSection(),fDecisionResult,decisionResult)) sl@0: { sl@0: if(decisionResult.CompareF(_L("Yes"))==0 || decisionResult.CompareF(_L("No"))==0 || decisionResult.CompareF(_L(""))==0 ) sl@0: { sl@0: newRequest->iDecisionResult = decisionResult; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF3(_L("%S: Unexpected Decision Result - %S"),&iTEFServerName, &decisionResult); sl@0: } sl@0: } sl@0: sl@0: if(GetIntFromConfig(ConfigSection(),fMajorPolicyVersion,majorPolicyVersion)) sl@0: { sl@0: newRequest->iMajorPolicyVersion = majorPolicyVersion; sl@0: newRequest->iDecisionFilter->SetMajorPolicyVersion(majorPolicyVersion,EEqual); sl@0: } sl@0: sl@0: if(GetIntFromConfig(ConfigSection(),fRecordId,recordId)) sl@0: { sl@0: newRequest->iRecordId = recordId; sl@0: newRequest->iDecisionFilter->SetRecordId(recordId,EEqual); sl@0: } sl@0: sl@0: if(GetIntFromConfig(ConfigSection(),fEvaluatorInfo,evaluatorInfo)) sl@0: { sl@0: newRequest->iEvaluatorInfo = evaluatorInfo; sl@0: } sl@0: sl@0: if(GetIntFromConfig(ConfigSection(),fExpectedDecisionCount,expectedDecisionCount)) sl@0: { sl@0: newRequest->iExpectedDecisionCount = expectedDecisionCount; sl@0: } sl@0: sl@0: // Add the new service to be requested to array. sl@0: iArraySersToRequest.AppendL(newRequest); sl@0: sl@0: CleanupStack::Pop(newRequest); sl@0: sl@0: index++; sl@0: fOperation.Format(_L("Operation_%d"), index); sl@0: fClientSid.Format(_L("ClientSid_%d"),index); sl@0: fEvaluatorId.Format(_L("EvaluatorId_%d"),index); sl@0: fServiceId.Format(_L("ServiceId_%d"),index); sl@0: fServerSid.Format(_L("ServerSid_%d"),index); sl@0: fFingerprint.Format(_L("Fingerprint_%d"),index); sl@0: fClientEntity.Format(_L("ClientEntity_%d"),index); sl@0: fDescription.Format(_L("Description_%d"),index); sl@0: fDecisionResult.Format(_L("DecisionResult_%d"),index); sl@0: fMajorPolicyVersion.Format(_L("MajorPolicyVersion_%d"),index); sl@0: fRecordId.Format(_L("RecordId_%d"),index); sl@0: fEvaluatorInfo.Format(_L("EvaluatorInfo_%d"),index); sl@0: fExpectedDecisionCount.Format(_L("ExpectedDecisionCount_%d"),index); sl@0: } sl@0: sl@0: SetTestStepResult(EPass); sl@0: return TestStepResult(); sl@0: } sl@0: sl@0: TVerdict CUPSDbManagementStep::doTestStepL() sl@0: { sl@0: // Connect to the UPS Manager sl@0: User::LeaveIfError(iUpsManager.Connect()); sl@0: sl@0: // loop to request for different test services. sl@0: SetTestStepResult(EPass); sl@0: TInt numServicesToRequest = iArraySersToRequest.Count(); sl@0: sl@0: if(numServicesToRequest > 0) sl@0: { sl@0: // repeats the sequence of test services request as many times as specified in iStepRepeat sl@0: for(TInt repeatTimes = 0;repeatTimesiOperation); sl@0: sl@0: TRequestStatus requestStatus; sl@0: sl@0: TPtrC op(iArraySersToRequest[index]->iOperation); sl@0: sl@0: // *** CREATE VIEW *** sl@0: if (!op.CompareF(KOperationCreateView)) sl@0: { sl@0: // Create view using the Decision Filter for the Request sl@0: iUpsManager.CreateView(*iArraySersToRequest[index]->iDecisionFilter,requestStatus); sl@0: sl@0: User::WaitForRequest(requestStatus); sl@0: sl@0: if(requestStatus != KErrNone) sl@0: { sl@0: SetTestStepResult(EFail); sl@0: ERR_PRINTF3(_L("%S: Create View Failure - %d"),&iTEFServerName,requestStatus.Int()); sl@0: User::Leave(requestStatus.Int()); sl@0: } sl@0: } sl@0: // *** CANCEL CLOSE VIEW *** sl@0: else if (!op.CompareF(KOperationCancelCloseView)) sl@0: { sl@0: iUpsManager.CancelAndCloseView(); sl@0: sl@0: INFO_PRINTF2(_L("%S: UPS DB Management - Current View Cancelled and Closed"),&iTEFServerName); sl@0: } sl@0: // *** NEXT MATCH *** sl@0: else if (!op.CompareF(KOperationNextMatch)) sl@0: { sl@0: CDecisionRecord* record = NULL; sl@0: sl@0: // Retrieve the Next Decision according to the Current View sl@0: record = iUpsManager.NextMatchL(); sl@0: CleanupStack::PushL(record); sl@0: sl@0: // If a record is found, check that the record matches any data specified in the INI sl@0: if(record != NULL) sl@0: { sl@0: if(CheckDecisionRecordL(index,*record) == EFalse) sl@0: { sl@0: iUpsManager.CancelAndCloseView(); sl@0: ERR_PRINTF2(_L("%S: Incorrect Results"),&iTEFServerName); sl@0: User::Leave(KErrGeneral); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: iUpsManager.CancelAndCloseView(); sl@0: SetTestStepResult(EFail); sl@0: ERR_PRINTF2(_L("%S: NextMatchL - No Decision Retrieved"),&iTEFServerName); sl@0: User::Leave(KErrEof); sl@0: } sl@0: sl@0: CleanupStack::PopAndDestroy(record); sl@0: sl@0: } sl@0: // *** REMOVE DECISION *** sl@0: else if (!op.CompareF(KOperationRemoveDecision)) sl@0: { sl@0: // Remove decisions from the database based on the contents of the Decision Filter sl@0: TRAPD(err, iUpsManager.RemoveDecisionsL(*iArraySersToRequest[index]->iDecisionFilter)); sl@0: sl@0: if(err == KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("%S: Remove Decision - Decision(s) Successfully Removed"),&iTEFServerName); sl@0: } sl@0: else sl@0: { sl@0: SetTestStepResult(EFail); sl@0: ERR_PRINTF3(_L("%S: ** Error ** Remove Decision Failure - %d"),&iTEFServerName,err); sl@0: User::Leave(err); sl@0: } sl@0: } sl@0: // *** UPDATE DECISION ALLOW *** sl@0: else if (!op.CompareF(KOperationUpdateDecisionAllow)) sl@0: { sl@0: iUpsManager.UpdateDecision(iArraySersToRequest[index]->iRecordId, ETrue, requestStatus); sl@0: sl@0: User::WaitForRequest(requestStatus); sl@0: sl@0: if(requestStatus != KErrNone) sl@0: { sl@0: SetTestStepResult(EFail); sl@0: ERR_PRINTF3(_L("%S: Update Decision 'Allow' Failure - %d"),&iTEFServerName,requestStatus.Int()); sl@0: User::Leave(requestStatus.Int()); sl@0: } sl@0: } sl@0: // *** UPDATE DECISION DENY *** sl@0: else if (!op.CompareF(KOperationUpdateDecisionDeny)) sl@0: { sl@0: iUpsManager.UpdateDecision(iArraySersToRequest[index]->iRecordId, EFalse, requestStatus); sl@0: sl@0: User::WaitForRequest(requestStatus); sl@0: sl@0: if(requestStatus != KErrNone) sl@0: { sl@0: SetTestStepResult(EFail); sl@0: ERR_PRINTF3(_L("%S: Update Decision 'Deny' Failure - %d"),&iTEFServerName,requestStatus.Int()); sl@0: User::Leave(requestStatus.Int()); sl@0: } sl@0: } sl@0: // *** CANCEL DECISION UPDATE *** sl@0: else if (!op.CompareF(KOperationCancelUpdate)) sl@0: { sl@0: iUpsManager.CancelUpdateDecision(); sl@0: sl@0: INFO_PRINTF2(_L("%S: UPS DB Management - Current Decision Update Cancelled"),&iTEFServerName); sl@0: } sl@0: // *** DELETE DATABASE *** sl@0: else if (!op.CompareF(KOperationDeleteDatabase)) sl@0: { sl@0: // Delete the contents of the Decision Database sl@0: TRAPD(err, iUpsManager.DeleteDatabaseL()); sl@0: sl@0: if(err == KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("%S: UPS DB Management - Database Deleted"),&iTEFServerName); sl@0: } sl@0: else sl@0: { sl@0: SetTestStepResult(EFail); sl@0: ERR_PRINTF3(_L("%S: ** Error ** Database Deletion Failure - %d"),&iTEFServerName,err); sl@0: User::Leave(err); sl@0: } sl@0: } sl@0: // *** DECISION COUNT *** sl@0: else if (!op.CompareF(KOperationDecisionCount)) sl@0: { sl@0: iUpsManager.CancelAndCloseView(); sl@0: sl@0: // Create a new view using the constructed decision filter for the request sl@0: iUpsManager.CreateView(*iArraySersToRequest[index]->iDecisionFilter,requestStatus); sl@0: sl@0: User::WaitForRequest(requestStatus); sl@0: sl@0: if(requestStatus.Int() == KErrNone) sl@0: { sl@0: TInt decisionCount = 0; sl@0: CDecisionRecord* record = NULL; sl@0: sl@0: TInt result = KErrNone; sl@0: sl@0: // Whilst records located using the "NextMatchL" method, increment the record count sl@0: while(result == KErrNone) sl@0: { sl@0: TRAP(result, record = iUpsManager.NextMatchL()); sl@0: sl@0: if(record == NULL) sl@0: { sl@0: break; sl@0: } sl@0: else sl@0: { sl@0: ++decisionCount; sl@0: } sl@0: sl@0: delete record; sl@0: record = NULL; sl@0: } sl@0: sl@0: iUpsManager.CancelAndCloseView(); sl@0: sl@0: if(decisionCount != iArraySersToRequest[index]->iExpectedDecisionCount) sl@0: { sl@0: SetTestStepResult(EFail); sl@0: ERR_PRINTF2(_L("%S: Decision Count - Unexpected Number of Database Decisions"),&iTEFServerName); sl@0: ERR_PRINTF3(_L("%S: Decisions expected: %d"),&iTEFServerName,iArraySersToRequest[index]->iExpectedDecisionCount); sl@0: ERR_PRINTF3(_L("%S: Decisions in Database: %d"),&iTEFServerName,decisionCount); sl@0: User::Leave(KErrNotFound); sl@0: } sl@0: sl@0: } sl@0: else sl@0: { sl@0: SetTestStepResult(EFail); sl@0: ERR_PRINTF3(_L("%S: Decision Count - Create View Failure - %d"),&iTEFServerName,requestStatus.Int()); sl@0: User::Leave(requestStatus.Int()); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: SetTestStepResult(EFail); sl@0: ERR_PRINTF2(_L("%S: Invalid operation"),&iTEFServerName); sl@0: User::Leave(KErrNotSupported); sl@0: } sl@0: sl@0: } // End of second loop sl@0: }// End of first loop sl@0: sl@0: } sl@0: else sl@0: { sl@0: SetTestStepResult(EFail); sl@0: ERR_PRINTF2(_L("%S: Problem reading ini file"),&iTEFServerName); sl@0: User::Leave(KErrGeneral); sl@0: } sl@0: sl@0: return TestStepResult(); sl@0: } // End of function sl@0: sl@0: sl@0: TVerdict CUPSDbManagementStep::doTestStepPostambleL() sl@0: { sl@0: return TestStepResult(); sl@0: } sl@0: sl@0: sl@0: TBool CUPSDbManagementStep::CheckDecisionRecordL(TInt aIndex, const CDecisionRecord& aRecord) sl@0: /** sl@0: * Checks the expected record values against those stored within CDecisionRecord retrieved from the database sl@0: * sl@0: * @param - TInt aIndex: Database request index used to access the required instance of CUpsDbRequest held sl@0: * within the request array sl@0: * @param - const CDecisionRecord& aRecord: Decision Record retrieved from the database sl@0: * @return - TBool: Boolean to determine the result of the value checks (ETrue = Pass, EFalse = Fail) sl@0: **/ sl@0: { sl@0: sl@0: TBool checkPassed = ETrue; sl@0: sl@0: sl@0: if(iArraySersToRequest[aIndex]->iClientSid != aRecord.iClientSid) sl@0: { sl@0: ERR_PRINTF2(_L("%S: 'Client SID' value mismatch"),&iTEFServerName); sl@0: checkPassed = EFalse; sl@0: } sl@0: sl@0: if(iArraySersToRequest[aIndex]->iEvaluatorId != aRecord.iEvaluatorId.iUid) sl@0: { sl@0: ERR_PRINTF2(_L("%S: 'Evaluator ID' value mismatch"),&iTEFServerName); sl@0: checkPassed = EFalse; sl@0: } sl@0: sl@0: if(iArraySersToRequest[aIndex]->iServiceId != aRecord.iServiceId.iUid) sl@0: { sl@0: ERR_PRINTF2(_L("%S: 'Service ID' value mismatch"),&iTEFServerName); sl@0: checkPassed = EFalse; sl@0: } sl@0: sl@0: if(iArraySersToRequest[aIndex]->iServerSid != aRecord.iServerSid) sl@0: { sl@0: ERR_PRINTF2(_L("%S: 'Server SID' value mismatch"),&iTEFServerName); sl@0: checkPassed = EFalse; sl@0: } sl@0: sl@0: HBufC8* recordFingerprint = StringToHexLC(aRecord.iFingerprint); sl@0: sl@0: if(iArraySersToRequest[aIndex]->iFingerprint != *recordFingerprint) sl@0: { sl@0: HBufC* expectedFingerprint = HBufC::NewLC(iArraySersToRequest[aIndex]->iFingerprint.Length()); sl@0: HBufC* receivedFingerprint = HBufC::NewLC(recordFingerprint->Length()); sl@0: sl@0: expectedFingerprint->Des().Copy(iArraySersToRequest[aIndex]->iFingerprint); sl@0: receivedFingerprint->Des().Copy(*recordFingerprint); sl@0: sl@0: ERR_PRINTF2(_L("%S: 'Fingerprint' value mismatch."),&iTEFServerName); sl@0: ERR_PRINTF3(_L("%S: Fingerprint expected: %S"),&iTEFServerName,expectedFingerprint); sl@0: ERR_PRINTF3(_L("%S: Fingerprint received: %S"),&iTEFServerName,receivedFingerprint); sl@0: sl@0: CleanupStack::PopAndDestroy(receivedFingerprint); sl@0: CleanupStack::PopAndDestroy(expectedFingerprint); sl@0: checkPassed = EFalse; sl@0: } sl@0: sl@0: CleanupStack::PopAndDestroy(recordFingerprint); sl@0: sl@0: if(iArraySersToRequest[aIndex]->iClientEntity != aRecord.iClientEntity) sl@0: { sl@0: HBufC* expectedClientEntity = HBufC::NewLC(iArraySersToRequest[aIndex]->iClientEntity.Length()); sl@0: HBufC* receivedClientEntity = HBufC::NewLC(aRecord.iClientEntity.Length()); sl@0: sl@0: expectedClientEntity->Des().Copy(iArraySersToRequest[aIndex]->iClientEntity); sl@0: receivedClientEntity->Des().Copy(aRecord.iClientEntity); sl@0: sl@0: ERR_PRINTF2(_L("%S: 'Client Entity' value mismatch."),&iTEFServerName); sl@0: sl@0: CleanupStack::PopAndDestroy(receivedClientEntity); sl@0: CleanupStack::PopAndDestroy(expectedClientEntity); sl@0: checkPassed = EFalse; sl@0: } sl@0: sl@0: if(iArraySersToRequest[aIndex]->iDescription.CompareF(aRecord.iDescription) != 0) sl@0: { sl@0: TPtrC retrievedDescription(aRecord.iDescription); sl@0: ERR_PRINTF2(_L("%S: 'Description' value mismatch."),&iTEFServerName); sl@0: checkPassed = EFalse; sl@0: } sl@0: sl@0: TInt expectedDecisionResult = 0; sl@0: sl@0: if(iArraySersToRequest[aIndex]->iDecisionResult.CompareF(_L("Yes")) == 0) sl@0: { sl@0: expectedDecisionResult = 1; sl@0: } sl@0: sl@0: if(expectedDecisionResult != aRecord.iResult) sl@0: { sl@0: ERR_PRINTF2(_L("%S: 'Decision Result' value mismatch."),&iTEFServerName); sl@0: checkPassed = EFalse; sl@0: } sl@0: sl@0: if(iArraySersToRequest[aIndex]->iMajorPolicyVersion != aRecord.iMajorPolicyVersion) sl@0: { sl@0: ERR_PRINTF2(_L("%S: 'Major Policy Version' value mismatch."),&iTEFServerName); sl@0: checkPassed = EFalse; sl@0: } sl@0: sl@0: if(iArraySersToRequest[aIndex]->iEvaluatorInfo != aRecord.iEvaluatorInfo) sl@0: { sl@0: ERR_PRINTF2(_L("%S: 'Evaluator Info' value mismatch."),&iTEFServerName); sl@0: checkPassed = EFalse; sl@0: } sl@0: sl@0: if(iArraySersToRequest[aIndex]->iRecordId != aRecord.iRecordId) sl@0: { sl@0: ERR_PRINTF2(_L("%S: 'Record ID' value mismatch."),&iTEFServerName); sl@0: checkPassed = EFalse; sl@0: } sl@0: sl@0: return checkPassed; sl@0: } sl@0: sl@0: sl@0: sl@0: HBufC8* CUPSDbManagementStep::StringToHexLC(const TDes8 &aString) sl@0: /** sl@0: * Function to convert the contents of a TDes8 into a Hexadecimal format sl@0: * sl@0: * @param - cosnt TDes8 aString: String to convert into Hexadecimal sl@0: * @return - HBufC8*: Converted Hexadecial string representation sl@0: **/ sl@0: { sl@0: HBufC8* parsedString = HBufC8::NewLC(aString.Length()*2); sl@0: TBuf8<2> pair; sl@0: _LIT8(KFormatHex,"%02x"); sl@0: sl@0: TPtr8 ptr(parsedString->Des()); sl@0: for(TInt i = 0; i binChar; sl@0: _LIT8(KFormatBinary,"%c"); sl@0: sl@0: TPtr8 ptr(parsedString->Des()); sl@0: for(TInt i = 0; i