mds_plat/content_listing_framework_collection_manager_api/tsrc/src/CollectionManagerTestBlocks.cpp
changeset 60 79f826a55db2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mds_plat/content_listing_framework_collection_manager_api/tsrc/src/CollectionManagerTestBlocks.cpp	Wed Oct 06 15:08:08 2010 +0300
@@ -0,0 +1,710 @@
+/*
+* Copyright (c) 2008-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 FILES] - do not remove
+#include <e32svr.h>
+#include <ecom.h>
+#include <StifParser.h>
+#include <StifTestEventInterface.h>
+#include <Stiftestinterface.h>
+#include <mediacollectionmanager.h>
+#include "CollectionManagerTest.h"
+
+#include "mdsutils.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CCollectionManagerTest::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void CCollectionManagerTest::Delete() 
+    {
+
+    }
+
+// -----------------------------------------------------------------------------
+// CCollectionManagerTest::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt CCollectionManagerTest::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. 
+
+        // engine		
+        ENTRY( "CreateCollectionManager", CCollectionManagerTest::CreateCollectionManagerL ),
+        ENTRY( "GetCollectionInfos", CCollectionManagerTest::GetCollectionInfosL ),
+        ENTRY( "CollectionInfoById", CCollectionManagerTest::CollectionInfoByIdL ),
+        ENTRY( "CreateCollection", CCollectionManagerTest::CreateCollectionL ),
+        ENTRY( "DeleteCollection", CCollectionManagerTest::DeleteCollectionL ),
+        ENTRY( "RenameCollection", CCollectionManagerTest::RenameCollectionL ),
+        ENTRY( "AddToCollection", CCollectionManagerTest::AddToCollectionL ),
+        ENTRY( "RemoveFromCollectionL", CCollectionManagerTest::RemoveFromCollectionL ),
+        ENTRY( "GetCollectionItemArray", CCollectionManagerTest::GetCollectionItemArrayL ),
+        ENTRY( "GetCollectionIdByItem", CCollectionManagerTest::GetCollectionIdByItemL ),
+        ENTRY( "AddCollectionObserver", CCollectionManagerTest::AddCollectionObserverL ),
+        ENTRY( "RemoveCollectionObserver", CCollectionManagerTest::RemoveCollectionObserverL ),
+        ENTRY( "GetDriveById", CCollectionManagerTest::GetDriveByIdL ),
+        ENTRY( "EndTestSession", CCollectionManagerTest::EndTestSessionL )
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+
+// -----------------------------------------------------------------------------
+// CCollectionManagerTest::CollectionChangedL
+// -----------------------------------------------------------------------------
+//
+void CCollectionManagerTest::CollectionChangedL( const TArray<TInt>& /*aCollectionIdArray*/ )
+    {
+    // This is not going to be called
+    }    
+
+// -----------------------------------------------------------------------------
+// CCollectionManagerTest::CollectionManagerErrorL
+// -----------------------------------------------------------------------------
+//
+void CCollectionManagerTest::CollectionManagerErrorL( TInt /*aError*/ )
+    {
+    // This is not going to be called
+    }    
+
+
+// -----------------------------------------------------------------------------
+// CCollectionManagerTest::CreateCollectionManagerLL
+// -----------------------------------------------------------------------------
+//
+TInt CCollectionManagerTest::CreateCollectionManagerL( CStifItemParser& /* aItem */ )
+    {
+    iCollectionManager = MediaCollectionManagerFactory::CreateCollectionManagerL( );
+    
+    return KErrNone;
+    }    
+
+// -----------------------------------------------------------------------------
+// CCollectionManagerTest::GetCollectionInfosL
+// -----------------------------------------------------------------------------
+//
+TInt CCollectionManagerTest::GetCollectionInfosL( CStifItemParser& /* aItem */ )
+	{
+    _LIT( KMsg1, "Enter GetCollectionInfosL" );
+    iLog->Log( KMsg1 );  
+    RDebug::Print( KMsg1 );
+	
+    TInt error( KErrNone );
+    
+    if( iCollectionManager )
+        {
+        RPointerArray<MMediaCollectionInfo> collectionInfoArray;
+        TRAP( error, iCollectionManager->GetCollectionInfosL( collectionInfoArray ) );
+        if( error != KErrNotSupported && error != KErrNone )
+            {
+            return error;
+            }
+        error = KErrNone;
+        const TInt infoArrayCount( collectionInfoArray.Count() );
+        if( infoArrayCount > 0 )
+            {
+            error = KErrUnknown;
+            }
+        }
+    else
+        {
+        error = KErrUnknown;
+        }
+	
+    _LIT( KMsg2, "Exit GetCollectionInfosL" );
+    iLog->Log( KMsg2 );  
+    RDebug::Print( KMsg2 );
+    
+    return error;
+    }
+
+// -----------------------------------------------------------------------------
+// CCollectionManagerTest::CollectionInfoByIdL
+// -----------------------------------------------------------------------------
+//
+TInt CCollectionManagerTest::CollectionInfoByIdL( CStifItemParser& /*aItem*/ )
+    {
+    _LIT( KMsg1, "Enter CollectionInfoByIdL" );
+    iLog->Log( KMsg1 );  
+    RDebug::Print( KMsg1 );
+    
+    TInt collectionID( KErrNotFound );
+    TInt error( KErrNone );
+    MMediaCollectionInfo* mci = NULL;
+    if( !iCollectionManager )
+        {
+        return KErrUnknown;
+        }
+    
+    TRAP( error, mci = iCollectionManager->CollectionInfoByIdLC( collectionID ) );
+    if( error != KErrNotSupported && error != KErrNone )
+        {
+        return error;
+        }
+    
+    if( mci )
+        {
+        return KErrCorrupt;
+        }
+    
+    TRAP( error, mci = iCollectionManager->CollectionInfoByIdLC( 0 ) );
+    if( error != KErrNotSupported && error != KErrNone )
+        {
+        return error;
+        }
+    
+    if( mci )
+        {
+        return KErrCorrupt;
+        }
+    
+    _LIT( KMsg2, "Exit CollectionInfoByIdL" );
+    iLog->Log( KMsg2 );  
+    RDebug::Print( KMsg2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CCollectionManagerTest::CreateCollectionL
+// -----------------------------------------------------------------------------
+//
+TInt CCollectionManagerTest::CreateCollectionL( CStifItemParser& /* aItem */ )
+    {
+    _LIT( KMsg1, "Enter CreateCollectionL" );
+    iLog->Log( KMsg1 );  
+    RDebug::Print( KMsg1 );
+    
+    if( !iCollectionManager )
+        {
+        return KErrUnknown;
+        }
+    
+    _LIT( KTestAlbumName, "TestAlbum" );
+    HBufC* collectionName = KTestAlbumName().AllocL();
+    RArray<TInt> types;
+    types.AppendL( 1 );
+    TInt32 properties = EMCPhoneMemoryCollection;
+
+    TInt collectionId( KErrNotFound );
+    TInt error( KErrNone );
+    TRAP( error, collectionId = iCollectionManager->CreateCollectionL( *collectionName, types.Array(), properties ) );
+    if( error != KErrNotSupported && error != KErrNone )
+        {
+        delete collectionName;
+        collectionName = NULL;
+        return error;
+        }
+
+    properties = EMCMmcCollection;
+    TRAP( error, collectionId = iCollectionManager->CreateCollectionL( *collectionName, types.Array(), properties ) );
+    if( error != KErrNotSupported && error != KErrNone )
+        {
+        delete collectionName;
+        collectionName = NULL;
+        return error;
+        }
+
+    MMediaCollectionInfo* mci = NULL;
+    TRAP( error, iCollectionManager->CollectionInfoByIdLC( collectionId ) );
+    if( error != KErrNotSupported && error != KErrNone )
+        {
+        delete collectionName;
+        collectionName = NULL;
+        return error;
+        }
+
+    if( mci )
+        {
+        delete collectionName;
+        collectionName = NULL;
+        return KErrCorrupt;
+        }
+
+    delete collectionName;
+    collectionName = NULL;
+    
+    _LIT( KMsg2, "Exit CreateCollectionL" );
+    iLog->Log( KMsg2 );  
+    RDebug::Print( KMsg2 );
+	
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CCollectionManagerTest::DeleteCollectionL
+// -----------------------------------------------------------------------------
+//
+TInt CCollectionManagerTest::DeleteCollectionL( CStifItemParser& /* aItem */ )
+    {
+    _LIT( KMsg1, "Enter DeleteCollectionL" );
+    iLog->Log( KMsg1 );  
+    RDebug::Print( KMsg1 );
+    
+    if( !iCollectionManager )
+        {
+        return KErrUnknown;
+        }
+    
+    TInt collectionId( KErrNotFound );
+    TInt error( KErrNone );
+    TRAP( error, iCollectionManager->DeleteCollectionL( collectionId ) );
+    if( error != KErrNotSupported && error != KErrNone )
+        {
+        return error;
+        }
+
+    collectionId = 0;
+    TRAP( error, iCollectionManager->DeleteCollectionL( collectionId ) );
+    if( error != KErrNotSupported && error != KErrNone )
+        {
+        return error;
+        }
+    
+    _LIT( KMsg2, "Exit DeleteCollectionL" );
+    iLog->Log( KMsg2 );  
+    RDebug::Print( KMsg2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CCollectionManagerTest::RenameCollectionL
+// -----------------------------------------------------------------------------
+//
+TInt CCollectionManagerTest::RenameCollectionL( CStifItemParser& /* aItem */ )
+    {
+    _LIT( KMsg1, "Enter RenameCollectionL" );
+    iLog->Log( KMsg1 );  
+    RDebug::Print( KMsg1 );
+    
+    if( !iCollectionManager )
+        {
+        return KErrUnknown;
+        }
+    
+    TInt collectionId( KErrNotFound );
+    TInt error( KErrNone );
+    
+    _LIT( KTestAlbumName, "NewTestAlbum" );
+    HBufC* collectionNewName = KTestAlbumName().AllocL();
+    
+    TRAP( error, iCollectionManager->RenameCollectionL( collectionId, *collectionNewName ) );
+    if( error != KErrNotSupported && error != KErrNone )
+        {
+        delete collectionNewName;
+        collectionNewName = NULL;
+        return error;
+        }
+
+    MMediaCollectionInfo* mci = NULL;
+    
+    TRAP( error, mci= iCollectionManager->CollectionInfoByIdLC( collectionId ) );
+    if( error != KErrNotSupported && error != KErrNone )
+        {
+        delete collectionNewName;
+        collectionNewName = NULL;
+        return error;
+        }
+    
+    if( mci )
+        {
+        delete collectionNewName;
+        collectionNewName = NULL;
+        return KErrCorrupt;
+        }
+    
+    delete collectionNewName;
+    collectionNewName = NULL;
+    
+    _LIT( KMsg2, "Exit RenameCollectionL" );
+    iLog->Log( KMsg2 );  
+    RDebug::Print( KMsg2 );
+	
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CCollectionManagerTest::AddToCollectionL
+// -----------------------------------------------------------------------------
+//
+TInt CCollectionManagerTest::AddToCollectionL( CStifItemParser& /* aItem */ )
+    {
+    _LIT( KMsg1, "Enter AddToCollectionL" );
+    iLog->Log( KMsg1 );  
+    RDebug::Print( KMsg1 );
+
+    if( !iCollectionManager )
+        {
+        return KErrUnknown;
+        }
+    
+    const TInt itemCount( 500 );
+    CDesCArray* newItemArray = new (ELeave) CDesCArrayFlat( itemCount );
+
+    for( TInt i = 0 ; i < itemCount ; ++i )
+        {
+        TBuf<40> b;
+        b.Num( i );
+        b.Append( _L("TestItem") );
+        newItemArray->AppendL( b );
+        }
+    
+    TInt collectionId( KErrNotFound );
+    TInt error( KErrNone );
+    TRAP( error, iCollectionManager->AddToCollectionL( collectionId, *newItemArray, ETrue ) );
+    if( error != KErrNotSupported && error != KErrNone )
+        {
+        delete newItemArray;
+        newItemArray = NULL;
+        return error;
+        }
+
+    TRAP( error, iCollectionManager->AddToCollectionL( collectionId, *newItemArray, EFalse ) );
+    if( error != KErrNotSupported && error != KErrNone )
+        {
+        delete newItemArray;
+        newItemArray = NULL;
+        return error;
+        }
+
+    delete newItemArray;
+    newItemArray = NULL;
+
+    _LIT( KMsg2, "Exit AddToCollectionL" );
+    iLog->Log( KMsg2 );  
+    RDebug::Print( KMsg2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CCollectionManagerTest::RemoveFromCollectionL
+// -----------------------------------------------------------------------------
+//
+TInt CCollectionManagerTest::RemoveFromCollectionL( CStifItemParser& /* aItem */ )
+    {
+    _LIT( KMsg1, "Enter RemoveFromCollectionL" );
+    iLog->Log( KMsg1 );  
+    RDebug::Print( KMsg1 );
+
+    if( !iCollectionManager )
+        {
+        return KErrUnknown;
+        }
+    
+    const TInt itemCount( 500 );
+    CDesCArray* removeItemArray = new (ELeave) CDesCArrayFlat( itemCount );
+
+    for( TInt i = 0 ; i < itemCount ; ++i )
+        {
+        TBuf<40> b;
+        b.Num( i );
+        b.Append( _L("TestItem") );
+        removeItemArray->AppendL( b );
+        }
+
+    TInt collectionId( KErrNotFound );
+    TInt error( KErrNone );
+    TRAP( error, iCollectionManager->RemoveFromCollectionL( collectionId, *removeItemArray ) );
+    if( error != KErrNotSupported && error != KErrNone )
+        {
+        delete removeItemArray;
+        removeItemArray = NULL;
+        return error;
+        }
+
+    delete removeItemArray;
+    removeItemArray = NULL;
+    
+    _LIT( KMsg2, "Exit RemoveFromCollectionL" );
+    iLog->Log( KMsg2 );  
+    RDebug::Print( KMsg2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CCollectionManagerTest::RemoveFromAllCollectionsL
+// -----------------------------------------------------------------------------
+//
+TInt CCollectionManagerTest::RemoveFromAllCollectionsL( CStifItemParser& /*aItem*/ )
+    {
+    _LIT( KMsg1, "Enter RemoveFromAllCollectionsL" );
+    iLog->Log( KMsg1 );  
+    RDebug::Print( KMsg1 );
+    
+    if( !iCollectionManager )
+        {
+        return KErrUnknown;
+        }
+    
+    const TInt itemCount( 500 );
+    CDesCArray* removeItemArray = new (ELeave) CDesCArrayFlat( itemCount );
+    CleanupStack::PushL( removeItemArray );
+
+    for( TInt i = 0 ; i < itemCount ; ++i )
+        {
+        TBuf<40> b;
+        b.Num( i );
+        b.Append( _L("TestItem") );
+        removeItemArray->AppendL( b );
+        }
+    
+    TInt error( KErrNone );
+    TRAP( error, iCollectionManager->RemoveFromAllCollectionsL( *removeItemArray ) );
+    if( error != KErrNotSupported && error != KErrNone )
+        {
+        CleanupStack::PopAndDestroy( removeItemArray );
+        removeItemArray = NULL;
+        return error;
+        }
+    
+    CleanupStack::PopAndDestroy( removeItemArray );
+    removeItemArray = NULL;
+    
+    _LIT( KMsg2, "Exit RemoveFromAllCollectionsL" );
+    iLog->Log( KMsg2 );  
+    RDebug::Print( KMsg2 );
+
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CCollectionManagerTest::GetCollectionItemArrayL
+// -----------------------------------------------------------------------------
+//
+TInt CCollectionManagerTest::GetCollectionItemArrayL( CStifItemParser& /*aItem*/ )
+    {
+    _LIT( KMsg1, "Enter GetCollectionItemArrayL" );
+    iLog->Log( KMsg1 );  
+    RDebug::Print( KMsg1 );
+   
+    if( !iCollectionManager )
+        {
+        return KErrUnknown;
+        }
+    
+    CDesCArraySeg* collectionItemArray = new (ELeave) CDesCArraySeg( 4 );
+    CleanupStack::PushL( collectionItemArray );
+
+    TInt collectionId( KErrNotFound );
+    TInt error( KErrNone );
+    TRAP( error, iCollectionManager->GetCollectionItemArrayL( collectionId, *collectionItemArray ) );
+    if( error != KErrNotSupported && error != KErrNone )
+        {
+        CleanupStack::PopAndDestroy(collectionItemArray);
+        return error;
+        }
+    
+    if( collectionItemArray->Count() > 0 )
+        {
+        CleanupStack::PopAndDestroy(collectionItemArray);
+        return KErrUnknown;
+        }
+    
+    CleanupStack::PopAndDestroy(collectionItemArray);
+    
+    _LIT( KMsg2, "Exit GetCollectionItemArrayL" );
+    iLog->Log( KMsg2 );  
+    RDebug::Print( KMsg2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CCollectionManagerTest::GetCollectionIdByItemL
+// -----------------------------------------------------------------------------
+//
+TInt CCollectionManagerTest::GetCollectionIdByItemL( CStifItemParser& /* aItem */ )
+    {
+    _LIT( KMsg1, "Enter GetCollectionIdByItemL" );
+    iLog->Log( KMsg1 );  
+    RDebug::Print( KMsg1 );
+
+    if( !iCollectionManager )
+        {
+        return KErrUnknown;
+        }
+    
+    _LIT( KTestItemName, "GetCollectionIdByItemTestItem");
+    HBufC* getCollectionIdByItemTestItemName = KTestItemName().AllocL();
+    
+    RArray<TInt> idArray;
+    CleanupClosePushL( idArray );
+    TInt error( KErrNone );
+    TRAP( error, iCollectionManager->GetCollectionIdByItemL( *getCollectionIdByItemTestItemName, idArray ) );
+    if( error != KErrNotSupported && error != KErrNone )
+        {
+        CleanupStack::PopAndDestroy(&idArray);
+        delete getCollectionIdByItemTestItemName;
+        getCollectionIdByItemTestItemName = NULL;
+        return error;
+        }
+
+    const TInt idArrayCount( idArray.Count() );
+    if( idArrayCount > 0 )
+        {
+        CleanupStack::PopAndDestroy(&idArray);
+        delete getCollectionIdByItemTestItemName;
+        getCollectionIdByItemTestItemName = NULL;
+        return KErrUnknown;
+        }
+
+    CleanupStack::PopAndDestroy(&idArray);
+	
+    delete getCollectionIdByItemTestItemName;
+    getCollectionIdByItemTestItemName = NULL;
+    
+    _LIT( KMsg2, "Enter GetCollectionIdByItemL" );
+    iLog->Log( KMsg2 );  
+    RDebug::Print( KMsg2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CCollectionManagerTest::AddCollectionObserverL
+// -----------------------------------------------------------------------------
+//
+TInt CCollectionManagerTest::AddCollectionObserverL( CStifItemParser& /* aItem */ )
+    {
+    _LIT( KMsg1, "Enter AddCollectionObserverL" );
+    iLog->Log( KMsg1 );  
+    RDebug::Print( KMsg1 );
+
+    if( !iCollectionManager )
+        {
+        return KErrUnknown;
+        }
+    
+    TInt err( KErrNone );
+    TRAP( err, iCollectionManager->AddCollectionObserverL( *this ) );
+    if( err != KErrNotSupported && err != KErrNone )
+        {
+        return err;
+        }
+    
+    _LIT( KMsg2, "Exit AddCollectionObserverL" );
+    iLog->Log( KMsg2 );  
+    RDebug::Print( KMsg2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CCollectionManagerTest::RemoveCollectionObserverL
+// -----------------------------------------------------------------------------
+//
+TInt CCollectionManagerTest::RemoveCollectionObserverL( CStifItemParser& /* aItem */ )
+    {
+    _LIT( KMsg1, "Enter RemoveCollectionObserverL" );
+    iLog->Log( KMsg1 );  
+    RDebug::Print( KMsg1 );
+ 
+    if( !iCollectionManager )
+        {
+        return KErrUnknown;
+        }
+    
+    TInt err( KErrNone );
+    TRAP( err, iCollectionManager->AddCollectionObserverL( *this ) );
+    if( err != KErrNotSupported && err != KErrNone )
+        {
+        return err;
+        }
+    
+    TRAP( err, iCollectionManager->RemoveCollectionObserverL( *this ) );
+    if( err != KErrNotSupported && err != KErrNone )
+        {
+        return err;
+        }
+    
+    _LIT( KMsg2, "Exit RemoveCollectionObserverL" );
+    iLog->Log( KMsg2 );  
+    RDebug::Print( KMsg2 );
+	
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CCollectionManagerTest::GetDriveByIdL
+// -----------------------------------------------------------------------------
+//
+TInt CCollectionManagerTest::GetDriveByIdL( CStifItemParser& /* aItem */ )
+    {
+    _LIT( KMsg1, "Enter GetDriveByIdL" );
+    iLog->Log( KMsg1 );
+    RDebug::Print( KMsg1 );
+    
+    if( !iCollectionManager )
+        {
+        return KErrUnknown;
+        }
+    
+    TInt collectionId( KErrNotFound );
+
+    TInt32 drive( 100 );
+    TInt error( KErrNone );
+    
+    TRAP( error, drive = iCollectionManager->GetDriveByIdL( collectionId ) );
+    if( error != KErrNotSupported && error != KErrNone )
+        {
+        return error;
+        }
+    
+    if( drive != 100 )
+        {
+        return KErrUnknown;
+        }
+    
+    _LIT( KMsg2, "Exit GetDriveByIdL" );
+    iLog->Log( KMsg2 );
+    RDebug::Print( KMsg2 );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CCollectionManagerTest::EndTestSessionL
+// -----------------------------------------------------------------------------
+//
+TInt CCollectionManagerTest::EndTestSessionL( CStifItemParser& /* aItem */ )
+    {
+    delete iCollectionManager;
+    iCollectionManager = NULL;
+    
+    return KErrNone;
+    }   
+
+//  [End of File] - Do not remove