videofeeds/server/tsrc/VCXSettingsDatabaseTest/src/VCXSettingsDatabaseTestBlocks.cpp
changeset 0 96612d01cf9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/server/tsrc/VCXSettingsDatabaseTest/src/VCXSettingsDatabaseTestBlocks.cpp	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,372 @@
+/*
+* Copyright (c) 2002 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
+#include <e32svr.h>
+#include <StifParser.h>
+#include <Stiftestinterface.h>
+#include "VCXSettingsDatabaseTest.h"
+
+#include "VCXTestLog.h"
+#include "CIptvSettingsDatabase.h"
+
+// EXTERNAL DATA STRUCTURES
+//extern  ?external_data;
+
+// EXTERNAL FUNCTION PROTOTYPES
+//extern ?external_function( ?arg_type,?arg_type );
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+
+// LOCAL CONSTANTS AND MACROS
+//const ?type ?constant_var = ?constant;
+//#define ?macro_name ?macro_def
+
+// MODULE DATA STRUCTURES
+//enum ?declaration
+//typedef ?declaration
+
+// LOCAL FUNCTION PROTOTYPES
+//?type ?function_name( ?arg_type, ?arg_type );
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// ?function_name ?description.
+// ?description
+// Returns: ?value_1: ?description
+//          ?value_n: ?description_line1
+//                    ?description_line2
+// -----------------------------------------------------------------------------
+//
+/*
+?type ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg)  // ?description
+    {
+
+    ?code  // ?comment
+
+    // ?comment
+    ?code
+    }
+*/
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CIptvSettingsDatabaseTest::Delete
+// Delete here all resources allocated and opened from test methods.
+// Called from destructor.
+// -----------------------------------------------------------------------------
+//
+void CIptvSettingsDatabaseTest::Delete()
+    {
+	if( iDatabase )
+		{
+		delete iDatabase;
+		}
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvSettingsDatabaseTest::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt CIptvSettingsDatabaseTest::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", CIptvSettingsDatabaseTest::CreateL ),
+        ENTRY( "Destroy", CIptvSettingsDatabaseTest::DestroyL ),
+        ENTRY( "TestSettings", CIptvSettingsDatabaseTest::TestSettingsL ),
+        ENTRY( "TestLastUsage", CIptvSettingsDatabaseTest::TestLastUsageL )
+        };
+
+    const TInt count = sizeof( KFunctions ) /
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvSettingsDatabaseTest::CreateL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CIptvSettingsDatabaseTest::CreateL( CStifItemParser& aItem )
+    {
+
+    // Print to UI
+    _LIT( KIptvSettingsDatabaseTest, "IptvSettingsDatabaseTest" );
+    _LIT( KWhere, "In Create" );
+    TestModuleIf().Printf( 0, KIptvSettingsDatabaseTest, KWhere );
+    // Print to log file
+    iLog->Log( KWhere );
+
+    VCXLOGLO1(">>>CIptvSettingsDatabaseTest::CreateL");
+
+    aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing);
+
+	if( aItem.GetNextString(iDriveLetter) != KErrNone )
+	    {
+	    VCXLOGLO1("<<<CIptvSettingsDatabaseTest::CreateL: invalid argument!");
+	    return KErrArgument;
+	    }
+	VCXLOGLO2("CIptvSettingsDatabaseTest::CreateL iDriveLetter: %S", &iDriveLetter);
+
+	if( aItem.GetNextString(iDatabaseFilename) != KErrNone )
+	    {
+	    VCXLOGLO1("<<<CIptvSettingsDatabaseTest::CreateL: invalid argument!");
+	    return KErrArgument;
+	    }
+	VCXLOGLO2("CIptvSettingsDatabaseTest::CreateL iDatabaseFilename: %S", &iDatabaseFilename);
+
+	TInt err( 0 );
+
+	TBuf<256> tempPath;
+	tempPath.Format( KSettingsDatabaseTestPath, &iDriveLetter );
+	VCXLOGLO2("CIptvSettingsDatabaseTest::Checking path: %S", &tempPath);
+	CheckPath( tempPath );
+
+	if( iDatabaseFilename.Compare(_L("Badname") ) == 0)
+		{
+		VCXLOGLO1("CIptvSettingsDatabaseTest::CreateL: Using bad filename");
+		TBuf<256> tempFileName;
+		tempFileName.Append( iDriveLetter );
+		tempFileName.Append( KSettingsDatabaseTestBadFilename );
+		VCXLOGLO2("CIptvSettingsDatabaseTest::CreateL filename: %S", &tempFileName);
+	    TRAP( err, iDatabase = CIptvSettingsDatabase::NewL( tempFileName ));
+		}
+	else
+		{
+		TBuf<256> tempFileName;
+		tempFileName.Format( KSettingsDatabaseTestFileName, &iDriveLetter, &iDatabaseFilename );
+		VCXLOGLO2("CIptvSettingsDatabaseTest::CreateL filename: %S", &tempFileName);
+		PrepareFile( tempFileName );
+	  TRAP( err, iDatabase = CIptvSettingsDatabase::NewL( tempFileName ) )
+		}
+
+	if( err != KErrNone )
+		{
+		VCXLOGLO2("CIptvSettingsDatabaseTest::CreateL: creating instance failed! error %d", err);
+		}
+
+    VCXLOGLO1("<<<CIptvSettingsDatabaseTest::CreateL");
+    return err;
+
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvServiceTest::DestroyServiceL
+// DestroyServiceL test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CIptvSettingsDatabaseTest::DestroyL( CStifItemParser& /* aItem */ )
+    {
+    VCXLOGLO1(">>>CIptvSettingsDatabaseTest::DestroyL");
+    // Print to UI
+    _LIT( KIptvSettingsDatabaseTest, "IptvSettingsDatabaseTest" );
+    _LIT( KWhere, "In DestroyL" );
+    TestModuleIf().Printf( 0, KIptvSettingsDatabaseTest, KWhere );
+    // Print to log file
+    iLog->Log( KWhere );
+
+    TInt err = KErrNone;
+
+	if(iDatabase)
+		{
+		delete iDatabase;
+		iDatabase = NULL;
+		}
+
+	VCXLOGLO1("<<<CIptvSettingsDatabaseTest::DestroyL");
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvSettingsDatabaseTest::SetSettingsL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CIptvSettingsDatabaseTest::TestSettingsL( CStifItemParser& aItem )
+    {
+
+    // Print to UI
+    _LIT( KIptvSettingsDatabaseTest, "IptvSettingsDatabaseTest" );
+    _LIT( KWhere, "In TestSettings" );
+    TestModuleIf().Printf( 0, KIptvSettingsDatabaseTest, KWhere );
+    // Print to log file
+    iLog->Log( KWhere );
+
+    VCXLOGLO1(">>>CIptvSettingsDatabaseTest::TestSettings");
+
+    TInt iParentalControl;
+    if ( aItem.GetNextInt( iParentalControl ) != KErrNone )
+    	{
+    	iParentalControl = KMaxTInt;
+    	}
+
+    TInt iRecordingTimeReserve;
+    if ( !aItem.GetNextInt( iRecordingTimeReserve ) != KErrNone )
+    	{
+    	iRecordingTimeReserve = KMaxTInt;
+    	}
+
+    TInt iReminderTime;
+    if( !aItem.GetNextInt( iReminderTime ) != KErrNone )
+    	{
+    	iReminderTime = KMaxTInt;
+    	}
+
+    iSettings.iParentalControl = iParentalControl;
+    iSettings.iRecordingTimeReserve = iRecordingTimeReserve;
+    iSettings.iReminderTime = iReminderTime;
+    iSettings.iLastUsedServiceId = 0;
+    iSettings.iLastUsedChannelId = 0;
+
+    iDatabase->SaveSettingsL( iSettings );
+
+    TIptvLiveUISettings iReceivedSettings;
+    iDatabase->ReadSettingsL( iReceivedSettings );
+
+    if( (iReceivedSettings.iParentalControl != iSettings.iParentalControl) &&
+    	(iReceivedSettings.iRecordingTimeReserve != iSettings.iRecordingTimeReserve) &&
+    	(iReceivedSettings.iReminderTime != iSettings.iReminderTime) &&
+    	(iReceivedSettings.iLastUsedServiceId != iSettings.iLastUsedServiceId) &&
+    	(iReceivedSettings.iLastUsedChannelId != iSettings.iLastUsedChannelId)
+    	)
+    {
+		VCXLOGLO1("CIptvSettingsDatabaseTest::TestSettingsL: settings do not match!");
+		VCXLOGLO1("<<<CIptvSettingsDatabaseTest::TestSettingsL");
+		return KErrArgument;
+    }
+
+    VCXLOGLO1("<<<CIptvSettingsDatabaseTest::TestSettingsL");
+    return KErrNone;
+
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvSettingsDatabaseTest::TestLastUsageL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CIptvSettingsDatabaseTest::TestLastUsageL( CStifItemParser& /* aItem */ )
+    {
+    // Print to UI
+    _LIT( KIptvSettingsDatabaseTest, "IptvSettingsDatabaseTest" );
+    _LIT( KWhere, "In SetSettings" );
+    TestModuleIf().Printf( 0, KIptvSettingsDatabaseTest, KWhere );
+    // Print to log file
+    iLog->Log( KWhere );
+
+    VCXLOGLO1(">>>CIptvSettingsDatabaseTest::TestLastUsageL");
+
+    iDatabase->SaveLastUsageL( iSettings );
+
+    TIptvLiveUISettings iReceivedSettings;
+    iDatabase->ReadLastUsageL( iReceivedSettings );
+
+    if( (iReceivedSettings.iParentalControl != iSettings.iParentalControl) &&
+    	(iReceivedSettings.iRecordingTimeReserve != iSettings.iRecordingTimeReserve) &&
+    	(iReceivedSettings.iReminderTime != iSettings.iReminderTime) &&
+    	(iReceivedSettings.iLastUsedServiceId != iSettings.iLastUsedServiceId) &&
+    	(iReceivedSettings.iLastUsedChannelId != iSettings.iLastUsedChannelId)
+    	)
+    {
+		VCXLOGLO1("CIptvSettingsDatabaseTest::TestLastUsageL: settings do not match!");
+		VCXLOGLO1("<<<CIptvSettingsDatabaseTest::TestLastUsageL");
+		return KErrArgument;
+    }
+
+    VCXLOGLO1("<<<CIptvSettingsDatabaseTest::TestLastUsageL");
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvSettingsDatabaseTest::PrepareFile
+//
+// -----------------------------------------------------------------------------
+//
+TInt CIptvSettingsDatabaseTest::PrepareFile( const TDesC &aFileName )
+	{
+	RFs iFs;
+	iFs.Connect();
+
+	VCXLOGLO2("CIptvSettingsDatabaseTest::PrepareFile: File exists: %S", &aFileName);
+	TRAPD( error, iFs.Delete( aFileName ) );
+
+	iFs.Close();
+
+	return error;
+	}
+
+// -----------------------------------------------------------------------------
+// CIptvSettingsDatabaseTest::CheckPath
+//
+// -----------------------------------------------------------------------------
+//
+TInt CIptvSettingsDatabaseTest::CheckPath( const TDesC &aPath )
+	{
+	RFs iFs;
+	iFs.Connect();
+
+	TRAPD( error, BaflUtils::EnsurePathExistsL( iFs, aPath ) );
+
+	iFs.Close();
+
+	return error;
+	}
+
+
+// -----------------------------------------------------------------------------
+// CIptvSettingsDatabaseTest::?member_function
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+/*
+TInt CIptvSettingsDatabaseTest::?member_function(
+   CItemParser& aItem )
+   {
+
+   ?code
+
+   }
+*/
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+// None
+
+//  End of File