videofeeds/server/tsrc/VCXScheduledDownloadTest/src/VCXScheduledDownloadTestBlocks.cpp
changeset 0 96612d01cf9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/server/tsrc/VCXScheduledDownloadTest/src/VCXScheduledDownloadTestBlocks.cpp	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,529 @@
+/*
+* Copyright (c) 2009 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:  This file contains testclass implementation.*
+*/
+
+
+// [INCLUDE FILES] - do not remove
+#include <e32svr.h>
+#include <StifParser.h>
+#include <Stiftestinterface.h>
+#include <centralrepository.h>
+
+#include "VCXTestLog.h"
+#include "VCXScheduledDownloadTest.h"
+#include "VCXScheduledDownloadTester.h"
+#include "VCXTestCommon.h"
+
+// CONSTANTS
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CVCXScheduledDownloadTest::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void CVCXScheduledDownloadTest::Delete() 
+    {
+    delete iTester;
+    iTester = NULL;
+    
+    delete iTestCommon;
+    iTestCommon = NULL;
+
+    iFs.Close();
+    }
+
+// -----------------------------------------------------------------------------
+// CVCXScheduledDownloadTest::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt CVCXScheduledDownloadTest::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( "Create", CVCXScheduledDownloadTest::CreateL ),
+        ENTRY( "RemoveAllMedias", CVCXScheduledDownloadTest::RemoveAllMediasL ),
+        ENTRY( "RemoveAllSchedules", CVCXScheduledDownloadTest::RemoveAllSchedulesL ),
+        ENTRY( "RemoveVideo", CVCXScheduledDownloadTest::RemoveVideoL ),
+        ENTRY( "Download", CVCXScheduledDownloadTest::DownloadL ),
+        ENTRY( "CancelDownload", CVCXScheduledDownloadTest::CancelDownloadL ),
+        ENTRY( "WaitForMessages", CVCXScheduledDownloadTest::WaitForMessagesL ),
+        ENTRY( "CoolDown", CVCXScheduledDownloadTest::CoolDown ),
+        ENTRY( "CheckVideoCount", CVCXScheduledDownloadTest::CheckVideoCount ),
+        ENTRY( "CheckMinimumVideoCount", CVCXScheduledDownloadTest::CheckMinimumVideoCount ),
+        ENTRY( "CheckMaximumVideoCount", CVCXScheduledDownloadTest::CheckMaximumVideoCount ),
+        ENTRY( "CheckError", CVCXScheduledDownloadTest::CheckError ),
+        ENTRY( "SetPreferredMemory", CVCXScheduledDownloadTest::SetPreferredMemoryL ),
+        
+        // [test cases entries] - Do not remove
+
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+
+// -----------------------------------------------------------------------------
+// CVCXScheduledDownloadTest::CreateL
+// -----------------------------------------------------------------------------
+//
+TInt CVCXScheduledDownloadTest::CreateL( CStifItemParser& aItem )
+    {
+    VCXLOGLO1(">>>CVCXScheduledDownloadTest::CreateL");
+    // Print to UI
+    _LIT( KVCXScheduledDownloadTest, "VCXScheduledDownloadTest" );
+    _LIT( KWhere, "In CreateL" );
+    TestModuleIf().Printf( 0, KVCXScheduledDownloadTest, KWhere );
+    // Print to log file
+    iLog->Log( KWhere );
+    
+    aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing);
+
+    User::LeaveIfError( iFs.Connect() );
+    
+    TRAPD( err, iTester = CVCXScheduledDownloadTester::NewL( this ) );
+    
+    if( err != KErrNone )
+        {
+        VCXLOGLO2("CVCXScheduledDownloadTest:: error: %d", err);
+        }
+    
+    iTestCommon = CVCXTestCommon::NewL();
+    
+    VCXLOGLO1("<<<CVCXScheduledDownloadTest::CreateL");
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
+// CVCXScheduledDownloadTest::RemoveAllMediasL
+// -----------------------------------------------------------------------------
+//
+TInt CVCXScheduledDownloadTest::RemoveAllMediasL( CStifItemParser& aItem )
+    {
+    VCXLOGLO1(">>>CVCXScheduledDownloadTest::RemoveAllMediasL");
+    // Print to UI
+    _LIT( KVCXScheduledDownloadTest, "VCXScheduledDownloadTest" );
+    _LIT( KWhere, "In RemoveAllMediasL" );
+    TestModuleIf().Printf( 0, KVCXScheduledDownloadTest, KWhere );
+    // Print to log file
+    iLog->Log( KWhere );
+
+    aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing);
+    
+    TRAPD( err, iTester->RemoveAllMediasL() );
+    
+    if( err != KErrNone )
+        {
+        VCXLOGLO2("CVCXScheduledDownloadTest:: error: %d", err);
+        }
+    
+    VCXLOGLO1("<<<CVCXScheduledDownloadTest::RemoveAllMediasL");
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
+// CVCXScheduledDownloadTest::RemoveAllSchedulesL
+// -----------------------------------------------------------------------------
+//
+TInt CVCXScheduledDownloadTest::RemoveAllSchedulesL( CStifItemParser& aItem )
+    {
+    VCXLOGLO1(">>>CVCXScheduledDownloadTest::RemoveAllSchedulesL");
+    // Print to UI
+    _LIT( KVCXScheduledDownloadTest, "VCXScheduledDownloadTest" );
+    _LIT( KWhere, "In RemoveAllSchedulesL" );
+    TestModuleIf().Printf( 0, KVCXScheduledDownloadTest, KWhere );
+    // Print to log file
+    iLog->Log( KWhere );
+
+    aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing);
+    
+    TRAPD( err, iTester->RemoveAllSchedulesL() );
+    
+    if( err != KErrNone )
+        {
+        VCXLOGLO2("CVCXScheduledDownloadTest:: error: %d", err);
+        }
+    
+    VCXLOGLO1("<<<CVCXScheduledDownloadTest::RemoveAllSchedulesL");
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
+// CVCXScheduledDownloadTest::RemoveVideoL
+// -----------------------------------------------------------------------------
+//
+TInt CVCXScheduledDownloadTest::RemoveVideoL( CStifItemParser& aItem )
+    {
+    VCXLOGLO1(">>>CVCXScheduledDownloadTest::RemoveAllMediasL");
+    // Print to UI
+    _LIT( KVCXScheduledDownloadTest, "VCXScheduledDownloadTest" );
+    _LIT( KWhere, "In RemoveVideoL" );
+    TestModuleIf().Printf( 0, KVCXScheduledDownloadTest, KWhere );
+    // Print to log file
+    iLog->Log( KWhere );
+    
+    aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing);
+
+    TInt index;
+    User::LeaveIfError( aItem.GetNextInt( index ) );
+    
+    TRAPD( err, iTester->RemoveVideoL( index ) );
+    
+    if( err != KErrNone )
+        {
+        VCXLOGLO2("CVCXScheduledDownloadTest:: error: %d", err);
+        }
+    
+    VCXLOGLO1("<<<CVCXScheduledDownloadTest::RemoveAllMediasL");
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
+// CVCXScheduledDownloadTest::DownloadL
+// -----------------------------------------------------------------------------
+//
+TInt CVCXScheduledDownloadTest::DownloadL( CStifItemParser& aItem )
+    {
+    VCXLOGLO1(">>>CVCXScheduledDownloadTest::DownloadL");
+    // Print to UI
+    _LIT( KVCXScheduledDownloadTest, "VCXScheduledDownloadTest" );
+    _LIT( KWhere, "In DownloadL" );
+    TestModuleIf().Printf( 0, KVCXScheduledDownloadTest, KWhere );
+    // Print to log file
+    iLog->Log( KWhere );
+
+    aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing);
+    
+    TUint32 iapId(0);
+    TPtrC iapName;
+    User::LeaveIfError( aItem.GetNextString( iapName ) );
+    VCXLOGLO2("CVCXMyVideosCollectionPluginTest:: iapName: %S", &iapName);
+    User::LeaveIfError( iTestCommon->GetIapIdL( iapName, iapId ) );
+    VCXLOGLO2("CVCXMyVideosCollectionPluginTest:: iapId: %d", iapId);
+
+    TPtrC url;
+    User::LeaveIfError( aItem.GetNextString( url ) );
+    
+    TPtrC userName;
+    if( KErrNone == aItem.GetNextString( userName ) )
+        {
+        VCXLOGLO2("CVCXMyVideosCollectionPluginTest:: userName: %S", &userName);
+        }
+    else
+        {
+        userName.Set( _L("") );
+        }
+
+    TPtrC password;
+    if( KErrNone == aItem.GetNextString( password ) )
+        {
+        VCXLOGLO2("CVCXMyVideosCollectionPluginTest:: password: %S", &password);
+        }
+    else
+        {
+        password.Set( _L("") );
+        }
+    
+    TRAPD( err, iTester->DownloadL( url, iapId, userName, password ) );
+    
+    VCXLOGLO1("<<<CVCXScheduledDownloadTest::DownloadL");
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
+// CVCXScheduledDownloadTest::CancelDownloadL
+// -----------------------------------------------------------------------------
+//
+TInt CVCXScheduledDownloadTest::CancelDownloadL( CStifItemParser& aItem )
+    {
+    VCXLOGLO1(">>>CVCXScheduledDownloadTest::CancelDownloadL");
+    // Print to UI
+    _LIT( KVCXScheduledDownloadTest, "VCXScheduledDownloadTest" );
+    _LIT( KWhere, "In CancelDownloadL" );
+    TestModuleIf().Printf( 0, KVCXScheduledDownloadTest, KWhere );
+    // Print to log file
+    iLog->Log( KWhere );
+    
+    aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing);
+
+    TInt index;
+    User::LeaveIfError( aItem.GetNextInt( index ) );
+    
+    TRAPD( err, iTester->CancelDownloadL( index ) );
+    
+    if( err != KErrNone )
+        {
+        VCXLOGLO2("CVCXScheduledDownloadTest:: error: %d", err);
+        }
+    
+    VCXLOGLO1("<<<CVCXScheduledDownloadTest::CancelDownloadL");
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
+// CVCXScheduledDownloadTest::WaitForMessagesL
+// -----------------------------------------------------------------------------
+//
+TInt CVCXScheduledDownloadTest::WaitForMessagesL( CStifItemParser& aItem )
+    {
+    VCXLOGLO1(">>>CVCXScheduledDownloadTest::WaitForMessagesL");
+    // Print to UI
+    _LIT( KVCXScheduledDownloadTest, "VCXScheduledDownloadTest" );
+    _LIT( KWhere, "In WaitForMessagesL" );
+    TestModuleIf().Printf( 0, KVCXScheduledDownloadTest, KWhere );
+    // Print to log file
+    iLog->Log( KWhere );
+    
+    aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing);
+
+    RArray<TInt32> messages;
+    
+    TInt timeoutSeconds(0);
+    User::LeaveIfError( aItem.GetNextInt( timeoutSeconds ) );
+    
+    TInt msg;
+    while( aItem.GetNextInt( msg ) == KErrNone )
+        {
+        messages.Append( msg );
+        }
+    
+    TInt err( KErrArgument );
+    
+    if( messages.Count() > 0 )
+        {
+        TRAP( err, iTester->WaitForVideoEventsL( timeoutSeconds, messages ) );
+        }
+    
+    VCXLOGLO1("<<<CVCXScheduledDownloadTest::WaitForMessagesL");
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
+// CVCXScheduledDownloadTest::CoolDown
+// -----------------------------------------------------------------------------
+//
+TInt CVCXScheduledDownloadTest::CoolDown( CStifItemParser& aItem )
+    {
+    VCXLOGLO1(">>>CVCXScheduledDownloadTest::CoolDown");
+    // Print to UI
+    _LIT( KVCXScheduledDownloadTest, "VCXScheduledDownloadTest" );
+    _LIT( KWhere, "In CoolDown" );
+    TestModuleIf().Printf( 0, KVCXScheduledDownloadTest, KWhere );
+    // Print to log file
+    iLog->Log( KWhere );
+    
+    aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing);
+
+    iTester->CoolDown();
+    
+    VCXLOGLO1("<<<CVCXScheduledDownloadTest::CoolDown");
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CVCXScheduledDownloadTest::CheckVideoCount
+// -----------------------------------------------------------------------------
+//
+TInt CVCXScheduledDownloadTest::CheckVideoCount( CStifItemParser& aItem )
+    {
+    VCXLOGLO1(">>>CVCXScheduledDownloadTest::CheckVideoCount");    
+    // Print to UI
+    _LIT( KVCXScheduledDownloadTest, "VCXScheduledDownloadTest" );
+    _LIT( KWhere, "In CheckVideoCount" );
+    TestModuleIf().Printf( 0, KVCXScheduledDownloadTest, KWhere );
+    // Print to log file
+    iLog->Log( KWhere );
+
+    aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing);
+    
+    TInt expectedCount;
+    
+    User::LeaveIfError( aItem.GetNextInt( expectedCount ) );
+    
+    TInt err( KErrNone );
+    
+    TRAP( err, iTester->RefreshL() );
+    
+    if( err == KErrNone && iTester->VideoCount() != expectedCount )
+        {
+        err = KErrCorrupt;
+        }
+    
+    VCXLOGLO1("<<<CVCXScheduledDownloadTest::CheckVideoCount");
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
+// CVCXScheduledDownloadTest::CheckMinimumVideoCount
+// -----------------------------------------------------------------------------
+//
+TInt CVCXScheduledDownloadTest::CheckMinimumVideoCount( CStifItemParser& aItem )
+    {
+    VCXLOGLO1(">>>CVCXScheduledDownloadTest::CheckMinimumVideoCount");    
+    // Print to UI
+    _LIT( KVCXScheduledDownloadTest, "VCXScheduledDownloadTest" );
+    _LIT( KWhere, "In CheckMinimumVideoCount" );
+    TestModuleIf().Printf( 0, KVCXScheduledDownloadTest, KWhere );
+    // Print to log file
+    iLog->Log( KWhere );
+    
+    aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing);
+
+    TInt expectedCount;
+    
+    User::LeaveIfError( aItem.GetNextInt( expectedCount ) );
+    
+    TInt err( KErrNone );
+    
+    TRAP( err, iTester->RefreshL() );
+    
+    if( err == KErrNone && iTester->VideoCount() < expectedCount )
+        {
+        err = KErrCorrupt;
+        }
+    
+    VCXLOGLO1("<<<CVCXScheduledDownloadTest::CheckMinimumVideoCount");
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
+// CVCXScheduledDownloadTest::CheckMaximumVideoCount
+// -----------------------------------------------------------------------------
+//
+TInt CVCXScheduledDownloadTest::CheckMaximumVideoCount( CStifItemParser& aItem )
+    {
+    VCXLOGLO1(">>>CVCXScheduledDownloadTest::CheckMaximumVideoCount");    
+    // Print to UI
+    _LIT( KVCXScheduledDownloadTest, "VCXScheduledDownloadTest" );
+    _LIT( KWhere, "In CheckMaximumVideoCount" );
+    TestModuleIf().Printf( 0, KVCXScheduledDownloadTest, KWhere );
+    // Print to log file
+    iLog->Log( KWhere );
+    
+    aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing);
+
+    TInt expectedCount;
+    
+    User::LeaveIfError( aItem.GetNextInt( expectedCount ) );
+    
+    TInt err( KErrNone );
+    
+    TRAP( err, iTester->RefreshL() );
+    
+    if( err == KErrNone && iTester->VideoCount() > expectedCount )
+        {
+        err = KErrCorrupt;
+        }
+    
+    VCXLOGLO1("<<<CVCXScheduledDownloadTest::CheckMaximumVideoCount");
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
+// CVCXScheduledDownloadTest::CheckError
+// -----------------------------------------------------------------------------
+//
+TInt CVCXScheduledDownloadTest::CheckError( CStifItemParser& aItem )
+    {
+    VCXLOGLO1(">>>CVCXScheduledDownloadTest::CheckError");    
+    // Print to UI
+    _LIT( KVCXScheduledDownloadTest, "VCXScheduledDownloadTest" );
+    _LIT( KWhere, "In CheckError" );
+    TestModuleIf().Printf( 0, KVCXScheduledDownloadTest, KWhere );
+    // Print to log file
+    iLog->Log( KWhere );
+    
+    aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing);
+
+    TInt err = iTester->GetLastError();
+    
+    VCXLOGLO1("<<<CVCXScheduledDownloadTest::CheckError");
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
+// CVCXScheduledDownloadTest::SetPreferredMemoryL
+// -----------------------------------------------------------------------------
+//
+TInt CVCXScheduledDownloadTest::SetPreferredMemoryL( CStifItemParser& aItem )
+    {
+    VCXLOGLO1(">>>CVCXScheduledDownloadTest::SetPreferredMemoryL ---------->");
+    // Print to UI
+    _LIT( KVCXMyVideosCollectionPluginTest, "VCXScheduledDownloadTest" );
+    _LIT( KWhere, "In SetPreferredMemoryL" );
+    TestModuleIf().Printf( 0, KVCXMyVideosCollectionPluginTest, KWhere );
+    // Print to log file
+    iLog->Log( KWhere );
+    
+    aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing);
+
+    aItem.SetParsingType( CStifItemParser::EQuoteStyleParsing );
+
+    TInt drive(0);
+    User::LeaveIfError( GetDriveParam( aItem, drive ) );
+
+    // These were defined in CVcxMyVideosDownloadUtil::PreferredMemoryDesL()
+    const TInt KVcxCenRepUid = 0x102750E2; // same as KIptvCenRepUid in CIptvUtil.h
+    const TInt KVcxCenRepPreferredMemoryKey = 0x01; // same as KIptvCenRepPreferredMemoryKey in CIptvUtil.h
+
+    TUid uid;
+    uid.iUid = KVcxCenRepUid;
+
+    CRepository* cenRep = CRepository::NewLC( uid );
+    User::LeaveIfError( cenRep->Set( KVcxCenRepPreferredMemoryKey, drive ) );
+    CleanupStack::PopAndDestroy( cenRep );
+
+    VCXLOGLO1("<<<CVCXScheduledDownloadTest::SetPreferredMemoryL <----------");
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CVCXScheduledDownloadTest::GetDriveParam
+// -----------------------------------------------------------------------------
+//
+TInt CVCXScheduledDownloadTest::GetDriveParam( CStifItemParser& aItem, TInt& aDrive )
+    {
+    aItem.SetParsingType( CStifItemParser::EQuoteStyleParsing );
+
+    TPtrC driveLetter;
+    TInt err = aItem.GetNextString( driveLetter );
+    if( err == KErrNone )
+        {
+        if( driveLetter == _L("anydrive") )
+            {
+            aDrive = -1;
+            }
+        else
+            {
+            err = iFs.CharToDrive( driveLetter[0], aDrive );
+            VCXLOGLO3("CVCXScheduledDownloadTest:: drive: %S = %d", &driveLetter, aDrive );
+            }
+        }
+
+    return err;
+    }
+
+//  [End of File] - Do not remove