--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bluetoothapitest/bluetoothsvs/T_BTSdpAPI/src/T_DataRSdp.cpp Fri Jan 15 08:13:17 2010 +0200
@@ -0,0 +1,265 @@
+/*
+* Copyright (c) 2005-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 "T_DataRSdp.h"
+
+/*@{*/
+
+//Parameters
+_LIT(KExpected, "expected");
+_LIT(KVersionName, "name");
+_LIT(KVersionBuild, "build");
+_LIT(KVersionMajor, "major");
+_LIT(KVersionMinor, "minor");
+
+//Commands
+_LIT(KCmdConstructor, "Constructor");
+_LIT(KCmdConnect, "Connect");
+_LIT(KCmdClose, "Close");
+_LIT(KCmdVersion, "Version");
+_LIT(KCmdResourceCountMarkStart, "ResourceCountMarkStart");
+_LIT(KCmdResourceCountMarkEnd, "ResourceCountMarkEnd");
+_LIT(KCmdResourceCount, "ResourceCount");
+/*@}*/
+
+//////////////////////////////////////////////////////////////////////
+// Construction/Destruction
+//////////////////////////////////////////////////////////////////////
+
+CT_DataRSdp* CT_DataRSdp::NewL()
+ {
+ CT_DataRSdp* ret=new (ELeave) CT_DataRSdp();
+ CleanupStack::PushL(ret);
+ ret->ConstructL();
+ CleanupStack::Pop(ret);
+ return ret;
+ }
+
+CT_DataRSdp::CT_DataRSdp()
+: iRsdp(NULL)
+ {
+ }
+
+void CT_DataRSdp::ConstructL()
+ {
+ }
+
+CT_DataRSdp::~CT_DataRSdp()
+ {
+ DestroyData();
+ }
+
+void CT_DataRSdp::SetObjectL(TAny* aAny)
+ {
+ DestroyData();
+ iRsdp = static_cast<RSdp*> (aAny);
+ }
+
+void CT_DataRSdp::DisownObjectL()
+ {
+ iRsdp = NULL;
+ }
+
+void CT_DataRSdp::DestroyData()
+ {
+ delete iRsdp;
+ iRsdp=NULL;
+ }
+
+inline TCleanupOperation CT_DataRSdp::CleanupOperation()
+ {
+ return CleanupOperation;
+ }
+
+void CT_DataRSdp::CleanupOperation(TAny* aAny)
+ {
+ RSdp* sdp=static_cast<RSdp*>(aAny);
+ delete sdp;
+ }
+
+/**
+test script command entry point
+@internalAll
+@return ETrue if syncronous command otherwise EFalse
+@param aParam1 descriptor containing the command value
+@param aParam2 descriptor containing the command parameter
+@pre N/A
+@post N/A
+*/
+TBool CT_DataRSdp::DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt /*aAsyncErrorIndex*/)
+ {
+ TBool ret=ETrue;
+
+ if ( aCommand==KCmdConstructor )
+ {
+ DoCmdConstructor();
+ }
+ else if( aCommand==KCmdConnect )
+ {
+ DoCmdConnect();
+ }
+ else if( aCommand==KCmdClose )
+ {
+ DoCmdClose();
+ }
+ else if( aCommand==KCmdVersion )
+ {
+ DoCmdVersion(aSection);
+ }
+ else if( aCommand==KCmdResourceCountMarkStart )
+ {
+ DoCmdResourceCountMarkStart();
+ }
+ else if( aCommand==KCmdResourceCountMarkEnd )
+ {
+ DoCmdResourceCountMarkEnd();
+ }
+ else if( aCommand==KCmdResourceCount )
+ {
+ DoCmdResourceCount(aSection);
+ }
+ else
+ {
+ ret=EFalse;
+ }
+
+ return ret;
+ }
+
+
+void CT_DataRSdp::DoCmdConstructor()
+ {
+ DestroyData();
+
+ TRAPD(err, iRsdp = new (ELeave) RSdp());
+ if(err != KErrNone)
+ {
+ ERR_PRINTF2(_L("**** RSdp Constructor failed with error %d"), err);
+ SetError(err);
+ }
+ }
+
+void CT_DataRSdp::DoCmdConnect()
+ {
+ TInt err = iRsdp->Connect();
+ if(err != KErrNone)
+ {
+ ERR_PRINTF2(_L("**** RSdp Connect failed with error %d"), err);
+ SetError(err);
+ }
+ }
+
+void CT_DataRSdp::DoCmdClose()
+ {
+ iRsdp->Close();
+ }
+
+void CT_DataRSdp::DoCmdVersion(const TDesC& aSection)
+ {
+ TVersion version=iRsdp->Version();
+ TVersionName versionName = version.Name();
+
+ INFO_PRINTF1(_L("Version name :"));
+ INFO_PRINTF1(versionName);
+ INFO_PRINTF2(_L("Version build : %d"), (TInt)version.iBuild);
+ INFO_PRINTF2(_L("Version major : %d"), (TInt)version.iMajor);
+ INFO_PRINTF2(_L("Version minor : %d"), (TInt)version.iMinor);
+
+ TPtrC name;
+ if ( GetStringFromConfig(aSection, KVersionName(), name) )
+ {
+ if ( name != versionName )
+ {
+ ERR_PRINTF1(_L("Name does not match expected name"));
+ SetBlockResult(EFail);
+ }
+ }
+ else
+ {
+ ERR_PRINTF2(_L("Missing expected value %S"), &KVersionName());
+ SetBlockResult(EFail);
+ }
+
+ /*
+ The following expected values are optional since the version name already includes these info.
+ */
+ TInt intTemp;
+ if ( GetIntFromConfig(aSection, KVersionBuild(), intTemp) )
+ {
+ if ( intTemp != version.iBuild )
+ {
+ ERR_PRINTF1(_L("Build does not match expected build"));
+ SetBlockResult(EFail);
+ }
+ }
+
+ if ( GetIntFromConfig(aSection, KVersionMajor(), intTemp) )
+ {
+ if ( intTemp != version.iMajor )
+ {
+ ERR_PRINTF1(_L("Major does not match expected major"));
+ SetBlockResult(EFail);
+ }
+ }
+
+ if ( GetIntFromConfig(aSection, KVersionMinor(), intTemp) )
+ {
+ if ( intTemp != version.iMinor )
+ {
+ ERR_PRINTF1(_L("Minor does not match expected minor"));
+ SetBlockResult(EFail);
+ }
+ }
+
+ if (versionName == _L("") && version.iBuild == 0)
+ {
+ ERR_PRINTF1(_L("Some version fields are not set!"));
+ SetBlockResult(EFail);
+ }
+
+ if (version.iMajor == 0 && version.iMinor == 0)
+ {
+ ERR_PRINTF1(_L("Some version fields are not set!"));
+ SetBlockResult(EFail);
+ }
+ }
+
+void CT_DataRSdp::DoCmdResourceCountMarkStart()
+ {
+ iRsdp->ResourceCountMarkStart();
+ }
+
+void CT_DataRSdp::DoCmdResourceCountMarkEnd()
+ {
+ iRsdp->ResourceCountMarkEnd();
+ }
+
+void CT_DataRSdp::DoCmdResourceCount(const TDesC& aSection)
+ {
+ TInt actual=iRsdp->ResourceCount();
+ INFO_PRINTF2(_L("RSdp::ResourceCount = %d"), actual);
+
+ TInt expected;
+ if ( GetIntFromConfig(aSection, KExpected(), expected) )
+ {
+ if ( actual!=expected )
+ {
+ ERR_PRINTF1(_L("ResourceCount is not as expected!"));
+ SetBlockResult(EFail);
+ }
+ }
+ }