/*
* 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