diff -r 000000000000 -r bde4ae8d615e os/textandloc/fontservices/fontstore/tfs/T_MatchFonts.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/textandloc/fontservices/fontstore/tfs/T_MatchFonts.cpp Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,176 @@ +/* +* Copyright (c) 2004-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: +* +*/ + +// the only way to get at the local to file static function MatchFontSpecsInPixels +#include "FNTSTORE.CPP" +#include "T_MatchFonts.h" + +_LIT( KDjvMono, "DejaVu Sans Mono" ); +_LIT( KDjvSerif, "DejaVu Serif Condensed" ); +_LIT( KDjvSans, "DejaVu Sans Condensed" ); + +class CTMatchFonts : public CTGraphicsBase + { +public: + CTMatchFonts(CTestStep* aStep); + +protected: +//from CTGraphicsStep + virtual void RunTestCaseL(TInt aCurTestCase); + virtual void ConstructL(); +private: + TOpenFontSpec iIdealFontSpec1; + TOpenFontSpec iIdealFontSpec2; + TOpenFontSpec iIdealFontSpec3; + TOpenFontSpec iDjvMonoFontSpec; + TOpenFontSpec iDjvSerifFontSpec; + TOpenFontSpec iDjvSansFontSpec; + }; + +CTMatchFonts::CTMatchFonts(CTestStep* aStep) : + CTGraphicsBase(aStep) + { + + } + +void CTMatchFonts::ConstructL() + { + + iIdealFontSpec1.SetName( KNullDesC ); + iIdealFontSpec1.SetHeight( 10 ); + iIdealFontSpec1.SetItalic( EFalse ); + iIdealFontSpec1.SetSlantFactor( 0 ); + iIdealFontSpec1.SetBold( EFalse ); + iIdealFontSpec1.SetBitmapType( EMonochromeGlyphBitmap ); + iIdealFontSpec1.SetMonoWidth( ETrue ); + iIdealFontSpec1.SetSerif( ETrue ); + + iDjvMonoFontSpec.SetName( KDjvMono ); + iDjvMonoFontSpec.SetHeight( 10 ); + iDjvMonoFontSpec.SetItalic( EFalse ); + iDjvMonoFontSpec.SetSlantFactor( 0 ); + iDjvMonoFontSpec.SetBold( EFalse ); + iDjvMonoFontSpec.SetBitmapType( EMonochromeGlyphBitmap ); + iDjvMonoFontSpec.SetMonoWidth( ETrue ); + iDjvMonoFontSpec.SetSerif( ETrue ); + + iIdealFontSpec2.SetName( KNullDesC ); + iIdealFontSpec2.SetHeight( 10 ); + iIdealFontSpec2.SetItalic( EFalse ); + iIdealFontSpec2.SetSlantFactor( 0 ); + iIdealFontSpec2.SetBold( EFalse ); + iIdealFontSpec2.SetBitmapType( EMonochromeGlyphBitmap ); + iIdealFontSpec2.SetMonoWidth( EFalse ); + iIdealFontSpec2.SetSerif( ETrue ); + + iDjvSerifFontSpec.SetName( KDjvSerif ); + iDjvSerifFontSpec.SetHeight( 10 ); + iDjvSerifFontSpec.SetItalic( EFalse ); + iDjvSerifFontSpec.SetSlantFactor( 0 ); + iDjvSerifFontSpec.SetBold( EFalse ); + iDjvSerifFontSpec.SetBitmapType( EMonochromeGlyphBitmap ); + iDjvSerifFontSpec.SetMonoWidth( EFalse ); + iDjvSerifFontSpec.SetSerif( ETrue ); + + iIdealFontSpec3.SetName( KNullDesC ); + iIdealFontSpec3.SetHeight( 10 ); + iIdealFontSpec3.SetItalic( EFalse ); + iIdealFontSpec3.SetSlantFactor( 0 ); + iIdealFontSpec3.SetBold( EFalse ); + iIdealFontSpec3.SetBitmapType( EMonochromeGlyphBitmap ); + iIdealFontSpec3.SetMonoWidth( EFalse ); + iIdealFontSpec3.SetSerif( EFalse ); + + iDjvSansFontSpec.SetName( KDjvSans ); + iDjvSansFontSpec.SetHeight( 10 ); + iDjvSansFontSpec.SetItalic( EFalse ); + iDjvSansFontSpec.SetSlantFactor( 0 ); + iDjvSansFontSpec.SetBold( EFalse ); + iDjvSansFontSpec.SetBitmapType( EMonochromeGlyphBitmap ); + iDjvSansFontSpec.SetMonoWidth( EFalse ); + iDjvSansFontSpec.SetSerif( EFalse ); + + } + +/** + @SYMTestCaseID + GRAPHICS-FNTSTORE-0035 + + @SYMTestCaseDesc + Creates a reference font and compares it to different fonts + and sees which font matches the reference font the best. + + @SYMTestActions + 1. Reference font: monospaced serif + Compared fonts: DejaVu Sans Mono, DejaVu Serif Condensed, DejaVu Sans Condensed + 2. Reference font: proporional serif font + Compared fonts: DejaVu Sans Mono, DejaVu Serif Condensed, DejaVu Sans Condensed + 3. Reference font: proporional sans serif + Compared fonts: DejaVu Sans Mono, DejaVu Serif Condensed, DejaVu Sans Condensed + + @SYMTestExpectedResults + 1. Should choose DejaVu Sans Mono above DejaVu Serif Condensed above DejaVu Sans Condensed + 2. Should choose DejaVu Serif Condensed above DejaVu Sans Condensed above DejaVu Sans Mono + 3. Should choose DejaVu Sans Condensed above DejaVu Serif Condensed above DejaVu Sans Mono +*/ +void CTMatchFonts::RunTestCaseL( TInt aCurTestCase ) + { + TInt weighting1; + TInt weighting2; + TInt weighting3; + ((CTMatchFontsStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName); + + switch ( aCurTestCase ) + { + case 1: + ((CTMatchFontsStep*)iStep)->SetTestStepID(_L("GRAPHICS-FNTSTORE-0035")); + // Looking for a monospaced serif font (like DejaVu Sans Mono) + weighting1 = MatchFontSpecsInPixels( iDjvMonoFontSpec, iIdealFontSpec1 ); + weighting2 = MatchFontSpecsInPixels( iDjvSerifFontSpec, iIdealFontSpec1 ); + weighting3 = MatchFontSpecsInPixels( iDjvSansFontSpec, iIdealFontSpec1 ); + // Should choose DejaVu Sans Mono above DejaVu Serif Condensed above DejaVu Sans Condensed + TEST( ( weighting1 > weighting2 ) && ( weighting2 > weighting3 ) ); + break; + case 2: + ((CTMatchFontsStep*)iStep)->SetTestStepID(_L("GRAPHICS-FNTSTORE-0035")); + // Looking for a proporional serif font (like DejaVu Serif Condensed) + weighting1 = MatchFontSpecsInPixels( iDjvMonoFontSpec, iIdealFontSpec2 ); + weighting2 = MatchFontSpecsInPixels( iDjvSerifFontSpec, iIdealFontSpec2 ); + weighting3 = MatchFontSpecsInPixels( iDjvSansFontSpec, iIdealFontSpec2 ); + // Should choose DejaVu Serif Condensed above DejaVu Sans Condensed above DejaVu Sans Mono + TEST( ( weighting2 > weighting3 ) && ( weighting3 > weighting1 ) ); + break; + case 3: + ((CTMatchFontsStep*)iStep)->SetTestStepID(_L("GRAPHICS-FNTSTORE-0035")); + // Looking for a proporional sans serif font (like DejaVu Sans Condensed) + weighting1 = MatchFontSpecsInPixels( iDjvMonoFontSpec, iIdealFontSpec3 ); + weighting2 = MatchFontSpecsInPixels( iDjvSerifFontSpec, iIdealFontSpec3 ); + weighting3 = MatchFontSpecsInPixels( iDjvSansFontSpec, iIdealFontSpec3 ); + // Should choose DejaVu Sans Condensed above DejaVu Serif Condensed above DejaVu Sans Mono + TEST( ( weighting3 > weighting2 ) && ( weighting2 > weighting1 ) ); + break; + case 4: + ((CTMatchFontsStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName); + ((CTMatchFontsStep*)iStep)->CloseTMSGraphicsStep(); + TestComplete(); + break; + } + ((CTMatchFontsStep*)iStep)->RecordTestResultL(); + } + +//-------------- +__CONSTRUCT_STEP__(MatchFonts)