mmappfw_plat/harvester_metadata_extractor_api/tsrc/harvestermetadataextractortest/src/harvestermetadataextractortestBlocks.cpp
changeset 0 a2952bb97e68
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/harvester_metadata_extractor_api/tsrc/harvestermetadataextractortest/src/harvestermetadataextractortestBlocks.cpp	Thu Dec 17 08:55:47 2009 +0200
@@ -0,0 +1,467 @@
+/*
+* 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 "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: harvestermetadataextractortest block implementation for STIF Test Framework TestScripter
+*
+*/
+
+
+
+// [INCLUDE FILES] - do not remove
+#include <e32svr.h>
+#include <StifParser.h>
+#include <Stiftestinterface.h>
+#include "harvestermetadataextractortest.h"
+#include <f32file.h>
+
+#include <mpxmediageneraldefs.h>
+#include <mpxmediaaudiodefs.h>
+#include <mpxmediamusicdefs.h>
+#include <mpxmediadrmdefs.h>
+#include <mpxharvesterutility.h>
+#include <mpxcollectionutility.h>
+
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// Charvestermetadataextractortest::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void Charvestermetadataextractortest::Delete() 
+    {
+    
+    }
+
+// -----------------------------------------------------------------------------
+// Charvestermetadataextractortest::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt Charvestermetadataextractortest::RunMethodL( 
+    CStifItemParser& aItem ) 
+    {
+
+    static TStifFunctionInfo const KFunctions[] =
+        {  
+        // Copy this line for every implemented function.
+        // First string is the function name used in TestScripter script file.
+        // Second is the actual implementation member function. 
+        ENTRY( "Example", Charvestermetadataextractortest::ExampleL ),
+        ENTRY( "CMPXMetadataExtractorCreateInstance", Charvestermetadataextractortest::CMPXMetadataExtractorCreateInstance ),
+        ENTRY( "CMPXMetadataExtractorCreateMediaL", Charvestermetadataextractortest::CMPXMetadataExtractorCreateMediaL ),
+        ENTRY( "CMPXMetadataExtractorExtractAlbumArtL", Charvestermetadataextractortest::CMPXMetadataExtractorExtractAlbumArtL ),
+        //ADD NEW ENTRY HERE
+        // [test cases entries] - Do not remove
+
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+
+// ---------------------------------------------------------------------------
+// Cmpxharvestertest::HandleCollectionMediaL
+// ---------------------------------------------------------------------------
+//
+void Charvestermetadataextractortest::HandleCollectionMediaL( const CMPXMedia& /*aMedia*/, TInt aError )
+	{
+	iLog->Log(_L("Charvestermetadataextractortest::HandleCollectionMediaL: %d"), aError);
+	}
+
+// ---------------------------------------------------------------------------
+// Cmpxharvestertest::HandleCollectionMessage
+// ---------------------------------------------------------------------------
+//
+void Charvestermetadataextractortest::HandleCollectionMessage( CMPXMessage* /*aMsg*/, TInt aError )
+	{
+	iLog->Log(_L("Charvestermetadataextractortest::HandleCollectionMessage: %d"), aError);
+	}
+	
+// ---------------------------------------------------------------------------
+// Cmpxharvestertest::HandleOpenL
+// ---------------------------------------------------------------------------
+//
+void Charvestermetadataextractortest::HandleOpenL( const CMPXMedia& /*aEntries*/, TInt /*aIndex*/, TBool /*aComplete*/, TInt aError )
+	{
+	iLog->Log(_L("Charvestermetadataextractortest::HandleOpenL: %d"), aError);
+	}
+// ---------------------------------------------------------------------------
+// Cmpxharvestertest::HandleOpenL
+// ---------------------------------------------------------------------------
+//
+void Charvestermetadataextractortest::HandleOpenL( const CMPXCollectionPlaylist& /*aPlaylist*/, TInt aError ) 
+	{
+	iLog->Log(_L("Charvestermetadataextractortest::HandleOpenL: %d"), aError);
+	}
+
+// ---------------------------------------------------------------------------
+// Charvestermetadataextractortest::HandlePlaylistExportCompletedL
+// ---------------------------------------------------------------------------
+//
+void Charvestermetadataextractortest::HandlePlaylistExportCompletedL( CMPXMedia* /*aMedia*/, TInt aErr )
+	{
+	if ( RemoveExpectedEvent(EEventHandlePlaylistExportCompletedL) )
+		{
+		iLog->Log(_L("Charvestermetadataextractortest::HandlePlaylistExportCompletedL: %d [EXPECTED]"), aErr);
+		}
+	else
+		{
+		iLog->Log(_L("Charvestermetadataextractortest::HandlePlaylistExportCompletedL: %d"), aErr);
+		}
+	}
+
+// ---------------------------------------------------------------------------
+// Charvestermetadataextractortest::HandlePlaylistImportCompletedL
+// ---------------------------------------------------------------------------
+//
+void Charvestermetadataextractortest::HandlePlaylistImportCompletedL( CMPXMedia* aMedia, TInt aErr )
+	{
+	if ( RemoveExpectedEvent(EEventHandlePlaylistImportCompletedL) )
+		{
+		iLog->Log(_L("Cmpxharvestertest::HandleFileImportCompletedL: %d [EXPECTED]"), aErr);
+		}
+	else
+		{
+		iLog->Log(_L("Cmpxharvestertest::HandleFileImportCompletedL: %d"), aErr);
+		}
+
+	if ( aErr == KErrNone )
+		{
+		iLog->Log(_L("Number of attributes: %d"), aMedia->Count() );
+		delete aMedia;
+		aMedia = NULL;
+		}
+	if ( (iResult && (aErr == KErrNone )) || (!iResult && (aErr != KErrNone)) )
+		{
+		Signal();
+		}
+	else
+		{
+		Signal(aErr);
+		}
+	}
+
+// ---------------------------------------------------------------------------
+// Charvestermetadataextractortest::HandleFileAddCompletedL
+// ---------------------------------------------------------------------------
+//
+void Charvestermetadataextractortest::HandleFileAddCompletedL( CMPXMedia* aMedia, TInt aErr )
+	{
+	if ( RemoveExpectedEvent(EEventHandleFileAddCompletedL) )
+		{
+		iLog->Log(_L("Charvestermetadataextractortest::HandleFileAddCompletedL: %d [EXPECTED]"), aErr);
+		}
+	else
+		{
+		iLog->Log(_L("Charvestermetadataextractortest::HandleFileAddCompletedL: %d"), aErr);
+		}
+
+	if ( aErr == KErrNone )
+		{
+		iLog->Log(_L("Number of attributes: %d"), aMedia->Count() );
+		delete aMedia;
+		aMedia = NULL;
+		}
+	Signal();
+	}
+
+// ---------------------------------------------------------------------------
+// Charvestermetadataextractortest::HandleDeleteCompletedL
+// ---------------------------------------------------------------------------
+//
+void Charvestermetadataextractortest::HandleDeleteCompletedL( TInt aErr )
+	{
+	if ( RemoveExpectedEvent(EEventHandleDeleteCompletedL) )
+		{
+		iLog->Log(_L("Charvestermetadataextractortest::HandleDeleteCompletedL: %d [EXPECTED]"), aErr);
+		}
+	else
+		{
+		iLog->Log(_L("Charvestermetadataextractortest::HandleDeleteCompletedL: %d"), aErr);
+		}
+
+	if ( aErr == KErrNone )
+		{
+		Signal();
+		}
+	else
+		{
+		Signal(aErr);
+		}
+	}
+
+// ---------------------------------------------------------------------------
+// Charvestermetadataextractortest::HandleFileImportCompletedL
+// ---------------------------------------------------------------------------
+//
+void Charvestermetadataextractortest::HandleFileImportCompletedL( CMPXMedia* aMedia, TInt aErr )
+	{
+	if ( RemoveExpectedEvent(EEventHandleFileImportCompletedL) )
+		{
+		iLog->Log(_L("Charvestermetadataextractortest::EEventHandleFileImportCompletedL: %d [EXPECTED]"), aErr);
+		}
+	else
+		{
+		iLog->Log(_L("Charvestermetadataextractortest::EEventHandleFileImportCompletedL: %d"), aErr);
+		}
+
+	if ( aErr == KErrNone )
+		{
+		iLog->Log(_L("Number of attributes: %d"), aMedia->Count() );
+		delete aMedia;
+		aMedia = NULL;
+		}
+	if ( (iResult && (aErr == KErrNone )) || (!iResult && (aErr != KErrNone)) )
+		{
+		Signal();
+		}
+	else
+		{
+		Signal(aErr);
+		}
+	}
+
+// ---------------------------------------------------------------------------
+// Charvestermetadataextractortest::HandleFileImportCompletedL
+// ---------------------------------------------------------------------------
+//
+void Charvestermetadataextractortest::HandleFileGetMediaCompletedL( CMPXMedia* aMedia, TInt aErr )
+	{
+	if ( RemoveExpectedEvent(EEventHandleFileGetMediaCompletedL) )
+			{
+			iLog->Log(_L("Charvestermetadataextractortest::HandleFileGetMediaCompletedL: %d [EXPECTED]"), aErr);
+			}
+		else
+			{
+			iLog->Log(_L("Charvestermetadataextractortest::HandleFileGetMediaCompletedL: %d"), aErr);
+			}
+
+		if ( aErr == KErrNone )
+			{
+			iLog->Log(_L("Number of attributes: %d"), aMedia->Count() );
+			delete aMedia;
+			aMedia = NULL;
+			}
+		Signal();
+		
+	}
+
+
+// -----------------------------------------------------------------------------
+// Charvestermetadataextractortest::RemoveExpectedEvent
+// Remove the event from the expected event list
+// Returns: ETrue: Event found.
+//          EFalse: Event not found.
+// -----------------------------------------------------------------------------
+TBool Charvestermetadataextractortest::RemoveExpectedEvent( TExpectedEvents aEvent )
+	{
+	iLog->Log(_L("Charvestermetadataextractortest::RemoveExpectedEvent: %d"), aEvent);
+	TBool match = EFalse;
+	TInt index = iExpectedEvents.Find(aEvent);
+	if ( index != KErrNotFound )
+		{
+		iExpectedEvents.Remove(index);
+		match = ETrue;
+		}
+	return match;
+	}
+
+// -----------------------------------------------------------------------------
+// Charvestermetadataextractortest::ExampleL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt Charvestermetadataextractortest::ExampleL( CStifItemParser& aItem )
+    {
+
+    // Print to UI
+    _LIT( Kharvestermetadataextractortest, "harvestermetadataextractortest" );
+    _LIT( KExample, "In Example" );
+    TestModuleIf().Printf( 0, Kharvestermetadataextractortest, KExample );
+    // Print to log file
+    iLog->Log( KExample );
+
+    TInt i = 0;
+    TPtrC string;
+    _LIT( KParam, "Param[%i]: %S" );
+    while ( aItem.GetNextString ( string ) == KErrNone )
+        {
+        TestModuleIf().Printf( i, Kharvestermetadataextractortest, 
+                                KParam, i, &string );
+        i++;
+        }
+
+    return KErrNone;
+
+    }
+
+// -----------------------------------------------------------------------------
+// Charvestermetadataextractortest::CMPXMetadataExtractorCreateInstance
+// CMPXMetadataExtractor::NewL function
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt Charvestermetadataextractortest::CMPXMetadataExtractorCreateInstance( CStifItemParser& /*aItem*/ )
+    {
+    iLog->Log(_L("Charvestermetadataextractortest::CMPXMetadataExtractorCreateInstance"));
+    TInt err = KErrNone;
+    RFs fs;
+    User::LeaveIfError( fs.Connect() );
+    RApaLsSession appArcSession;
+    User::LeaveIfError(appArcSession.Connect());   
+    RPointerArray<CMPXCollectionType> dummy;
+    CleanupClosePushL( dummy );
+    
+    TRAP(err, iMetadataExtractor = CMPXMetadataExtractor::NewL( fs, appArcSession, dummy ));
+    dummy.ResetAndDestroy();
+    CleanupStack::PopAndDestroy( &dummy );
+    fs.Close();
+    appArcSession.Close();    
+ 
+    // delete iMetadataExtractor;
+    if ( iMetadataExtractor != NULL )
+    	{
+    	delete iMetadataExtractor;
+    	iMetadataExtractor = NULL;
+    	}
+    
+	if ( err != KErrNone )
+   		{
+   		iLog->Log(_L("Error: CMPXMetadataExtractor::CMPXMetadataExtractorCreateInstance returned: %d"), err);
+   		}
+    return err; 
+    }
+// -----------------------------------------------------------------------------
+// Charvestermetadataextractortest::CMPXMetadataExtractorCreateMediaL
+// CMPXMetadataExtractor::CreateMediaL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt Charvestermetadataextractortest::CMPXMetadataExtractorCreateMediaL( CStifItemParser& aItem )
+    {
+    iLog->Log(_L("Charvestermetadataextractortest::CreateMediaL"));
+  
+    TInt err = KErrNone;
+    TPtrC string;
+    while ( aItem.GetNextString( string ) == KErrNone )
+       {
+		TBuf<120> KFile;
+		KFile.Append(KmpxMetadataExtractor_digitalPath);
+		KFile.Append(string);
+	
+		CMPXMedia* media = NULL;
+		RFile file;
+		RFs fs;
+		User::LeaveIfError(fs.Connect());
+		file.Open(fs,KFile,EFileStreamText|EFileShareAny);  
+
+	    RApaLsSession appArcSession;
+	    User::LeaveIfError(appArcSession.Connect());  
+	    
+	   
+	    CMPXCollectionType* collectionType;
+	    collectionType=new(ELeave) CMPXCollectionType();
+	    	          
+	    RPointerArray <CMPXCollectionType> mpxcollectiontypetest;
+	    mpxcollectiontypetest.AppendL(collectionType);
+	 
+	    iMetadataExtractor = CMPXMetadataExtractor::NewL( fs, appArcSession, mpxcollectiontypetest );
+	
+	    TRAP(err,iMetadataExtractor->CreateMediaL( KFile, media, ETrue ));
+		
+	    file.Close();  
+		fs.Close();
+	    appArcSession.Close();
+	    
+	    if ( iMetadataExtractor != NULL )
+	    	{
+	    	delete iMetadataExtractor;
+	    	iMetadataExtractor = NULL;
+	    	}
+	    if ( media != NULL )
+	    	{
+	    	delete media;
+	    	media = NULL;
+	    	}
+		if ( err != KErrNone )
+	   		{
+	   		iLog->Log(_L("Error: CreateMediaL returned: %d"), err);
+	   		}		    
+	   }
+    return err;
+    }
+
+
+// -----------------------------------------------------------------------------
+// Charvestermetadataextractortest::CMPXMetadataExtractorExtractAlbumArtL
+// CMPXMetadataExtractor::NewL function
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt Charvestermetadataextractortest::CMPXMetadataExtractorExtractAlbumArtL( CStifItemParser& aItem )
+    {
+    iLog->Log(_L("Charvestermetadataextractortest::CMPXMetadataExtractorExtractAlbumArtL"));
+    TInt err = KErrNone;
+    TPtrC string;
+    RFs fs;
+	if ( KErrNone == aItem.GetNextString(string) )
+	 {
+		TBuf<120> uri;
+		uri.Append(KmpxMetadataExtractor_digitalPath);
+		uri.Append(string);
+	    
+	    User::LeaveIfError( fs.Connect() );
+	    RApaLsSession apaLsSession;
+	    User::LeaveIfError(apaLsSession.Connect());   
+	    RPointerArray<CMPXCollectionType> pointArray;
+	    CleanupClosePushL( pointArray );
+	    
+	    TRAP(err, iMetadataExtractor = CMPXMetadataExtractor::NewL( fs, apaLsSession, pointArray ));
+	    CMPXMedia* media=CMPXMedia::NewL(); 
+	    CleanupStack::PushL(media);
+	    media->SetTextValueL(KMPXMediaGeneralUri,uri);
+//	    media->SetTextValueL(KMPXMediaGeneralMimeType,_L("image/jpeg"));
+	    TRAP( err , iMetadataExtractor->ExtractAlbumArtL(media) );
+		CleanupStack::PopAndDestroy(media);
+		pointArray.ResetAndDestroy();
+	    CleanupStack::PopAndDestroy( &pointArray );
+	    fs.Close();
+	    apaLsSession.Close();    
+	    
+	    // delete iMetadataExtractor;
+	    if ( iMetadataExtractor != NULL )
+	    	{
+	    	delete iMetadataExtractor;
+	    	iMetadataExtractor = NULL;
+	    	}
+	    
+		if ( err != KErrNone )
+	   		{
+	   		iLog->Log(_L("Error: CMPXMetadataExtractor::CMPXMetadataExtractorExtractAlbumArtL returned: %d"), err);
+	   		}
+	}
+    return err; 
+    }
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+// None
+
+//  [End of File] - Do not remove