author | Gareth Stockwell <gareth.stockwell@accenture.com> |
Fri, 22 Oct 2010 11:38:29 +0100 | |
branch | bug235_bringup_0 |
changeset 206 | c170e304623f |
parent 0 | 5d03bc08d59c |
permissions | -rw-r--r-- |
/* * 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 "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: * */ /** @test @internalComponent This contains CT_DataFbsFont */ #include "T_DataFbsFont.h" /*@{*/ /// Parameters _LIT(KText, "text"); _LIT(KExpectedBool, "expected_bool"); _LIT(KCharCode, "char_code"); _LIT(KNullBitmapPointerExpected, "null_bitmap_pointer_expected"); /// Commands _LIT(KCmdGetFontMetrics, "GetFontMetrics"); _LIT(KCmdTextWidthInPixelsWithCharWidth, "TextWidthInPixelsWithCharWidth"); _LIT(KCmdHandle, "Handle"); _LIT(KCmdCharacterMetrics, "CharacterMetrics"); _LIT(KCmdRawTextWidthInPixels, "RawTextWidthInPixels"); _LIT(KCmdGetFaceAttrib, "GetFaceAttrib"); _LIT(KCmdIsOpenFont, "IsOpenFont"); _LIT(KCmdHasCharacter, "HasCharacter"); /*@}*/ /** * Constructor */ CT_DataFbsFont* CT_DataFbsFont::NewL() { CT_DataFbsFont* ret = new (ELeave) CT_DataFbsFont(); return ret; } /** * Protected constructor. First phase construction */ CT_DataFbsFont::CT_DataFbsFont() : CT_DataFont() , iFbsFont(NULL) { } /** * 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_DataFbsFont::DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt aAsyncErrorIndex) { TBool ret=ETrue; if (aCommand == KCmdGetFontMetrics) { DoCmdGetFontMetrics(aSection); } else if (aCommand == KCmdTextWidthInPixelsWithCharWidth) { DoCmdTextWidthInPixelsWithCharWidth(aSection); } else if (aCommand == KCmdHandle) { DoCmdHandle(); } else if (aCommand == KCmdCharacterMetrics) { DoCmdCharacterMetrics(aSection); } else if (aCommand == KCmdRawTextWidthInPixels) { DoCmdRawTextWidthInPixels(aSection); } else if (aCommand == KCmdGetFaceAttrib) { DoCmdGetFaceAttrib(aSection); } else if (aCommand == KCmdIsOpenFont) { DoCmdIsOpenFont(aSection); } else if (aCommand == KCmdHasCharacter) { DoCmdHasCharacter(aSection); } else { ret=CT_DataFont::DoCommandL(aCommand, aSection, aAsyncErrorIndex); } return ret; } CFont* CT_DataFbsFont::GetFont() const { return iFbsFont; } /** * Return a pointer to the object that the data wraps * * @return pointer to the object that the data wraps */ TAny* CT_DataFbsFont::GetObject() { return iFbsFont; } /** * Sets a fbs font * * @param aNewFont fbs font */ void CT_DataFbsFont::SetObjectL(TAny* aObject) { // no clean up needed, because fonts are managed by server side iFbsFont = static_cast<CFbsFont*>(aObject); } /** * Disown a fbs font * */ void CT_DataFbsFont::DisownObjectL() { // no clean up needed, because fonts are managed by server side iFbsFont=NULL; } /** Calls CFbsFont::GetFontMetrics() */ void CT_DataFbsFont::DoCmdGetFontMetrics(const TDesC& aSection) { TOpenFontMetrics metrics; TBool actual = iFbsFont->GetFontMetrics(metrics); INFO_PRINTF2(_L("Calls CFbsFont::GetFontMetrics() %d"), actual); // get if true expected flag from parameters TBool expected; if ( GetBoolFromConfig(aSection, KExpectedBool(), expected) ) { // check that the value is as expected if (actual != expected) { ERR_PRINTF3(_L("The value is not as expected! expected: %d, actual: %d"), expected, actual); SetBlockResult(EFail); } } } /** Calls CFbsFont::TextWidthInPixels() using SCharWidth output paramter */ void CT_DataFbsFont::DoCmdTextWidthInPixelsWithCharWidth(const TDesC& aSection) { INFO_PRINTF1(_L("Calls CFbsFont::TextWidthInPixels() using SCharWidth output paramter")); // get text from parameters TPtrC text; if (!GetStringFromConfig(aSection, KText(), text)) { ERR_PRINTF2(_L("No %S"), &KText()); SetBlockResult(EFail); } else { // call TextWidthInPixels() SCharWidth charWidth; iFbsFont->TextWidthInPixels(text, charWidth); // validate SCharWidth if (charWidth.iMove != charWidth.iLeftAdjust + charWidth.iWidth + charWidth.iRightAdjust) { ERR_PRINTF5(_L("Move is not equal to left adjust + width + right adjust!, move: %d, leftAdjust: %d, width: %d, rightAdjust: %d"), charWidth.iMove, charWidth.iLeftAdjust, charWidth.iWidth, charWidth.iRightAdjust); SetBlockResult(EFail); } } } /** Calls CFbsFont::Handle() */ void CT_DataFbsFont::DoCmdHandle() { // call Handle() TInt handle = iFbsFont->Handle(); INFO_PRINTF2(_L("Calls CFbsFont::Handle() %d"), handle); // validate hanle if (handle == 0) { ERR_PRINTF1(_L("Handle is zero!")); SetBlockResult(EFail); } } /** Calls CFbsFont::CharacterMetrics() */ void CT_DataFbsFont::DoCmdCharacterMetrics(const TDesC& aSection) { INFO_PRINTF1(_L("Calls CFbsFont::CharacterMetrics()")); // get character code from parameters TInt charCode = 0; if(!GetIntFromConfig(aSection, KCharCode(), charCode)) { ERR_PRINTF2(_L("No %S"), &KCharCode()); SetBlockResult(EFail); } else { // call CharacterMetrics() const TUint8* bitmapPointer; iFbsFont->CharacterMetrics(charCode, bitmapPointer); // get if NULL bitmap pointer expected flag from parameters TBool expectedNull = EFalse; if(GetBoolFromConfig(aSection, KNullBitmapPointerExpected(), expectedNull)) { // check that on retirn the bitmap pointer is not NULL if ( expectedNull ) { if ( bitmapPointer!=NULL ) { ERR_PRINTF1(_L("Bitmap pointer is NOT null!")); SetBlockResult(EFail); } } else { if ( bitmapPointer==NULL ) { ERR_PRINTF1(_L("Bitmap pointer is null!")); SetBlockResult(EFail); } } } } } /** Calls CFbsFont::RawTextWidthInPixels() */ void CT_DataFbsFont::DoCmdRawTextWidthInPixels(const TDesC& aSection) { INFO_PRINTF1(_L("Calls CFbsFont::RawTextWidthInPixels()")); // get text from parameters TPtrC text; if (!GetStringFromConfig(aSection, KText(), text)) { ERR_PRINTF2(_L("No %S"), &KText()); SetBlockResult(EFail); } else { // call RawTextWidthInPixels() TInt width = iFbsFont->RawTextWidthInPixels(text); // check result against MeasureText() TInt measureTextWidth = iFbsFont->MeasureText(text); if ( width != measureTextWidth) { ERR_PRINTF3(_L("The result of RawTextWidthInPixels() is not the same as for MeasureText(): %d, and %d"), width, measureTextWidth); SetBlockResult(EFail); } } } /** Calls CFbsFont::GetFaceAttrib() */ void CT_DataFbsFont::DoCmdGetFaceAttrib(const TDesC& aSection) { INFO_PRINTF1(_L("Calls CFbsFont::GetFaceAttrib()")); // call GetFaceAttrib() TOpenFontFaceAttrib attrib; TBool actual = iFbsFont->GetFaceAttrib(attrib); // get if true expected flag from parameters TBool expected; if(GetBoolFromConfig(aSection, KExpectedBool(), expected)) { // check that the value is as expected if (actual != expected) { ERR_PRINTF3(_L("The value is not as expected! expected: %d, actual: %d"), expected, actual); SetBlockResult(EFail); } } } /** Calls CFbsFont::IsOpenFont() */ void CT_DataFbsFont::DoCmdIsOpenFont(const TDesC& aSection) { INFO_PRINTF1(_L("Calls CFbsFont::IsOpenFont()")); // call IsOpenFont() TBool actual = iFbsFont->IsOpenFont(); // check that the value is as expected if there is a expected bool parameter TBool expected; if (GetBoolFromConfig(aSection, KExpectedBool(), expected) ) { // check that the value is as expected if (actual != expected) { ERR_PRINTF3(_L("The value is not as expected! expected: %d, actual: %d"), expected, actual); SetBlockResult(EFail); } } } /** Calls CFbsFont::HasCharacter() */ void CT_DataFbsFont::DoCmdHasCharacter(const TDesC& aSection) { INFO_PRINTF1(_L("Calls CFbsFont::HasCharacter()")); // get character code from parameters TInt charCode = 0; if(!GetIntFromConfig(aSection, KCharCode(), charCode)) { ERR_PRINTF2(_L("No %S"), &KCharCode()); SetBlockResult(EFail); } else { // call HasCharacter() TBool actual = iFbsFont->HasCharacter(charCode); TBool expected; if(GetBoolFromConfig(aSection, KExpectedBool(), expected)) { // check that the value is as expected if (actual != expected) { ERR_PRINTF3(_L("The value is not as expected! expected: %d, actual: %d"), expected, actual); SetBlockResult(EFail); } } } }