diff -r a36b1e19a461 -r 989d2f495d90 serviceproviders/sapi_mediamanagement/tsrc/testing/tmediaprovidertesting/src/tmediaprovidertestingBlocks.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/serviceproviders/sapi_mediamanagement/tsrc/testing/tmediaprovidertesting/src/tmediaprovidertestingBlocks.cpp Fri Jul 03 15:51:24 2009 +0100 @@ -0,0 +1,213 @@ +/* +* Copyright (c) 2002 - 2007 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: ?Description +* +*/ + + +// [INCLUDE FILES] - do not remove +#include +#include +#include +#include + +#include "tmediaprovidertesting.h" +#include "tmediaprovidertesting.hrh" + + + +using namespace LIW; + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// Ctmediaprovidertesting::Delete +// Delete here all resources allocated and opened from test methods. +// Called from destructor. +// ----------------------------------------------------------------------------- +// +void Ctmediaprovidertesting::Delete() + { + TInt count = iExpectedOutPutArray.Count(); + for(TInt index =0 ;indexDecRef(); + } + iExpectedOutPutArray.Close(); + iIface->Close(); + delete iServicehandler; + delete iInList; + delete iOutList; + } + +// ----------------------------------------------------------------------------- +// Ctmediaprovidertesting::RunMethodL +// Run specified method. Contains also table of test mothods and their names. +// ----------------------------------------------------------------------------- +// +TInt Ctmediaprovidertesting::RunMethodL(CStifItemParser& aItem) + { + static TStifFunctionInfo const KFunctions[] = + { + ENTRY("GetFilesListL", Ctmediaprovidertesting::GetFilesListL) + }; + const TInt count = sizeof( KFunctions ) / + sizeof( TStifFunctionInfo ); + return RunInternalL( KFunctions, count, aItem ); + } + +// ----------------------------------------------------------------------------- +// Callback:: HandleNotifyL +// Call Back Function Called by the Media Management SAPI. +// ----------------------------------------------------------------------------- +// + TInt Ctmediaprovidertesting:: HandleNotifyL(TInt /*aCmdId*/, + TInt aEventId, + CLiwGenericParamList& aEventParamList, + const CLiwGenericParamList& /*aInParamList*/) + { + TInt pos = 0; + TInt error = KErrGeneral; + iResult = KErrGeneral; + + TBuf<25> errorcodedes(KNullDesC); + const TLiwGenericParam* errorCode = NULL; + const TLiwGenericParam* resultList = NULL; + CLiwIterable* iterator = NULL; + + CActiveScheduler::Stop(); + + errorCode = aEventParamList.FindFirst(pos, KErrorCode); // Finding Error Code + resultList = aEventParamList.FindFirst(pos, KResponse); // Finding Iterator for the result list + + if(errorCode) + { + error = errorCode->Value().AsTInt32(); + errorcodedes.Num(error); + iLog->Log(_L("Error code:")); + iLog->Log(errorcodedes); + } + if(iExpErrorCode != error) + { + iLog->Log(_L("Expected Error code does not match")); + User::Leave(KErrGeneral); + } + if(resultList) + { + iterator = resultList->Value().AsIterable(); + if(IsExpectedResult(iterator)) + { + iResult = KErrNone; + } + } + else + { + if(iExpectedOutPutArray.Count() != 0) + { + iLog->Log(_L("Result Iterator Not Found")); + User::Leave(KErrNotFound); + } + } + } + +/* -------------------------------------------------------------------------- + Ctmediaprovidertesting :: GetImageFilesL + Calls the Getlist of Media management SAPI. +----------------------------------------------------------------------------- +*/ +TInt Ctmediaprovidertesting::GetFilesListL( CStifItemParser& aItem ) + { + TInt error = KErrGeneral; + + LoadServiceL(); + + ParseStiffInput(aItem); + + iIface->ExecuteCmdL(command8, + *iInList, + *iOutList, + KLiwOptASyncronous, + this); + TInt pos = 0; + const TLiwGenericParam* p = iOutList->FindFirst(pos, + KErrorCode); // Finding Error Code + if(p) + { + TInt retcode = p->Value().AsTInt32(); + if(KErrNone == retcode) + { + CActiveScheduler::Start(); + } + else + { + if(iExpErrorCode == retcode) + { + iResult = KErrNone; + } + else + { + User::Leave(KErrGeneral); + } + } + } + iInList->Reset(); + iOutList->Reset(); + iLog->Log(_L("")); + return iResult; + } + + + +/* -------------------------------------------------------------------------- + Ctmediaprovidertesting :: LoadServiceL + Loads the mediamanagement service. +----------------------------------------------------------------------------- +*/ +void Ctmediaprovidertesting :: LoadServiceL() + { + TInt pos = 0; + iInList = CLiwGenericParamList::NewL(); + + iOutList = CLiwGenericParamList::NewL(); + + iServicehandler = CLiwServiceHandler::NewL(); + + CLiwCriteriaItem* criteria = CLiwCriteriaItem::NewL(1, + KIDataSource, + KService); + CleanupStack :: PushL(criteria); + + criteria->SetServiceClass(TUid::Uid(KLiwClassBase)); + RCriteriaArray critArray; + critArray.AppendL(criteria); + + iServicehandler->AttachL(critArray); + iServicehandler->ExecuteServiceCmdL(*criteria, + *iInList, + *iOutList); + + iOutList->FindFirst( pos, KIDataSource ); + if(pos != KErrNotFound) + { + iIface = (*iOutList)[pos].Value().AsInterface(); + } + else + { + User::Leave(KErrNotFound); + } + iInList->Reset(); + iOutList->Reset(); + CleanupStack :: PopAndDestroy(criteria); + critArray.Close(); + }