serviceproviders/sapi_mediamanagement/tsrc/testing/tmediaprovidertesting/src/tmediaprovidertestingBlocks.cpp
changeset 5 989d2f495d90
child 10 fc9cf246af83
--- /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 <e32svr.h>
+#include <StifParser.h>
+#include <Stiftestinterface.h>
+#include <LiwServiceHandler.h>
+
+#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 ;index<count;index++)
+        {
+        iExpectedOutPutArray[index]->DecRef();	    	
+        }    
+    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();
+    }