common/tools/ats/smoketest/graphics/fntstore/src/T_DataBitmapFont.cpp
changeset 833 6ffc235847d0
child 872 17498133d9ad
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/tools/ats/smoketest/graphics/fntstore/src/T_DataBitmapFont.cpp	Fri Dec 18 14:46:04 2009 +0000
@@ -0,0 +1,911 @@
+/*
+* Copyright (c) 2005-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 "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+/**
+@test
+@internalComponent
+
+This contains CT_DataBitmapFont
+*/
+
+#include "T_DataBitmapFont.h"
+#include "T_GraphicsUtil.h"
+
+/*@{*/
+/// Parameters
+_LIT(KFldExpected,								"expected");
+_LIT(KFldCode,									"code");
+_LIT(KFldIsNull,								"isnull");
+_LIT(KFldSessHandle,							"handle");
+_LIT(KFldGlyphBitmapType,						"glyphtype");
+
+_LIT(KFldCharMetrics,							"charmetrics");
+_LIT(KFldOFCharMetrics,							"ofcharmetrics");
+_LIT(KFldOFFaceAttrib,							"offaceattrib");
+_LIT(KFldOFMetrics,								"ofmetrics");
+
+
+/// Commands
+_LIT(KCmdBitmapEncoding,						"BitmapEncoding");
+_LIT(KCmdCharacterMetrics,						"CharacterMetrics");
+_LIT(KCmdCharacterNeedsToBeRasterized,			"CharacterNeedsToBeRasterized");
+_LIT(KCmdGetCharacterData,						"GetCharacterData");
+_LIT(KCmdGetFaceAttrib,							"GetFaceAttrib");
+_LIT(KCmdGetFontMetrics,						"GetFontMetrics");
+_LIT(KCmdGlyphBitmapType,						"GlyphBitmapType");
+_LIT(KCmdHasCharacterL,							"HasCharacterL");
+_LIT(KCmdIsOpenFont,							"IsOpenFont");
+_LIT(KCmdOpenFont,								"OpenFont");
+_LIT(KCmdRasterize,								"Rasterize");
+//_LIT(KCmdUniqueFontId,							"UniqueFontId");
+
+///	Constant Literals
+_LIT(KTagCharMetricsAscent,						"ascent");
+_LIT(KTagCharMetricsHeight,						"height");
+_LIT(KTagCharMetricsMove,						"move");
+_LIT(KTagCharMetricsLeftAdjust,					"leftadjust");
+_LIT(KTagCharMetricsRightAdjust,				"rightadjust");
+
+_LIT(KTagOFCharMetricsHeight,					"height");
+_LIT(KTagOFCharMetricsWidth,				"width");
+
+_LIT(KTagOFFaceAttribFamilyName,				"familyname");
+_LIT(KTagOFFaceAttribMinSize,					"minsize");
+
+_LIT(KTagOFMetricsMaxHeight,					"maxheight");
+_LIT(KTagOFMetricsSize,							"size");
+
+_LIT(KFormatEntryField,		"%S_%S");
+
+/// Logging
+_LIT(KLogError,									"Error=%d");
+_LIT(KLogMissingParameter,						"Missing parameter '%S'");
+_LIT(KLogMissingExpectedValue,					"Missing expected value '%S'");
+_LIT(KLogNotExpectedValueInt,					"'%S' is not as expected=%d, actual=%d");
+_LIT(KLogNotExpectedValueString,				"'%S' is not as expected='%S', actual='%S'");
+
+/*@}*/
+
+
+/**
+* Two phase constructor
+*/
+CT_DataBitmapFont* CT_DataBitmapFont::NewL()
+	{
+	CT_DataBitmapFont* ret = new (ELeave) CT_DataBitmapFont();
+	return ret;
+	}
+
+
+/**
+* Protected constructor. First phase construction
+*/
+CT_DataBitmapFont::CT_DataBitmapFont()
+:	CT_DataFont(), iBitmapFont(NULL)
+	{
+	}
+
+TAny* CT_DataBitmapFont::GetObject()
+	{
+	return iBitmapFont;
+	}
+
+void CT_DataBitmapFont::SetObjectL(TAny* aObject)
+	{
+	iBitmapFont	= static_cast<CBitmapFont*> (aObject);
+	}
+		
+void CT_DataBitmapFont::DisownObjectL() 
+	{
+	iBitmapFont = NULL;
+	}
+
+CFont* CT_DataBitmapFont::GetFont() const
+	{
+	return iBitmapFont;
+	}
+
+/**
+* Process a command read from the ini file
+*
+* @param aDataWrapper	test step requiring command to be processed
+* @param aCommand	the command to process
+* @param aSection		the entry in the ini file requiring the command to be processed
+*
+* @return ETrue if the command is processed
+*/
+TBool CT_DataBitmapFont::DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt aAsyncErrorIndex)
+	{
+	TBool ret = ETrue;
+
+	if (aCommand == KCmdBitmapEncoding)
+		{
+		DoCmdBitmapEncoding(aSection);
+		}
+	else if (aCommand == KCmdCharacterMetrics)
+		{
+		DoCmdCharacterMetrics(aSection);
+		}
+	else if (aCommand == KCmdCharacterNeedsToBeRasterized)
+		{
+		DoCmdCharacterNeedsToBeRasterized(aSection);
+		}
+	else if (aCommand == KCmdGetCharacterData)
+		{
+		DoCmdGetCharacterData(aSection);
+		}
+	else if (aCommand == KCmdGetFaceAttrib)
+		{
+		DoCmdGetFaceAttrib(aSection);
+		}
+	else if (aCommand == KCmdGetFontMetrics)
+		{
+		DoCmdGetFontMetrics(aSection);
+		}
+	else if (aCommand == KCmdGlyphBitmapType)
+		{
+		DoCmdGlyphBitmapType(aSection);
+		}
+	else if (aCommand == KCmdHasCharacterL)
+		{
+		DoCmdHasCharacterL(aSection);
+		}
+	else if (aCommand == KCmdIsOpenFont)
+		{
+		DoCmdIsOpenFont(aSection);
+		}
+	else if (aCommand == KCmdOpenFont)
+		{
+		DoCmdOpenFont(aSection);
+		}
+	else if (aCommand == KCmdRasterize)
+		{
+		DoCmdRasterize(aSection);
+		}
+//	else if (aCommand == KCmdUniqueFontId)
+//		{
+//		DoCmdUniqueFontId(aSection);
+//		}
+	else
+		{
+		ret = CT_DataFont::DoCommandL(aCommand, aSection, aAsyncErrorIndex);
+		}
+
+	return ret;
+	}
+
+////////////////// COMMANDS IMPLEMENTATION  ////////////////////////
+
+/** Calls CBitmapFont::DoCmdBitmapEncoding() */
+void CT_DataBitmapFont::DoCmdBitmapEncoding(const TDesC& aSection)
+	{
+	INFO_PRINTF1(_L("Calls CBitmapFont::BitmapEncoding()"));
+	TInt ret = iBitmapFont->BitmapEncoding();
+	INFO_PRINTF2(_L("The actual bitmap encoding value is %d"), ret);
+	
+	TInt expected;
+	if( GetIntFromConfig(aSection, KFldExpected, expected) )
+		{
+		if (ret != expected)
+			{
+			ERR_PRINTF4(KLogNotExpectedValueInt, &KFldExpected, ret, expected);
+			SetBlockResult(EFail);
+			}
+		}
+	}
+
+void CT_DataBitmapFont::DoCmdCharacterMetrics(const TDesC& aSection)
+	{
+	TInt code;
+	if( !GetIntFromConfig(aSection, KFldCode, code) )
+		{
+		ERR_PRINTF2(KLogMissingParameter, &KFldCode);
+		SetBlockResult(EFail);
+		}
+	else
+		{
+		INFO_PRINTF1(_L("Calls CBitmapFont::CharacterMetrics(TInt, const TUint8*&)"));
+		TCharacterMetrics metrics;
+		const TUint8* ptr;
+		metrics= iBitmapFont->CharacterMetrics(code, ptr);
+		TBool failed = EFalse;
+		
+		TBool isNull;
+		if( GetBoolFromConfig(aSection, KFldIsNull, isNull) )
+			{
+			if(isNull)
+				{
+				if(ptr != NULL)
+					{
+					ERR_PRINTF1(_L("Should return a NULL pointer") );
+					failed = ETrue;
+					}
+				else
+					{
+					INFO_PRINTF1(_L("A NULL pointer is returned"));
+
+					}
+				}
+			else
+				{
+				if(ptr == NULL)
+					{
+					ERR_PRINTF1(_L("Should return a pointer to the character bitmap") );
+					failed = ETrue;
+					}
+				else
+					{
+					INFO_PRINTF1(_L("A pointer to the character bitmap is returned") );
+					}
+				}
+			}
+
+		TCharacterMetrics expected;
+		if( GetCharacterMetricsFromConfig(*this, aSection, KFldCharMetrics, expected) )
+			{
+			if(metrics.iAscentInPixels != expected.iAscentInPixels)
+				{
+				
+				ERR_PRINTF4(KLogNotExpectedValueInt, &KTagCharMetricsAscent, expected.iAscentInPixels, metrics.iAscentInPixels);
+				failed = ETrue;
+				}
+			if(metrics.iHeightInPixels != expected.iHeightInPixels)
+				{
+				ERR_PRINTF4(KLogNotExpectedValueInt, &KTagCharMetricsHeight, expected.iHeightInPixels, metrics.iHeightInPixels);
+				failed = ETrue;
+				}
+			if(metrics.iMoveInPixels != expected.iMoveInPixels)
+				{				
+				ERR_PRINTF4(KLogNotExpectedValueInt, &KTagCharMetricsMove, expected.iMoveInPixels, metrics.iMoveInPixels);	
+				failed = ETrue;
+				}
+			if(metrics.iLeftAdjustInPixels != expected.iLeftAdjustInPixels)
+				{
+				ERR_PRINTF4(KLogNotExpectedValueInt, &KTagCharMetricsLeftAdjust, expected.iLeftAdjustInPixels, metrics.iLeftAdjustInPixels);	
+				failed = ETrue;
+				}
+			if(metrics.iRightAdjustInPixels != expected.iRightAdjustInPixels)
+				{
+				ERR_PRINTF4(KLogNotExpectedValueInt, &KTagCharMetricsRightAdjust, expected.iRightAdjustInPixels, metrics.iRightAdjustInPixels);
+				failed = ETrue;
+				}
+			}
+		
+		if(failed)
+			{
+			SetBlockResult(EFail);
+			}
+		else
+			{
+			INFO_PRINTF1(_L("Character metrics is expected."));
+			}
+		}
+	}
+
+void CT_DataBitmapFont::CT_DataBitmapFont::DoCmdCharacterNeedsToBeRasterized(const TDesC& aSection)
+	{
+	TBool dataOK = ETrue;
+	
+	TInt handle;
+	if( !GetIntFromConfig(aSection, KFldSessHandle, handle) )
+		{
+		ERR_PRINTF2(KLogMissingParameter, &KFldSessHandle);
+		dataOK = EFalse;
+		}
+	
+	TInt code;
+	if( !GetIntFromConfig(aSection, KFldCode, code) )
+		{
+		ERR_PRINTF2(KLogMissingParameter, &KFldCode);
+		dataOK = EFalse;
+		}
+	
+	if(!dataOK)
+		{
+		SetBlockResult(EFail);
+		}
+	else
+		{
+		INFO_PRINTF1(_L("Calls CBitmapFont::CharacterNeedsToBeRasterized(TInt, TInt)"));
+		TBool ret = iBitmapFont->CharacterNeedsToBeRasterized(handle, code);
+		
+		TBool expected;
+		if( GetBoolFromConfig(aSection, KFldExpected, expected) )
+			{
+			if(ret)
+				{
+				if(!expected)
+					{
+					ERR_PRINTF1(_L("Return value is not as expected: EFalse, actual: ETrue"));
+					SetBlockResult(EFail);
+					}
+				else
+					{
+					INFO_PRINTF1(_L("Return value is ETrue"));	
+					}
+				}
+			else
+				{
+				if(expected)
+					{
+					ERR_PRINTF1(_L("Return value is not as expected: ETrue, actual: EFalse"));
+					SetBlockResult(EFail);
+					}
+				else
+					{
+					INFO_PRINTF1(_L("Return value is EFalse"));
+					}
+				}
+			}
+		}
+	}
+
+
+void CT_DataBitmapFont::DoCmdGetCharacterData(const TDesC& aSection)
+	{
+	TBool dataOK = ETrue;
+	
+	TInt handle;
+	if( !GetIntFromConfig(aSection, KFldSessHandle, handle) )
+		{
+		ERR_PRINTF2(KLogMissingParameter, &KFldSessHandle);		
+		dataOK = EFalse;
+		}
+	
+	TInt code;	
+	if( !GetIntFromConfig(aSection, KFldCode, code) )
+		{
+		ERR_PRINTF2(KLogMissingParameter, &KFldCode);
+		dataOK = EFalse;
+		}
+	
+	if(!dataOK)
+		{
+		SetBlockResult(EFail);
+		}
+	else
+		{
+		INFO_PRINTF1(_L("Calls CBitmapFont::GetCharacterData(TInt aSessionHandle, TInt aCode, TOpenFontCharMetrics &aMetrics, const TUint8 *&aBitmap)"));
+		TOpenFontCharMetrics metrics;
+		const TUint8* ptr;
+		TBool ret = iBitmapFont->GetCharacterData(handle, code, metrics, ptr);		
+		
+		TBool expected;
+		if( GetBoolFromConfig(aSection, KFldExpected, expected) )
+			{
+			if(ret)
+				{
+				if(!expected)
+					{
+					ERR_PRINTF1(_L("Return value is not as expected: EFalse, actual: ETrue"));
+					SetBlockResult(EFail);
+					}
+				else
+					{
+					INFO_PRINTF1(_L("Return value is ETrue"));
+										
+					TBool isNull;
+					if( GetBoolFromConfig(aSection, KFldIsNull, isNull) )
+						{
+						if(isNull)
+							{
+							if(ptr != NULL)
+								{
+								ERR_PRINTF1(_L("Should return a NULL pointer") );
+								SetBlockResult(EFail);
+								}
+							else
+								{
+								INFO_PRINTF1(_L("A NULL pointer is returned") );
+								}
+							}
+						else
+							{
+							if(ptr == NULL)
+								{
+								ERR_PRINTF1(_L("Should return a pointer to the character bitmap.") );
+								SetBlockResult(EFail);
+								}
+							else
+								{
+								INFO_PRINTF1(_L("a pointer to the character bitmap is returned") );
+								}
+							}
+						}					
+					
+					TBool failed = EFalse;
+					TOpenFontCharMetrics expectedMetrics;
+					if( GetOpenFontCharMetricsFromConfig(*this, aSection, KFldOFCharMetrics, expectedMetrics) )
+						{
+						if(metrics.Width() != expectedMetrics.Width())
+							{
+							ERR_PRINTF4(KLogNotExpectedValueInt, &KTagOFCharMetricsWidth, metrics.Width(), expectedMetrics.Width());
+							failed = ETrue;
+							}			
+						if(metrics.Height() != expectedMetrics.Height())
+							{
+							ERR_PRINTF4(KLogNotExpectedValueInt, &KTagOFCharMetricsHeight, metrics.Height(), expectedMetrics.Height());
+							failed = ETrue;
+							}
+						
+						if(failed)
+							{
+							SetBlockResult(EFail);
+							}
+						else
+							{
+							INFO_PRINTF1(_L("Open font character metrics is expected"));
+							}
+						}
+					}
+				}
+			else
+				{
+				if(expected)
+					{
+					ERR_PRINTF1(_L("Return value is not as expected: ETrue, actual: EFalse"));
+					SetBlockResult(EFail);
+					}
+				else
+					{
+					INFO_PRINTF1(_L("Return value is EFalse"));
+					}
+				}
+			}
+		}	
+	}
+
+void CT_DataBitmapFont::DoCmdGetFaceAttrib(const TDesC& aSection)
+	{
+	INFO_PRINTF1(_L("Calls CBitmapFont::GetFaceAttrib(TOpenFontFaceAttrib&)"));
+	TOpenFontFaceAttrib attrib;
+	TBool ret = iBitmapFont->GetFaceAttrib(attrib);
+	
+	TBool expected;
+	if( GetBoolFromConfig(aSection, KFldExpected, expected) )
+		{
+		if(ret)
+			{
+			if(!expected)
+				{
+				ERR_PRINTF1(_L("Return value is not as expected: EFalse, actual: ETrue"));
+				SetBlockResult(EFail);
+				}
+			else
+				{
+				INFO_PRINTF1(_L("Return value is ETrue"));
+				TBool failed = EFalse;				
+				TOpenFontFaceAttrib expectedAttrib;
+				if( GetOpenFontFaceAttribFromConfig(*this, aSection, KFldOFFaceAttrib, expectedAttrib) )
+					{
+					TPtrC actualName = attrib.FamilyName();
+					TPtrC expectedName = expectedAttrib.FamilyName();
+					if(actualName != expectedName)
+						{	
+						ERR_PRINTF4(KLogNotExpectedValueString, &KTagOFFaceAttribFamilyName, &expectedName, &actualName);
+						failed = ETrue;
+						}
+					if(attrib.MinSizeInPixels() != expectedAttrib.MinSizeInPixels())
+						{
+						ERR_PRINTF4(KLogNotExpectedValueInt, &KTagOFFaceAttribMinSize, expectedAttrib.MinSizeInPixels(), attrib.MinSizeInPixels());
+						failed = ETrue;
+						}
+					
+					if(failed)
+						{
+						SetBlockResult(EFail);
+						}
+					else
+						{
+						INFO_PRINTF1(_L("Open font typeface attributes is expected"));
+						}
+					}
+				}
+			}
+		else
+			{
+			if(expected)
+				{
+				ERR_PRINTF1(_L("Return value is not as expected: ETrue, actual: EFalse"));
+				SetBlockResult(EFail);
+				}
+			else
+				{
+				INFO_PRINTF1(_L("Return value is EFalse"));
+				}
+			}
+		}
+	}
+
+void CT_DataBitmapFont::DoCmdGetFontMetrics(const TDesC& aSection)
+	{
+	INFO_PRINTF1(_L("Calls CBitmapFont::GetFontMetrics(TOpenFontMetrics&)"));
+	TOpenFontMetrics metrics;
+	iBitmapFont->GetFontMetrics(metrics);
+	
+	TOpenFontMetrics expectedMetrics;
+	if( GetOpenFontMetricsFromConfig(*this, aSection, KFldOFMetrics, expectedMetrics) )
+		{
+		TBool failed = EFalse;
+		if(metrics.MaxHeight() != expectedMetrics.MaxHeight())
+			{
+			ERR_PRINTF4(KLogNotExpectedValueInt, &KTagOFMetricsMaxHeight, expectedMetrics.MaxHeight(), metrics.MaxHeight());
+			failed = ETrue;
+			}
+		if(metrics.Size() != expectedMetrics.Size())
+			{
+			ERR_PRINTF4(KLogNotExpectedValueInt, &KTagOFMetricsSize, expectedMetrics.Size(), metrics.Size());
+			failed = ETrue;
+			}
+		
+		if(failed)
+			{
+			SetBlockResult(EFail);
+			}
+		else
+			{
+			INFO_PRINTF1(_L("Open font metrics is expected"));
+			}
+		}
+	}
+
+void CT_DataBitmapFont::DoCmdGlyphBitmapType(const TDesC& aSection)
+	{
+	INFO_PRINTF1(_L("Calls CBitmapFont::GlyphBitmapType()"));
+	TGlyphBitmapType ret = iBitmapFont->GlyphBitmapType();
+	INFO_PRINTF2(_L("Glyph bitmap type is %d."), (TInt)ret);
+	
+	TGlyphBitmapType expected;
+	if( CT_GraphicsUtil::ReadGlyphBitmapType(*this, aSection, KFldGlyphBitmapType(), expected) )
+		{
+		if(ret != expected)
+			{
+			ERR_PRINTF4(KLogNotExpectedValueInt, &KFldExpected, (TInt)ret, (TInt)expected);
+			SetBlockResult(EFail);
+			}
+		}
+	}
+
+void CT_DataBitmapFont::DoCmdHasCharacterL(const TDesC& aSection)
+	{
+	TInt code;
+	if( !GetIntFromConfig(aSection, KFldCode, code) )
+		{
+		ERR_PRINTF2(KLogMissingParameter, &KFldCode);
+		SetBlockResult(EFail);
+		}
+	else
+		{
+		INFO_PRINTF1(_L("Calls CBitmapFont::HasCharacterL(TInt)"));
+		TBool ret = iBitmapFont->HasCharacterL(code);
+		
+		TBool expected;
+		if( GetBoolFromConfig(aSection, KFldExpected, expected) )
+			{
+			if(ret)
+				{
+				if(!expected)
+					{
+					ERR_PRINTF1(_L("Return value is not as expected: EFalse, actual: ETrue"));
+					SetBlockResult(EFail);
+					}
+				else
+					{
+					INFO_PRINTF1(_L("Return value is ETrue"));
+					}
+				}
+			else
+				{
+				if(expected)
+					{
+					ERR_PRINTF1(_L("Return value is not as expected: ETrue, actual: EFalse"));
+					SetBlockResult(EFail);
+					}
+				else
+					{
+					INFO_PRINTF1(_L("Return value is EFalse"));
+					}
+				}
+			}
+		}
+	}
+
+void CT_DataBitmapFont::DoCmdIsOpenFont(const TDesC& aSection)
+	{
+	INFO_PRINTF1(_L("Calls CBitmapFont::IsOpenFont()"));
+	TBool ret = iBitmapFont->IsOpenFont();
+	
+	TBool expected;
+	if( GetBoolFromConfig(aSection, KFldExpected, expected) )
+		{
+		if(ret)
+			{
+			if(!expected)
+				{
+				ERR_PRINTF1(_L("Return value is not as expected: EFalse, actual: ETrue"));
+				SetBlockResult(EFail);
+				}
+			else
+				{
+				INFO_PRINTF1(_L("Return value is ETrue"));
+				}
+			}
+		else
+			{
+			if(expected)
+				{
+				ERR_PRINTF1(_L("Return value is not as expected: ETrue, actual: EFalse"));
+				SetBlockResult(EFail);
+				}
+			else
+				{
+				INFO_PRINTF1(_L("Return value is EFalse"));
+				}
+			}
+		}
+	}
+
+void CT_DataBitmapFont::DoCmdOpenFont(const TDesC& aSection)
+	{
+	INFO_PRINTF1(_L("Calls CBitmapFont::OpenFont()"));
+	COpenFont* ptr = iBitmapFont->OpenFont();
+	
+	TBool isNull;
+	if( GetBoolFromConfig(aSection, KFldIsNull, isNull) )
+		{
+		if(isNull)
+			{
+			if(ptr != NULL)
+				{
+				ERR_PRINTF1(_L("Should return a NULL pointer") );
+				SetBlockResult(EFail);
+				}
+			else
+				{
+				INFO_PRINTF1(_L("A NULL pointer is returned") );
+				}
+			}
+		else
+			{
+			if(ptr == NULL)
+				{
+				ERR_PRINTF1(_L("Should return a pointer to COpenFont") );
+				SetBlockResult(EFail);
+				}
+			else
+				{
+				INFO_PRINTF1(_L("A pointer to COpenFont is returned") );
+				}
+			}
+		}
+	}
+
+void CT_DataBitmapFont::DoCmdRasterize(const TDesC& aSection)
+	{
+	TBool dataOK = ETrue;
+	
+	TInt handle;
+	if( !GetIntFromConfig(aSection, KFldSessHandle, handle) )
+		{
+		ERR_PRINTF2(KLogMissingParameter, &KFldSessHandle);	
+		dataOK = EFalse;
+		}
+	
+	TInt code;
+	if( !GetIntFromConfig(aSection, KFldCode, code) )
+		{
+		ERR_PRINTF2(KLogMissingParameter, &KFldCode);
+		dataOK = EFalse;
+		}
+	
+	if(!dataOK)
+		{
+		SetBlockResult(EFail);
+		}
+	else
+		{
+		INFO_PRINTF1(_L("Calls CBitmapFont::Rasterize(TInt, TInt, TOpenFontGlyphData*)"));
+		TOpenFontGlyphData* ptr = NULL;
+		TBool ret = iBitmapFont->Rasterize(handle, code, ptr);
+		
+		TBool expected;
+		if( GetBoolFromConfig(aSection, KFldExpected, expected) )
+			{
+			if(ret)
+				{
+				if(!expected)
+					{
+					ERR_PRINTF1(_L("Return value is not as expected: EFalse, actual: ETrue"));
+					SetBlockResult(EFail);
+					}
+				else
+					{
+					// The character was successfully rasterized.
+					INFO_PRINTF1(_L("Return value is ETrue"));	
+					TBool isNull;
+					if( GetBoolFromConfig(aSection, KFldIsNull, isNull) )
+						{
+						if(isNull)
+							{
+							if(ptr != NULL)
+								{
+								ERR_PRINTF1(_L("Should return a NULL pointer") );
+								SetBlockResult(EFail);
+								}
+							else
+								{
+								INFO_PRINTF1(_L("A NULL pointer is returned"));
+								}
+							}
+						else
+							{
+							if(ptr == NULL)
+								{
+								ERR_PRINTF1(_L("Should return a pointer to TOpenFontGlyphData") );
+								SetBlockResult(EFail);
+								}
+							else
+								{
+								INFO_PRINTF1(_L("A pointer to TOpenFontGlyphData is returned"));
+								}
+							}
+						}
+					}
+				}
+			// ret = EFalse
+			else
+				{
+				if(expected)
+					{
+					ERR_PRINTF1(_L("Return value is not as expected: ETrue, actual: EFalse"));
+					SetBlockResult(EFail);				
+					}
+				else
+					{
+					INFO_PRINTF1(_L("Return value is EFalse"));
+					}
+				}
+			}
+		}
+	}
+
+//void CT_DataBitmapFont::DoCmdUniqueFontId(const TDesC& aSection)
+//	{
+//	INFO_PRINTF1(_L("Calls CBitmapFont::UniqueFontId()"));
+//	TUint32 ret = iBitmapFont->UniqueFontId();
+//	INFO_PRINTF2(_L("Unique font id is %d"), (TInt)ret);
+//	
+//	TInt temp;
+//	if( GetIntFromConfig(aSection, KFldExpected, temp) )
+//		{
+//		TUint32 expected = (TUint32)temp;
+//		if(ret != expected)
+//			{
+//			ERR_PRINTF4(KLogNotExpectedValueInt, &KFldExpected, ret, expected);
+//			SetBlockResult(EFail);
+//			}
+//		}
+//	}
+
+TBool CT_DataBitmapFont::GetCharacterMetricsFromConfig(CDataWrapper& aDataWrapper, const TDesC& aSectName, const TDesC& aKeyName, TCharacterMetrics& aResult)
+	{
+	TBuf<KMaxTestExecuteCommandLength>	tempStore;
+	TInt temp;
+	TBool ret = EFalse;
+	
+	tempStore.Format(KFormatEntryField, &aKeyName, &KTagCharMetricsAscent);
+	if( aDataWrapper.GetIntFromConfig(aSectName, tempStore, temp) )
+		{
+		aResult.iAscentInPixels = temp;
+		ret = ETrue;
+		}
+
+	tempStore.Format(KFormatEntryField, &aKeyName, &KTagCharMetricsHeight);
+	if( aDataWrapper.GetIntFromConfig(aSectName, tempStore, temp) )
+		{
+		aResult.iHeightInPixels = temp;
+		ret = ETrue;
+		}
+
+	tempStore.Format(KFormatEntryField, &aKeyName, &KTagCharMetricsLeftAdjust);
+	if( aDataWrapper.GetIntFromConfig(aSectName, tempStore, temp) )
+		{
+		aResult.iLeftAdjustInPixels = temp;
+		ret = ETrue;
+		}
+	
+	tempStore.Format(KFormatEntryField, &aKeyName, &KTagCharMetricsMove);
+	if( aDataWrapper.GetIntFromConfig(aSectName, tempStore, temp) )
+		{
+		aResult.iMoveInPixels = temp;
+		ret = ETrue;
+		}
+	
+	tempStore.Format(KFormatEntryField, &aKeyName, &KTagCharMetricsRightAdjust);
+	if( aDataWrapper.GetIntFromConfig(aSectName, tempStore, temp) )
+		{
+		aResult.iRightAdjustInPixels = temp;
+		ret = ETrue;
+		}
+	
+	return ret;
+	}
+
+
+TBool CT_DataBitmapFont::GetOpenFontCharMetricsFromConfig(CDataWrapperBase& aDataWrapper,const TDesC& aSectName,const TDesC& aKeyName,TOpenFontCharMetrics& aResult)
+	{
+	TBuf<KMaxTestExecuteCommandLength>	tempStore;
+	TInt width;
+	TInt height;
+	
+	tempStore.Format(KFormatEntryField, &aKeyName, &KTagOFCharMetricsWidth);
+	if( aDataWrapper.GetIntFromConfig(aSectName, tempStore, width) )
+		{		
+		tempStore.Format(KFormatEntryField, &aKeyName, &KTagOFCharMetricsHeight);
+		if( aDataWrapper.GetIntFromConfig(aSectName, tempStore, height) )
+			{
+			aResult.SetHeight(height);
+			aResult.SetWidth(width);
+			return ETrue;
+			}
+		}
+	
+	return EFalse;
+	}
+
+TBool CT_DataBitmapFont::GetOpenFontFaceAttribFromConfig(CDataWrapper& aDataWrapper,const TDesC& aSectName,const TDesC& aKeyName,TOpenFontFaceAttrib& aResult)
+	{
+	TBuf<KMaxTestExecuteCommandLength>	tempStore;
+	tempStore.Format(KFormatEntryField, &aKeyName, &KTagOFFaceAttribFamilyName);
+	
+	TPtrC familyname;
+	TInt minsize;
+	if( aDataWrapper.GetStringFromConfig(aSectName, tempStore, familyname) )
+		{
+		tempStore.Format(KFormatEntryField, &aKeyName, &KTagOFFaceAttribMinSize);
+		if( aDataWrapper.GetIntFromConfig(aSectName, tempStore, minsize) )
+			{
+			aResult.SetFamilyName(familyname);						
+			aResult.SetMinSizeInPixels(minsize);
+			return ETrue;
+			}
+		}
+	
+	return EFalse;
+	}
+
+TBool CT_DataBitmapFont::GetOpenFontMetricsFromConfig(CDataWrapper& aDataWrapper,const TDesC& aSectName, const TDesC& aKeyName, TOpenFontMetrics& aResult)
+	{ 
+	TBuf<KMaxTestExecuteCommandLength>	tempStore;
+	tempStore.Format(KFormatEntryField, &aKeyName, &KTagOFMetricsMaxHeight);
+	
+	TInt maxheight;
+	TInt size;
+	if( aDataWrapper.GetIntFromConfig(aSectName, tempStore, maxheight) )
+		{
+		tempStore.Format(KFormatEntryField, &aKeyName, &KTagOFMetricsSize);
+		if( aDataWrapper.GetIntFromConfig(aSectName, tempStore, size) )
+			{
+			aResult.SetMaxHeight(maxheight);
+			aResult.SetSize(size);
+			return ETrue;
+			}
+		}
+	
+	return EFalse;
+	}
+