stif/TestEngine/src/STIFTestFrameworkSettings.cpp
branchRCL_3
changeset 59 8ad140f3dd41
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stif/TestEngine/src/STIFTestFrameworkSettings.cpp	Wed Oct 13 16:17:58 2010 +0300
@@ -0,0 +1,672 @@
+/*
+* 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 "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 module contains implementation of 
+* CSTIFTestFrameworkSettings class member functions.
+*
+*/
+
+// INCLUDE FILES
+#include "STIFTestFrameworkSettings.h"
+#include "TestReport.h"
+
+// EXTERNAL DATA STRUCTURES
+// None
+
+// EXTERNAL FUNCTION PROTOTYPES  
+// None
+
+// CONSTANTS
+// None
+
+// MACROS
+// None
+
+// LOCAL CONSTANTS AND MACROS
+// None
+
+// MODULE DATA STRUCTURES
+// None
+
+// LOCAL FUNCTION PROTOTYPES
+// None
+
+// FORWARD DECLARATIONS
+// None
+
+// ==================== LOCAL FUNCTIONS =======================================
+// None
+
+// ================= MEMBER FUNCTIONS =========================================
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CSTIFTestFrameworkSettings
+
+    Method: CSTIFTestFrameworkSettings
+
+    Description: Default constructor
+
+    C++ default constructor can NOT contain any code, that
+    might leave.
+
+    Parameters: None
+    
+    Return Values: None
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+CSTIFTestFrameworkSettings::CSTIFTestFrameworkSettings()
+    {
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CSTIFTestFrameworkSettings
+
+    Method: ConstructL
+
+    Description: Symbian OS second phase constructor
+
+    Symbian OS default constructor can leave.
+
+    Parameters: None
+
+    Return Values: None
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+void CSTIFTestFrameworkSettings::ConstructL()
+    {
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CSTIFTestFrameworkSettings
+
+    Method: NewL
+
+    Description: Two-phased constructor.
+
+    Parameters: None
+
+    Return Values: CSTIFTestFrameworkSettings*: pointer to 
+                                                CSTIFTestFrameworkSettings
+                                                object
+
+    Errors/Exceptions: None 
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+EXPORT_C CSTIFTestFrameworkSettings* CSTIFTestFrameworkSettings::NewL()
+    {
+    CSTIFTestFrameworkSettings* self = 
+                        new ( ELeave ) CSTIFTestFrameworkSettings();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+    return self;
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CSTIFTestFrameworkSettings
+
+    Method: ~CSTIFTestFrameworkSettings
+
+    Description: Destructor
+
+    Parameters: None
+
+    Return Values: None
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+EXPORT_C CSTIFTestFrameworkSettings::~CSTIFTestFrameworkSettings()
+    {
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CSTIFTestFrameworkSettings
+
+    Method: GetReportModeL
+
+    Description: Get report mode settings
+
+    Parameters: CStifSectionParser* aSectionParser: in: CStifSectionParser
+                object.
+                TPtrC aTag: in: Tag to setting to be found.
+                TUint& aSetting: inout: Parsed setting.
+
+    Return Values: TInt: Error code
+
+    Errors/Exceptions: Leaves is memory allocation fails
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+EXPORT_C TInt CSTIFTestFrameworkSettings::GetReportModeL( 
+                                        CStifSectionParser* aSectionParser,
+                                        TPtrC aTag,
+                                        TUint& aSetting )
+    {
+    TPtrC string;
+
+    CStifItemParser* item = NULL;
+    TRAPD( ret, item = aSectionParser->GetItemLineL( aTag, ENoTag ) );
+    if( ret != KErrNone )
+        {
+        delete item;
+        return ret;
+        }
+    if( !item )
+        {
+        delete item;
+        return KErrNotFound;
+        }
+    else
+        {
+        ret = item->GetString( _L( "" ), string );
+        while( ret == KErrNone )
+            {
+            HBufC* stringHbuf = string.AllocL();
+            TPtr modifiableString = stringHbuf->Des();
+            modifiableString.UpperCase();
+
+            if( modifiableString == _L( "EMPTY" ) )
+                {
+                // No test report
+                aSetting = CTestReport::ETestReportBlank;
+                }
+            else if( modifiableString == _L( "SUMMARY" ) )
+                {
+                // Increment aSetting
+                aSetting += CTestReport::ETestReportSummary;
+                }
+            else if( modifiableString == _L( "ENVIRONMENT" ) )
+                {
+                // Increment aSetting
+                aSetting += CTestReport::ETestReportEnvironment;
+                }
+            else if( modifiableString == _L( "TESTCASES" ) )
+                {
+                // Increment aSetting
+                aSetting += CTestReport::ETestReportCases;
+                }
+            else if( modifiableString == _L( "FULLREPORT" ) )
+                {
+                // Set aSettings to max value and break
+                aSetting = CTestReport::ETestReportFull;
+                delete stringHbuf;
+                break;
+                }
+            else if( modifiableString == _L( "#" ) )
+                {
+                delete stringHbuf;
+                break;
+                }
+            else
+                {
+                delete stringHbuf;
+                delete item;
+                return KErrArgument;
+                }
+            delete stringHbuf;
+            ret = item->GetNextString( string );
+            }
+        }
+
+    delete item;
+
+    return KErrNone;
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CSTIFTestFrameworkSettings
+
+    Method: GetFileSetting
+
+    Description: Get file settings
+
+    Parameters: CStifSectionParser* aSectionParser: in: CStifSectionParser
+                object.
+                TPtrC aTag: in: Tag to setting to be found.
+                TPtrC& aFilePath: inout: Test file setting.
+
+    Return Values: TInt: Error code
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+EXPORT_C TInt CSTIFTestFrameworkSettings::GetFileSetting( 
+                                        CStifSectionParser* aSectionParser,
+                                        TPtrC aTag,
+                                        TPtrC& aSetting )
+    {
+    CStifItemParser* item = NULL;
+    TRAPD( ret, item = aSectionParser->GetItemLineL( 
+                                            aTag,
+                                            ENoTag ) );
+    if( ret != KErrNone )
+        {
+        delete item;
+        return ret;
+        }
+    if( !item )
+        {
+        delete item;
+        return KErrNotFound;
+        }
+    else
+        {
+        ret = item->GetString( _L( "" ), aSetting );
+        }
+
+    delete item;
+
+    return ret;
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CSTIFTestFrameworkSettings
+
+    Method: GetFormatL
+
+    Description: Get Test report format settings
+
+    Parameters: CStifSectionParser* aSectionParser: in: CStifSectionParser
+                object.
+                TPtrC aTag: in: Tag to setting to be found.
+                CStifLogger::TLoggerType& aLoggerType: inout: Test report type
+                setting.
+
+    Return Values: TInt: Error code
+
+    Errors/Exceptions: Leaves is memory allocation fails
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+EXPORT_C TInt CSTIFTestFrameworkSettings::GetFormatL( 
+                                        CStifSectionParser* aSectionParser,
+                                        TPtrC aTag, 
+                                        CStifLogger::TLoggerType& aLoggerType )
+    {
+    TBool xml;
+    return GetFormatL(aSectionParser, aTag, aLoggerType, xml);
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CSTIFTestFrameworkSettings
+
+    Method: GetFormatL
+
+    Description: Get Test report format settings
+
+    Parameters: CStifSectionParser* aSectionParser: in: CStifSectionParser
+                object.
+                TPtrC aTag: in: Tag to setting to be found.
+                CStifLogger::TLoggerType& aLoggerType: inout: Test report type setting.
+                TBool& aXML: inout: true if xml format is set
+
+    Return Values: TInt: Error code
+
+    Errors/Exceptions: Leaves is memory allocation fails
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+EXPORT_C TInt CSTIFTestFrameworkSettings::GetFormatL( 
+                                        CStifSectionParser* aSectionParser,
+                                        TPtrC aTag, 
+                                        CStifLogger::TLoggerType& aLoggerType,
+                                        TBool& aXML )
+    {
+    aXML = EFalse;
+    CStifItemParser* item = NULL;
+    TRAPD( ret, item = aSectionParser->GetItemLineL( aTag, ENoTag ) );
+
+    TPtrC string;
+
+    if( ret != KErrNone )
+        {
+        delete item;
+        return ret;
+        }
+    if( !item )
+        {
+        delete item;
+        return KErrNotFound;
+        }
+    else
+        {
+        ret = item->GetString( _L( "" ), string );
+        if ( ret != KErrNone )
+            {
+            delete item;
+            return ret;
+            }
+        }
+
+    HBufC* stringHbuf = string.AllocL();
+    TPtr modifiableString = stringHbuf->Des();
+    modifiableString.UpperCase();
+
+    if( modifiableString == _L( "TXT" ) )
+        {
+        aLoggerType = CStifLogger::ETxt;
+        }
+    else if( modifiableString == _L( "HTML" ) )
+        {
+        aLoggerType = CStifLogger::EHtml;
+        }
+    else if( modifiableString == _L( "DATA" ) )
+        {
+        aLoggerType = CStifLogger::EData;
+        }
+    else if( modifiableString == _L( "XML" ) )
+        {
+        aLoggerType = CStifLogger::ETxt;
+        aXML = ETrue;
+        }
+    else
+        {
+        delete stringHbuf;
+        delete item;
+        return KErrArgument;
+        }
+
+    delete stringHbuf;
+    delete item;
+
+    return KErrNone;
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CSTIFTestFrameworkSettings
+
+    Method: GetOutputL
+
+    Description: Get Test report output settings
+
+    Parameters: CStifSectionParser* aSectionParser: in: CStifSectionParser
+                object.
+                TPtrC aTag: in: Tag to setting to be found.
+                CStifLogger::TOutput& aOutput: inout: Test report output setting.
+
+    Return Values: TInt: Error code
+
+    Errors/Exceptions: Leaves is memory allocation fails
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+EXPORT_C TInt CSTIFTestFrameworkSettings::GetOutputL( 
+                                        CStifSectionParser* aSectionParser,
+                                        TPtrC aTag,
+                                        CStifLogger::TOutput& aOutput )
+    {
+    CStifItemParser* item = NULL;
+    TRAPD( ret, item = aSectionParser->GetItemLineL( aTag, ENoTag ) );
+
+    TPtrC string;
+
+    if( ret != KErrNone )
+        {
+        delete item;
+        return ret;
+        }
+    if( !item )
+        {
+        delete item;
+        return KErrNotFound;
+        }
+    else
+        {
+        ret = item->GetString( _L( "" ), string );
+        if ( ret != KErrNone )
+            {
+            delete item;
+            return ret;
+            }
+        }
+
+    HBufC* stringHbuf = string.AllocL();
+    TPtr modifiableString = stringHbuf->Des();
+    modifiableString.UpperCase();
+
+    if( modifiableString == _L( "FILE" ) )
+        {
+        aOutput = CStifLogger::EFile;
+        }
+    else if( modifiableString == _L( "RDEBUG" ) )
+        {
+        aOutput = CStifLogger::ERDebug;
+        }
+    else
+        {
+        delete stringHbuf;
+        delete item;
+        return KErrArgument;
+        }
+
+    delete stringHbuf;
+    delete item;
+
+    return KErrNone;
+
+    }
+
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CSTIFTestFrameworkSettings
+
+    Method: GetBooleanSettingsL
+
+    Description: Get boolean type of settings
+
+    Parameters: CStifSectionParser* aSectionParser: in: CStifSectionParser
+                object.
+                TPtrC aTag: in: Tag to setting to be found.
+                TBool& aSetting: inout: Parsed setting.
+
+    Return Values: TInt: Error code
+
+    Errors/Exceptions: Leaves is memory allocation fails
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+EXPORT_C TInt CSTIFTestFrameworkSettings::GetBooleanSettingsL( 
+                                        CStifSectionParser* aSectionParser,
+                                        TPtrC aTag,
+                                        TBool& aSetting )
+    {
+    TPtrC string;
+
+    CStifItemParser* item = NULL;
+    TRAPD( ret, item = aSectionParser->GetItemLineL( aTag, ENoTag ) );
+    if( ret != KErrNone )
+        {
+        delete item;
+        return ret;
+        }
+    if( !item )
+        {
+        delete item;
+        return KErrNotFound;
+        }
+    else
+        {
+        ret = item->GetString( _L( "" ), string );
+        if( ret != KErrNone )
+            {
+            delete item;
+            return ret;
+            }
+
+        HBufC* stringHbuf = string.AllocL();
+        TPtr modifiableString = stringHbuf->Des();
+        modifiableString.UpperCase();
+
+        // Parsed parameter is false
+        if( modifiableString == _L( "NO" ) )
+            {
+            aSetting = EFalse;
+            }
+        // Parsed parameter is true
+        else if( modifiableString == _L( "YES" ) )
+            {
+            aSetting = ETrue;
+            }
+        else
+            {
+            delete stringHbuf;
+            delete item;
+            return KErrArgument;
+            }
+        delete stringHbuf;
+        }
+
+    delete item;
+
+    return KErrNone;
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CSTIFTestFrameworkSettings
+
+    Method: GetOverwriteL
+
+    Description: Get Test report file creation mode settings
+                 (overwrite settings)
+
+    Parameters: CStifSectionParser* aSectionParser: in: CStifSectionParser
+                object.
+                TPtrC aTag: in: Tag to setting to be found.
+                TBool& aOverwrite: inout: Overwrite setting.
+
+    Return Values: TInt: Error code
+
+    Errors/Exceptions: Leaves is memory allocation fails
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+EXPORT_C TInt CSTIFTestFrameworkSettings::GetOverwriteL( 
+                                        CStifSectionParser* aSectionParser,
+                                        TPtrC aTag,
+                                        TBool& aOverwrite )
+    {
+    CStifItemParser* item = NULL;
+    TRAPD( ret, item = aSectionParser->GetItemLineL( aTag, ENoTag ) );
+    if( ret != KErrNone )
+        {
+        delete item;
+        return ret;
+        }
+    if( !item )
+        {
+        delete item;
+        return KErrNotFound;
+        }
+    else
+        {
+        TPtrC string;
+        ret = item->GetString( _L( "" ), string );
+        if( ret != KErrNone )
+            {
+            delete item;
+            return ret;
+            }
+
+        HBufC* stringHbuf = string.AllocL();
+        TPtr modifiableString = stringHbuf->Des();
+        modifiableString.UpperCase();
+
+        if( modifiableString == _L( "APPEND" ) )
+            {
+            aOverwrite = EFalse;
+            }
+        else if( modifiableString == _L( "OVERWRITE") )
+            {
+            aOverwrite = ETrue;
+            }
+        else
+            {
+            delete stringHbuf;
+            delete item;
+            return KErrArgument;
+            }
+        delete stringHbuf;
+        }
+
+    delete item;
+
+    return KErrNone;
+
+    }
+
+// ================= OTHER EXPORTED FUNCTIONS =================================
+// None
+
+// End of File