mmappfw_plat/playlist_engine_api/tsrc/playlistenginetest/src/playlistenginetestBlocks.cpp
changeset 0 a2952bb97e68
child 62 b276843a15ba
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/playlist_engine_api/tsrc/playlistenginetest/src/playlistenginetestBlocks.cpp	Thu Dec 17 08:55:47 2009 +0200
@@ -0,0 +1,531 @@
+/*
+* 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:  playlistenginetest block implementation for STIF Test Framework TestScripter.
+*
+*/
+
+
+
+// [INCLUDE FILES] - do not remove
+#include <e32svr.h>
+#include <StifParser.h>
+#include <Stiftestinterface.h>
+#include "playlistenginetest.h"
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// Cplaylistenginetest::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void Cplaylistenginetest::Delete() 
+    {
+
+    }
+
+// -----------------------------------------------------------------------------
+// Cplaylistenginetest::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt Cplaylistenginetest::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", Cplaylistenginetest::ExampleL ),
+        
+        //test functions for mpxplaylistengine.h
+        ENTRY( "CMPXPlaylistEngineCreate", Cplaylistenginetest::CMPXPlaylistEngineCreate ),//Pass Debug 
+        ENTRY( "CMPXPlaylistEngineDestructor", Cplaylistenginetest::CMPXPlaylistEngineDestructor ),//Pass Debug 
+        ENTRY( "CMPXPlaylistEnginePlaylistPluginHandler", Cplaylistenginetest::CMPXPlaylistEnginePlaylistPluginHandler ),//Pass Debug 
+        ENTRY( "CMPXPlaylistEngineIsPlaylistL", Cplaylistenginetest::CMPXPlaylistEngineIsPlaylistL ),//Pass Debug 
+        ENTRY( "CMPXPlaylistEngineInternalizePlaylistL", Cplaylistenginetest::CMPXPlaylistEngineInternalizePlaylistL ),//Pass Debug 
+        ENTRY( "CMPXPlaylistEngineInternalizePlaylistLRFile", Cplaylistenginetest::CMPXPlaylistEngineInternalizePlaylistLRFile ),//Pass Debug 
+        ENTRY( "CMPXPlaylistEngineExternalizePlaylistL", Cplaylistenginetest::CMPXPlaylistEngineExternalizePlaylistL ),//Pass Debug 
+        ENTRY( "CMPXPlaylistEngineCancelRequests", Cplaylistenginetest::CMPXPlaylistEngineCancelRequests ),//Pass Debug 
+       
+        //test functions for mpxplaylistpluginhandler.h
+        ENTRY( "CMPXPlaylistPluginHandlerCreate", Cplaylistenginetest::CMPXPlaylistPluginHandlerCreate ),//Pass Debug
+        ENTRY( "CMPXPlaylistPluginHandlerDestructor", Cplaylistenginetest::CMPXPlaylistPluginHandlerDestructor ),//Pass Debug
+        /*ENTRY( "CMPXPlaylistPluginHandlerPluginUid", Cplaylistenginetest::CMPXPlaylistPluginHandlerPluginUid ),//Pass Debug
+        ENTRY( "CMPXPlaylistPluginHandlerPluginType", Cplaylistenginetest::CMPXPlaylistPluginHandlerPluginUid ),//Pass Debug
+        ENTRY( "CMPXPlaylistPluginHandlerPluginName", Cplaylistenginetest::CMPXPlaylistPluginHandlerPluginUid ),//Pass Debug
+        ENTRY( "CMPXPlaylistPluginHandlerPluginFound", Cplaylistenginetest::CMPXPlaylistPluginHandlerPluginUid ),//Pass Debug
+        ENTRY( "CMPXPlaylistPluginHandlerPlugin", Cplaylistenginetest::CMPXPlaylistPluginHandlerPlugin ),//Pass Debug
+*/        ENTRY( "SelectPlaylistPluginLByUri", Cplaylistenginetest::SelectPlaylistPluginLByUri ),//Pass Debug
+        ENTRY( "SelectPlaylistPluginLByFile", Cplaylistenginetest::SelectPlaylistPluginLByFile ),//Pass Debug
+        ENTRY( "SelectPlaylistPluginLByType", Cplaylistenginetest::SelectPlaylistPluginLByType ),//Pass Debug
+        ENTRY( "SelectPlaylistPluginLByName", Cplaylistenginetest::SelectPlaylistPluginLByName ),//Pass Debug
+        ENTRY( "SelectPlaylistPluginLByUid", Cplaylistenginetest::SelectPlaylistPluginLByUid ),//Pass Debug
+
+
+
+        //ADD NEW ENTRY HERE
+        // [test cases entries] - Do not remove
+
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+
+// -----------------------------------------------------------------------------
+// Cplaylistenginetest::ExampleL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt Cplaylistenginetest::ExampleL( CStifItemParser& aItem )
+    {
+
+    // Print to UI
+    _LIT( Kplaylistenginetest, "playlistenginetest" );
+    _LIT( KExample, "In Example" );
+    TestModuleIf().Printf( 0, Kplaylistenginetest, 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, Kplaylistenginetest, 
+                                KParam, i, &string );
+        i++;
+        }
+
+    return KErrNone;
+
+    }
+
+// ---------------------------------------------------------------------------
+// Cplaylistenginetest::CMPXPlaylistEngineCreate
+// ?implementation_description
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+TInt Cplaylistenginetest::CMPXPlaylistEngineCreate( CStifItemParser& /*aItem*/ )
+    {
+    TInt err=KErrNone;
+    MMPXPlaylistEngineObserver* aObserver(NULL);
+    iLog->Log(_L("Cplaylistenginetest::CMPXPlaylistEngineCreate"));
+    
+    TRAP(err, iPlaylistEngine = CMPXPlaylistEngine::NewL(*aObserver));
+    
+	iLog->Log(_L("Cplaylistenginetest::NewL returned: %d"), err);
+    return err;
+    }
+
+
+// ---------------------------------------------------------------------------
+// Cplaylistenginetest::CMPXPlaylistEngineDestructor
+// ?implementation_description
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+TInt Cplaylistenginetest::CMPXPlaylistEngineDestructor( CStifItemParser& /*aItem*/ )
+    {
+    TInt err=KErrNone;
+    MMPXPlaylistEngineObserver* aObserver(NULL);
+    iLog->Log(_L("Cplaylistenginetest::CMPXPlaylistEngineDestructor"));
+    if(iPlaylistEngine==NULL)
+    	{
+         TRAP( err , iPlaylistEngine = CMPXPlaylistEngine::NewL(*aObserver));
+    	}
+    delete iPlaylistEngine;
+    iPlaylistEngine=NULL;
+	iLog->Log(_L("Cplaylistenginetest::Destructor end. "));
+    return err;
+    }
+
+// ---------------------------------------------------------------------------
+// Cplaylistenginetest::CMPXPlaylistEnginePlaylistPluginHandler
+// ?implementation_description
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+TInt Cplaylistenginetest::CMPXPlaylistEnginePlaylistPluginHandler( CStifItemParser& /*aItem*/ )
+    {
+    TInt err=KErrNone;
+    iLog->Log(_L("Cplaylistenginetest::CMPXPlaylistEnginePlaylistPluginHandler"));
+    
+    iPlaylistEngine->PlaylistPluginHandler();
+    
+	iLog->Log(_L("Cplaylistenginetest::PlaylistPluginHandler end."));
+    return err;
+    }
+
+// ---------------------------------------------------------------------------
+// Cplaylistenginetest::CMPXPlaylistEngineIsPlaylistL
+// ?implementation_description
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+TInt Cplaylistenginetest::CMPXPlaylistEngineIsPlaylistL( CStifItemParser& aItem )
+    {
+    TInt err=KErrNone;
+    TPtrC string;
+    iLog->Log(_L("Cplaylistenginetest::CMPXPlaylistEngineIsPlaylistL"));
+   
+    while ( aItem.GetNextString( string ) == KErrNone )
+       {
+		TBuf<120> KUri;
+		KUri.Append(Kplaylistenginetest_testPath);
+		KUri.Append(string);
+		
+	    TInt is=iPlaylistEngine->IsPlaylistL(KUri);
+	    
+		iLog->Log(_L("Cplaylistenginetest::IsPlaylistL returned: %d"), is);
+       }
+    return err;
+    }
+
+// ---------------------------------------------------------------------------
+// Cplaylistenginetest::CMPXPlaylistEngineInternalizePlaylistL
+// ?implementation_description
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+TInt Cplaylistenginetest::CMPXPlaylistEngineInternalizePlaylistL( CStifItemParser& aItem )
+    {
+    TInt err=KErrNone;
+    TPtrC string;
+    iLog->Log(_L("Cplaylistenginetest::CMPXPlaylistEngineIsPlaylistL"));
+   
+    while ( aItem.GetNextString( string ) == KErrNone )
+       {
+		TBuf<120> KUri;
+		KUri.Append(Kplaylistenginetest_testPath);
+		KUri.Append(string);
+		
+	    TRAP(err,iPlaylistEngine->InternalizePlaylistL(KUri));
+	    
+		iLog->Log(_L("Cplaylistenginetest::IsPlaylistL returned: %d"), err);
+       }
+    return err;
+    }
+
+
+
+
+// ---------------------------------------------------------------------------
+// Cplaylistenginetest::CMPXPlaylistEngineInternalizePlaylistLRFile
+// ?implementation_description
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+TInt Cplaylistenginetest::CMPXPlaylistEngineInternalizePlaylistLRFile( CStifItemParser& aItem )
+    {
+    TInt err=KErrNone;
+    iLog->Log(_L("Cplaylistenginetest::CMPXPlaylistEngineInternalizePlaylistLRFile"));
+    TPtrC string;
+    while ( aItem.GetNextString( string ) == KErrNone )
+          {
+			TBuf<120> KPlaylistDir;
+			KPlaylistDir.Append(Kplaylistenginetest_testPath);
+			KPlaylistDir.Append(string);
+		    
+		    RFs fs;
+	        User::LeaveIfError(fs.Connect());
+	        CDir* entryList(NULL);
+	      //  User::LeaveIfError(
+	      //  fs.GetDir(KPlaylistDir, KEntryAttNormal, KEntryAttNormal, entryList));
+	        User::LeaveIfError(
+    		fs.GetDir(KPlaylistDir, KEntryAttMaskSupported, ESortByName|EDirsFirst, entryList));
+	        CleanupStack::PushL(entryList);
+	        RFile playlistFile;				
+	        User::LeaveIfError(playlistFile.Open(fs, KPlaylistDir, EFileRead ));	
+	        iPlaylistEngine->PlaylistPluginHandler().SelectPlaylistPluginL(playlistFile);
+		    TRAP(err, iPlaylistEngine->InternalizePlaylistL(playlistFile));	
+		    CleanupStack::PopAndDestroy(entryList);
+		    playlistFile.Close();
+		    fs.Close();
+		   
+          }
+	iLog->Log(_L("Cplaylistenginetest::InternalizePlaylistL returned: %d"), err);
+       
+    return err;
+    }
+
+// ---------------------------------------------------------------------------
+// Cplaylistenginetest::CMPXPlaylistEngineExternalizePlaylistL
+// ?implementation_description
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+TInt Cplaylistenginetest::CMPXPlaylistEngineExternalizePlaylistL(CStifItemParser& aItem)
+    {
+    iLog->Log(_L("Cplaylistenginetest::CMPXPlaylistEngineExternalizePlaylistL testing  ExternalizeL   begin"));
+    TInt err=KErrNone;
+    TPtrC string;
+    
+    while ( aItem.GetNextString( string ) == KErrNone )
+          {
+		   	TBuf<120> KUri;
+		   	KUri.Append(Kplaylistenginetest_testPath);
+		    CMPXMedia* playlist = CreatePlaylistL(ETitle|EType|ECategory|EArrayContents|EArrayCount|EUri );
+		    CleanupStack::PushL(playlist);
+		    iPlaylistEngine->PlaylistPluginHandler().SelectPlaylistPluginL(
+		    		        EMPXPlaylistTypeM3U);
+		    TRAP(err, iPlaylistEngine->ExternalizePlaylistL(*playlist, KUri); );
+		    CleanupStack::PopAndDestroy(playlist);
+          }
+    iLog->Log(_L("Cplaylistenginetest::ExternalizePlaylistL returned: %d"), err);
+    return err;
+    }
+
+// ---------------------------------------------------------------------------
+//  Create playlist
+// ---------------------------------------------------------------------------
+//    
+CMPXMedia* Cplaylistenginetest::CreatePlaylistL(const TUint& aAttributes)
+    {
+    ////////////////////////////////////////////////////////////////////////////
+    // create playlist
+    ////////////////////////////////////////////////////////////////////////////
+    CMPXMedia* playlist = CMPXMedia::NewL();
+    CleanupStack::PushL(playlist);
+
+    if (aAttributes & ETitle)
+        {
+        // set playlist title
+        playlist->SetTextValueL(KMPXMediaGeneralTitle, _L("Playlist"));        
+        }
+
+    if (aAttributes & EType)
+        {
+        // set type
+        playlist->SetTObjectValueL(KMPXMediaGeneralType, EMPXItem);        
+        }
+
+    if (aAttributes & ECategory)        
+        {
+        // set category
+        playlist->SetTObjectValueL(KMPXMediaGeneralCategory, EMPXPlaylist);         
+        }
+
+    if (aAttributes & EArrayContents)
+        {
+        // set medias
+        CMPXMediaArray* medias = CMPXMediaArray::NewL();
+        CleanupStack::PushL(medias);        
+        playlist->SetCObjectValueL(KMPXMediaArrayContents, medias);
+        CleanupStack::PopAndDestroy(medias);
+        }
+
+    if (aAttributes & EArrayCount)
+        {
+        /// set media count        
+        playlist->SetTObjectValueL(KMPXMediaArrayCount, 0);        
+        }
+    if (aAttributes & EUri)
+        {
+        /// set media uri        
+        playlist->SetTextValueL(KMPXMediaGeneralUri,KTestItemPath2);        
+        }
+    
+    CleanupStack::Pop(playlist);
+    
+    return playlist;
+    }    
+
+// ---------------------------------------------------------------------------
+// Cplaylistenginetest::CMPXPlaylistEngineCancelRequests
+// ?implementation_description
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+TInt Cplaylistenginetest::CMPXPlaylistEngineCancelRequests( CStifItemParser& /*aItem*/ )
+    {
+    TInt err=KErrNone;
+    iLog->Log(_L("Cplaylistenginetest::CMPXPlaylistEngineCancelRequests begin:"));
+    
+    iPlaylistEngine->CancelRequests();
+    
+	iLog->Log(_L("Cplaylistenginetest::CancelRequests end."));
+    return err;
+    }
+
+// ---------------------------------------------------------------------------
+// Cplaylistenginetest::CMPXPlaylistPluginHandlerCreate
+// ?implementation_description
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+TInt Cplaylistenginetest::CMPXPlaylistPluginHandlerCreate( CStifItemParser& /*aItem*/ )
+    {
+    TInt err=KErrNone;
+    iLog->Log(_L("Cplaylistenginetest::CMPXPlaylistPluginHandlerCreate begin"));
+    
+    RFs fs=RFs();
+    User::LeaveIfError(fs.Connect());
+    CArrayFix<CCnvCharacterSetConverter::SCharacterSet>* iTopCharacterSet;	
+    CArrayFix<CCnvCharacterSetConverter::SCharacterSet>* iAvailableCharacterSet;
+    TRAP( err , iAvailableCharacterSet =  new (ELeave)CArrayFixFlat<CCnvCharacterSetConverter::SCharacterSet>(12));
+    TRAP( err , iTopCharacterSet = new (ELeave)CArrayFixFlat<CCnvCharacterSetConverter::SCharacterSet>(12));
+    
+    TRAP( err , iPlaylistPluginHandler=CMPXPlaylistPluginHandler::NewL(*this,*this,fs,*iTopCharacterSet,*iAvailableCharacterSet));
+    
+    fs.Close();
+	iLog->Log(_L("Cplaylistenginetest::NewL returned: %d"), err);
+    return err;
+    }
+
+// ---------------------------------------------------------------------------
+// Cplaylistenginetest::CMPXPlaylistPluginHandlerDestructor
+// ?implementation_description
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+TInt Cplaylistenginetest::CMPXPlaylistPluginHandlerDestructor( CStifItemParser& /*aItem*/ )
+    {
+    TInt err=KErrNone;
+    if ( iPlaylistPluginHandler != NULL )
+    	{
+    	delete iPlaylistPluginHandler;
+    	iPlaylistPluginHandler=NULL;
+    	}
+    
+	iLog->Log(_L("Cplaylistenginetest::Destructor end."));
+    return err;
+    }
+
+
+// ---------------------------------------------------------------------------
+// Cplaylistenginetest::SelectPlaylistPluginLByUri
+// ?implementation_description
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+TInt Cplaylistenginetest::SelectPlaylistPluginLByUri(CStifItemParser& aItem)
+    {
+    iLog->Log(_L("Cplaylistenginetest::SelectPlaylistPluginLByUri  begin"));
+    TInt err=KErrNone;
+    TPtrC string;
+    
+    if( aItem.GetNextString( string ) == KErrNone )
+       {
+        TBuf<120> KFrom;
+        KFrom.Append(Kplaylistenginetest_testPath);
+        KFrom.Append(string);
+       
+        _LIT8(DataType,"playlist/mpegurl");
+        TRAP( err , iPlaylistEngine->PlaylistPluginHandler().SelectPlaylistPluginL(KFrom,KNullDesC8));
+        
+        iLog->Log(_L("Cplaylistenginetest::SelectPlaylistPluginLByUri returned: %d"), err);
+       }
+    
+    return err;
+    }
+
+// ---------------------------------------------------------------------------
+// Cplaylistenginetest::SelectPlaylistPluginLByFile
+// ?implementation_description
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+TInt Cplaylistenginetest::SelectPlaylistPluginLByFile(CStifItemParser& aItem)
+    {
+    iLog->Log(_L("Cplaylistenginetest::SelectPlaylistPluginLByFile  begin"));
+    TInt err=KErrNone;
+    TPtrC string;
+        if( aItem.GetNextString( string ) == KErrNone )
+           {
+            TBuf<120> KFrom;
+            KFrom.Append(Kplaylistenginetest_testPath);
+            KFrom.Append(string);
+            
+            RFs fs=RFs();
+            RFile file;
+            User::LeaveIfError(fs.Connect());
+            file.Open(fs, KFrom, EFileShareAny);
+            
+            
+            TRAP( err , iPlaylistEngine->PlaylistPluginHandler().SelectPlaylistPluginL(file));
+          
+            file.Close();
+            fs.Close();
+            iLog->Log(_L("Cplaylistenginetest::SelectPlaylistPluginLByFile returned: %d"), err);
+           }
+    return err;
+    }
+
+// ---------------------------------------------------------------------------
+// Cplaylistenginetest::SelectPlaylistPluginLByType
+// ?implementation_description
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+TInt Cplaylistenginetest::SelectPlaylistPluginLByType(CStifItemParser& /*aItem*/)
+    {
+    iLog->Log(_L("Cplaylistenginetest::SelectPlaylistPluginLByType  begin"));
+    
+    TInt err=KErrNone;
+    
+    TRAP( err , iPlaylistEngine->PlaylistPluginHandler().SelectPlaylistPluginL(EMPXPlaylistTypeM3U));
+    
+    iLog->Log(_L("Cplaylistenginetest::SelectPlaylistPluginLByType returned: %d"), err);
+    return err;
+    }
+
+// ---------------------------------------------------------------------------
+// Cplaylistenginetest::SelectPlaylistPluginLByName
+// ?implementation_description
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+TInt Cplaylistenginetest::SelectPlaylistPluginLByName(CStifItemParser& /*aItem*/)
+    {
+    iLog->Log(_L("Cplaylistenginetest::SelectPlaylistPluginLByName  begin"));
+    TInt err=KErrNone;
+        
+    TRAP( err , iPlaylistEngine->PlaylistPluginHandler().SelectPlaylistPluginL(_L("m3u playlist")));
+    
+    iLog->Log(_L("Cplaylistenginetest::SelectPlaylistPluginLByName returned: %d"), err);
+    return err;
+    }
+
+// ---------------------------------------------------------------------------
+// Cplaylistenginetest::SelectPlaylistPluginLByUid
+// ?implementation_description
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+TInt Cplaylistenginetest::SelectPlaylistPluginLByUid(CStifItemParser& /*aItem*/)
+    {
+    iLog->Log(_L("Cplaylistenginetest::SelectPlaylistPluginLByUid  begin"));
+    TInt err=KErrNone;
+    TRAP( err , iPlaylistEngine->PlaylistPluginHandler().SelectPlaylistPluginL(TUid::Uid(0x101FFC21)));
+    
+    iLog->Log(_L("Cplaylistenginetest::SelectPlaylistPluginLByUid returned: %d"), err);
+    return err;
+    }
+
+
+
+
+
+//  [End of File] - Do not remove