diff -r 7fdc9a71d314 -r 8ad140f3dd41 stif/TestEngine/src/STIFTestFrameworkSettings.cpp --- /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