common/tools/ats/smoketest/graphics/gdi/src/T_DataGraphicsDeviceMap.cpp
changeset 833 6ffc235847d0
child 872 17498133d9ad
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/tools/ats/smoketest/graphics/gdi/src/T_DataGraphicsDeviceMap.cpp	Fri Dec 18 14:46:04 2009 +0000
@@ -0,0 +1,493 @@
+/*
+* 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_DataGraphicsDeviceMap
+*/
+
+#include "T_DataGraphicsDeviceMap.h"
+#include "T_DataFont.h"
+
+/*@{*/
+///	Commands
+_LIT(KCmdGetNearestFontInTwips,						"GetNearestFontInTwips");
+_LIT(KCmdGetNearestFontToDesignHeightInTwips,		"GetNearestFontToDesignHeightInTwips");
+_LIT(KCmdGetNearestFontToMaxHeightInTwips,			"GetNearestFontToMaxHeightInTwips");
+_LIT(KCmdHorizontalPixelsToTwips,					"HorizontalPixelsToTwips");
+_LIT(KCmdHorizontalTwipsToPixels,					"HorizontalTwipsToPixels");
+_LIT(KCmdPixelsToTwips,								"PixelsToTwips");
+_LIT(KCmdReleaseFont,								"ReleaseFont");
+_LIT(KCmdTwipsToPixels,								"TwipsToPixels");
+_LIT(KCmdVerticalPixelsToTwips,						"VerticalPixelsToTwips");
+_LIT(KCmdVerticalTwipsToPixels,						"VerticalTwipsToPixels");
+
+///	Fields
+_LIT(KFldExpected,									"expected");
+_LIT(KFldFont,										"font");
+_LIT(KFldMaxHeight,									"maxheight");
+_LIT(KFldPixels,									"pixels");
+_LIT(KFldPoint,										"point");
+_LIT(KFldRect,										"rect");
+_LIT(KFldTwips,										"twips");
+_LIT(KFldDisown,									"disown");
+
+///	Logging
+_LIT(KLogError,										"Error=%d");
+_LIT(KLogMissingParameter,							"Missing parameter '%S'");
+_LIT(KLogMissingWrapper,							"Missing wrapper for '%S'");
+_LIT(KLogNotExpectedValue,							"Not expected value");
+/*@}*/
+
+/**
+* Constructor. First phase construction
+*/
+CT_DataGraphicsDeviceMap::CT_DataGraphicsDeviceMap()
+:	CDataWrapperBase()
+	{
+	}
+
+/**
+* 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_DataGraphicsDeviceMap::DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt /*aAsyncErrorIndex*/)
+	{
+	TBool	ret=ETrue;
+	if ( aCommand==KCmdGetNearestFontInTwips )
+		{
+		DoCmdGetNearestFontInTwipsL(aSection);
+		}
+	else if ( aCommand==KCmdGetNearestFontToDesignHeightInTwips )
+		{
+		DoCmdGetNearestFontToDesignHeightInTwipsL(aSection);
+		}
+	else if ( aCommand==KCmdGetNearestFontToMaxHeightInTwips )
+		{
+		DoCmdGetNearestFontToMaxHeightInTwipsL(aSection);
+		}
+	else if ( aCommand==KCmdHorizontalPixelsToTwips )
+		{
+		DoCmdHorizontalPixelsToTwips(aSection);
+		}
+	else if ( aCommand==KCmdHorizontalTwipsToPixels )
+		{
+		DoCmdHorizontalTwipsToPixels(aSection);
+		}
+	else if ( aCommand==KCmdPixelsToTwips )
+		{
+		DoCmdPixelsToTwips(aSection);
+		}
+	else if ( aCommand==KCmdReleaseFont )
+		{
+		DoCmdReleaseFontL(aSection);
+		}
+	else if ( aCommand==KCmdTwipsToPixels )
+		{
+		DoCmdTwipsToPixels(aSection);
+		}
+	else if ( aCommand==KCmdVerticalPixelsToTwips )
+		{
+		DoCmdVerticalPixelsToTwips(aSection);
+		}
+	else if ( aCommand==KCmdVerticalTwipsToPixels )
+		{
+		DoCmdVerticalTwipsToPixels(aSection);
+		}
+	else
+		{
+		ret=EFalse;
+		}
+	return ret;
+	}
+
+void CT_DataGraphicsDeviceMap::DoCmdGetNearestFontInTwipsL(const TDesC& aSection)
+	{
+	TBool	dataOk=ETrue;
+
+	TFontSpec	fontSpec;
+	if ( !GetFontSpecFromConfig(aSection, KFldFont, fontSpec) )
+		{
+		dataOk=EFalse;
+		ERR_PRINTF2(KLogMissingParameter, &KFldFont());
+		SetBlockResult(EFail);
+		}
+
+	TPtrC		wrapperName;
+	// get BitmapUtilData object from parameters
+	if ( !GetStringFromConfig(aSection, KFldFont, wrapperName) )
+		{
+		dataOk=EFalse;
+		ERR_PRINTF2(KLogMissingParameter, &KFldFont());
+		SetBlockResult(EFail);
+		}
+
+	if ( dataOk )
+		{
+		CDataWrapper*	wrapper=GetDataWrapperL(wrapperName);
+		if ( wrapper==NULL )
+			{
+			ERR_PRINTF2(KLogMissingWrapper, &wrapperName);
+			SetBlockResult(EFail);
+			}
+		else
+			{
+			CFont*	font=NULL;
+			INFO_PRINTF1(_L("execute GetNearestFontInTwips(CFont*&, TFontSpec)"));
+			TInt	err=GetGraphicsDeviceMap()->GetNearestFontInTwips(font, fontSpec);
+			if ( err!=KErrNone )
+				{
+				ERR_PRINTF2(KLogError, err);
+				SetError(err);
+				}
+			else
+				{
+				wrapper->SetObjectL(font);
+				}
+			}
+		}
+	}
+
+void CT_DataGraphicsDeviceMap::DoCmdGetNearestFontToDesignHeightInTwipsL(const TDesC& aSection)
+	{
+	TBool	dataOk=ETrue;
+
+	TFontSpec	fontSpec;
+	if ( !GetFontSpecFromConfig(aSection, KFldFont, fontSpec) )
+		{
+		dataOk=EFalse;
+		ERR_PRINTF2(KLogMissingParameter, &KFldFont());
+		SetBlockResult(EFail);
+		}
+
+	TPtrC		wrapperName;
+	// get BitmapUtilData object from parameters
+	if ( !GetStringFromConfig(aSection, KFldFont, wrapperName) )
+		{
+		dataOk=EFalse;
+		ERR_PRINTF2(KLogMissingParameter, &KFldFont());
+		SetBlockResult(EFail);
+		}
+
+	if ( dataOk )
+		{
+		CDataWrapper*	wrapper=GetDataWrapperL(wrapperName);
+		if ( wrapper==NULL )
+			{
+			ERR_PRINTF2(KLogMissingWrapper, &wrapperName);
+			SetBlockResult(EFail);
+			}
+		else
+			{
+			CFont*	font=NULL;
+			INFO_PRINTF1(_L("execute GetNearestFontToDesignHeightInTwips(CFont*&, TFontSpec)"));
+			TInt	err=GetGraphicsDeviceMap()->GetNearestFontToDesignHeightInTwips(font, fontSpec);
+			if ( err!=KErrNone )
+				{
+				ERR_PRINTF2(KLogError, err);
+				SetError(err);
+				}
+			else
+				{
+				wrapper->SetObjectL(font);
+				}
+			}
+		}
+	}
+
+void CT_DataGraphicsDeviceMap::DoCmdGetNearestFontToMaxHeightInTwipsL(const TDesC& aSection)
+	{
+	TBool	dataOk=ETrue;
+
+	TFontSpec	fontSpec;
+	if ( !GetFontSpecFromConfig(aSection, KFldFont, fontSpec) )
+		{
+		dataOk=EFalse;
+		ERR_PRINTF2(KLogMissingParameter, &KFldFont());
+		SetBlockResult(EFail);
+		}
+
+	TInt	maxHeight;
+	if ( !GetIntFromConfig(aSection, KFldMaxHeight, maxHeight) )
+		{
+		dataOk=EFalse;
+		ERR_PRINTF2(KLogMissingParameter, &KFldMaxHeight());
+		SetBlockResult(EFail);
+		}
+
+	TPtrC		wrapperName;
+	// get BitmapUtilData object from parameters
+	if ( !GetStringFromConfig(aSection, KFldFont, wrapperName) )
+		{
+		dataOk=EFalse;
+		ERR_PRINTF2(KLogMissingParameter, &KFldFont());
+		SetBlockResult(EFail);
+		}
+
+	if ( dataOk )
+		{
+		CDataWrapper*	wrapper=GetDataWrapperL(wrapperName);
+		if ( wrapper==NULL )
+			{
+			ERR_PRINTF2(KLogMissingWrapper, &wrapperName);
+			SetBlockResult(EFail);
+			}
+		else
+			{
+			CFont*	font=NULL;
+			INFO_PRINTF1(_L("execute GetNearestFontToMaxHeightInTwips(CFont*&, TFontSpec, TInt)"));
+			TInt	err=GetGraphicsDeviceMap()->GetNearestFontToMaxHeightInTwips(font, fontSpec, maxHeight);
+			if ( err!=KErrNone )
+				{
+				ERR_PRINTF2(KLogError, err);
+				SetError(err);
+				}
+			else
+				{
+				wrapper->SetObjectL(font);
+				}
+			}
+		}
+	}
+
+void CT_DataGraphicsDeviceMap::DoCmdHorizontalPixelsToTwips(const TDesC& aSection)
+	{
+	TInt	value;
+	if ( !GetIntFromConfig(aSection, KFldPixels, value) )
+		{
+		ERR_PRINTF2(KLogMissingParameter, &KFldPixels());
+		SetBlockResult(EFail);
+		}
+	else
+		{
+		INFO_PRINTF1(_L("execute HorizontalPixelsToTwips(TInt)"));
+		TInt	pixels=GetGraphicsDeviceMap()->HorizontalPixelsToTwips(value);
+		INFO_PRINTF2(_L("HorizontalPixelsToTwips=%d"), pixels);
+
+		if ( GetIntFromConfig(aSection, KFldExpected, value) )
+			{
+			if ( value!=pixels )
+				{
+				ERR_PRINTF1(KLogNotExpectedValue);
+				SetBlockResult(EFail);
+				}
+			}
+		}
+	}
+
+void CT_DataGraphicsDeviceMap::DoCmdHorizontalTwipsToPixels(const TDesC& aSection)
+	{
+	TInt	value;
+	if ( !GetIntFromConfig(aSection, KFldTwips, value) )
+		{
+		ERR_PRINTF2(KLogMissingParameter, &KFldTwips());
+		SetBlockResult(EFail);
+		}
+	else
+		{
+		INFO_PRINTF1(_L("execute HorizontalTwipsToPixels(TInt)"));
+		TInt	pixels=GetGraphicsDeviceMap()->HorizontalTwipsToPixels(value);
+		INFO_PRINTF2(_L("HorizontalTwipsToPixels=%d"), pixels);
+
+		if ( GetIntFromConfig(aSection, KFldExpected, value) )
+			{
+			if ( value!=pixels )
+				{
+				ERR_PRINTF1(KLogNotExpectedValue);
+				SetBlockResult(EFail);
+				}
+			}
+		}
+	}
+
+void CT_DataGraphicsDeviceMap::DoCmdPixelsToTwips(const TDesC& aSection)
+	{
+	TPoint	point;
+	if ( GetPointFromConfig(aSection, KFldPoint, point) )
+		{
+		INFO_PRINTF1(_L("execute PixelsToTwips(const TPoint&)"));
+		iPixelsToTwipsPoint=GetGraphicsDeviceMap()->PixelsToTwips(point);
+		INFO_PRINTF3(_L("PixelsToTwips x=%d y=%d"), iPixelsToTwipsPoint.iX, iPixelsToTwipsPoint.iY);
+
+		if ( GetPointFromConfig(aSection, KFldExpected, point) )
+			{
+			if ( point!=iPixelsToTwipsPoint )
+				{
+				ERR_PRINTF1(KLogNotExpectedValue);
+				SetBlockResult(EFail);
+				}
+			}
+		}
+	else
+		{
+		TRect	rect;
+		if ( GetRectFromConfig(aSection, KFldRect, rect) )
+			{
+			INFO_PRINTF1(_L("execute PixelsToTwips(const TRect&)"));
+			iPixelsToTwipsRect=GetGraphicsDeviceMap()->PixelsToTwips(rect);
+			LogRect(_L("PixelsToTwips(TRect)"), iPixelsToTwipsRect);
+			if ( GetRectFromConfig(aSection, KFldExpected, rect) )
+				{
+				if ( rect!=iPixelsToTwipsRect )
+					{
+					ERR_PRINTF1(KLogNotExpectedValue);
+					SetBlockResult(EFail);
+					}
+				}
+			}
+		else
+			{
+			ERR_PRINTF2(KLogMissingParameter, &KFldPoint());
+			ERR_PRINTF2(KLogMissingParameter, &KFldRect());
+			SetBlockResult(EFail);
+			}
+		}
+	}
+
+void CT_DataGraphicsDeviceMap::DoCmdReleaseFontL(const TDesC& aSection)
+	{
+	TPtrC		wrapperName;
+	// get BitmapUtilData object from parameters
+	if ( !GetStringFromConfig(aSection, KFldFont, wrapperName) )
+		{
+		ERR_PRINTF2(KLogMissingParameter, &KFldFont());
+		SetBlockResult(EFail);
+		}
+	else
+		{
+		CT_DataFont*	wrapper=static_cast<CT_DataFont*>(GetDataWrapperL(wrapperName));
+		if ( wrapper==NULL )
+			{
+			ERR_PRINTF2(KLogMissingWrapper, &wrapperName);
+			SetBlockResult(EFail);
+			}
+		else
+			{
+			CFont*	font=wrapper->GetFont();
+			INFO_PRINTF1(_L("execute ReleaseFont(CFont*)"));
+			GetGraphicsDeviceMap()->ReleaseFont(font);
+			
+			// check if we need to disown object
+			TBool	disOwn=ETrue, Own;
+			if ( GetBoolFromConfig(aSection, KFldDisown, Own))
+				disOwn=Own;
+			if (disOwn)
+				wrapper->DisownObjectL();
+			}
+		}
+	}
+
+void CT_DataGraphicsDeviceMap::DoCmdTwipsToPixels(const TDesC& aSection)
+	{
+	TPoint	point;
+	if ( GetPointFromConfig(aSection, KFldPoint, point) )
+		{
+		INFO_PRINTF1(_L("execute TwipsToPixels(const TPoint&)"));
+		iTwipsToPixelsPoint=GetGraphicsDeviceMap()->TwipsToPixels(point);
+		INFO_PRINTF3(_L("TwipsToPixels x=%d y=%d"), iTwipsToPixelsPoint.iX, iTwipsToPixelsPoint.iY);
+
+		if ( GetPointFromConfig(aSection, KFldExpected, point) )
+			{
+			if ( point!=iTwipsToPixelsPoint )
+				{
+				ERR_PRINTF1(KLogNotExpectedValue);
+				SetBlockResult(EFail);
+				}
+			}
+		}
+	else
+		{
+		TRect	rect;
+		if ( GetRectFromConfig(aSection, KFldRect, rect) )
+			{
+			INFO_PRINTF1(_L("execute TwipsToPixels(const TRect&)"));
+			iTwipsToPixelsRect=GetGraphicsDeviceMap()->TwipsToPixels(rect);
+			LogRect(_L("TwipsToPixels(const TRect&)"), iTwipsToPixelsRect);
+			if ( GetRectFromConfig(aSection, KFldExpected, rect) )
+				{
+				if ( rect!=iTwipsToPixelsRect )
+					{
+					ERR_PRINTF1(KLogNotExpectedValue);
+					SetBlockResult(EFail);
+					}
+				}
+			}
+		else
+			{
+			ERR_PRINTF2(KLogMissingParameter, &KFldPoint());
+			ERR_PRINTF2(KLogMissingParameter, &KFldRect());
+			SetBlockResult(EFail);
+			}
+		}
+	}
+
+void CT_DataGraphicsDeviceMap::DoCmdVerticalPixelsToTwips(const TDesC& aSection)
+	{
+	TInt	value;
+	if ( !GetIntFromConfig(aSection, KFldPixels, value) )
+		{
+		ERR_PRINTF2(KLogMissingParameter, &KFldPixels());
+		SetBlockResult(EFail);
+		}
+	else
+		{
+		INFO_PRINTF1(_L("execute VerticalPixelsToTwips(TInt)"));
+		TInt	pixels=GetGraphicsDeviceMap()->VerticalPixelsToTwips(value);
+		INFO_PRINTF2(_L("VerticalPixelsToTwips=%d"), pixels);
+
+		if ( GetIntFromConfig(aSection, KFldExpected, value) )
+			{
+			if ( value!=pixels )
+				{
+				ERR_PRINTF1(KLogNotExpectedValue);
+				SetBlockResult(EFail);
+				}
+			}
+		}
+	}
+
+void CT_DataGraphicsDeviceMap::DoCmdVerticalTwipsToPixels(const TDesC& aSection)
+	{
+	TInt	value;
+	if ( !GetIntFromConfig(aSection, KFldTwips, value) )
+		{
+		ERR_PRINTF2(KLogMissingParameter, &KFldTwips());
+		SetBlockResult(EFail);
+		}
+	else
+		{
+		INFO_PRINTF1(_L("execute VerticalTwipsToPixels(TInt)"));
+		TInt	pixels=GetGraphicsDeviceMap()->VerticalTwipsToPixels(value);
+		INFO_PRINTF2(_L("VerticalTwipsToPixels=%d"), pixels);
+
+		if ( GetIntFromConfig(aSection, KFldExpected, value) )
+			{
+			if ( value!=pixels )
+				{
+				ERR_PRINTF1(KLogNotExpectedValue);
+				SetBlockResult(EFail);
+				}
+			}
+		}
+	}