diff -r 000000000000 -r 5d03bc08d59c graphicsdeviceinterface/gdi/tgdi/TGlyphSel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graphicsdeviceinterface/gdi/tgdi/TGlyphSel.h Tue Feb 02 01:47:50 2010 +0200 @@ -0,0 +1,153 @@ +// Copyright (c) 2003-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: +// + +#ifndef __TGLYPHSEL_H_ +#define __TGLYPHSEL_H_ + + +#include "TGraphicsContext.h" +#include "TGraphicsHarness.h" + + +class TStopWatch + { +public: + inline void Start(); + inline TUint Stop(); +private: + TTime iTime; + }; + +void TStopWatch::Start() + { + iTime.UniversalTime(); + } + +TUint TStopWatch::Stop() + { + TTime t; + t.UniversalTime(); + TInt64 i = ((t.MicroSecondsFrom(iTime).Int64()) + 500)/1000; + return I64LOW(i); + } + +// Forward declaration +struct TTestInput_PositionParam6; +class CTGlyphSelection : public CTGraphicsBase +/** + This is a unit test class. Its responsibilites are to define and + execute test cases that exercise CFont::GetCharacterPosition() + functionality. +@internalComponent +@test +*/ + { +public: + + // House keeping methods for test setup and shutdown. + CTGlyphSelection(CTestStep* aStep); + ~CTGlyphSelection(); +protected: +//from CTGraphicsStep + virtual void RunTestCaseL(TInt aCurTestCase); + virtual void ConstructL(); + + void CreateTestGraphicsContextL(); + void TestPerformance(); + + // Test case methods testing specific functionality. + void TestCtrlCharsIgnored(); + void TestApiBoundaries(); + void TestLatinChars(); + void TestGlyphs(CFont* aFont, CFont::TPositionParam& aParam, + const TPtrC16& aText, const TPtrC16& aExpectedGlyphs); + + //TestIndicChars() is main function to perform testing for all Indic languages and calls all the indic language functions. + + void TestIndicCharsL(); + void TestHindiChars(CFbsFont* aFont); + void TestKannadaChars(CFbsFont* aFont); + void TestMarathiChars(CFbsFont* aFont); + void TestGujaratiChars(CFbsFont* aFont); + void TestBengaliChars(CFbsFont* aFont); + void TestTamilChars(CFbsFont* aFont); + void TestTeluguChars(CFbsFont* aFont); + void TestIndicPunctuation(CFbsFont* aFont); + void TestIndicPunctuationGlyphs(CFbsFont* aFont, CFont::TPositionParam& aParam, + const TPtrC16& aText, const TPtrC16& aExpectedGlyphs); + + //Gurumukhi and Malayalam support + void ExecuteIndicGurmukhiMalayalamTests(); + void DoEachGurmukhiMalayalamCase( const TTestInput_PositionParam6* aArray, const CFbsFont& aFont ); + void TestGurmukhiDigit( const CFbsFont& aFont ); + void TestGurmukhiAndLatin( const CFbsFont& aFont ); + void TestGurmukhiModifierAfterConsonantViramaZWJ( const CFbsFont& aFont ); + void TestGurmukhiWithConsonantInitial( const CFbsFont& aFont ); + void TestGurmukhiWithVowelInitial( const CFbsFont& aFont ); + void TestMalayalamDigit( const CFbsFont& aFont ); + void TestMalayalamAndLatin( const CFbsFont& aFont ); + void TestMalayalamModifierAfterConsonantViramaZWJ( const CFbsFont& aFont ); + void TestMalayalamWithConsonantInitial( const CFbsFont& aFont ); + void TestMalayalamWithVowelInitial( const CFbsFont& aFont ); + + void TestVietnameseChars(); + void TestSoftHyphen(); + void TestSurrogates(); + void TestNonBmpCharsL(); + void TestNonBmpCharsInGB18030(CFbsFont* aFont); + void TestCombiningLatinChars(); + void TestTextDirection(); + void TestAllUnicodeChars(); + void TestLigaturesWithDiacritics(); + void TestIsolatedCombiningLatinChars(); + void TestContextInShapeInfo(); + + // Test cases methods testing Thai functionality. + void ExecuteThaiTests(); + void TestThai_SimpleChars(); + void TestThai_ValidGlyphClusters(); + void TestThai_InvalidGlyphClusters(); + void TestThai_INC118424(); + + void TestMeasureText(); + + void TestCodepoint(TUint aCodepoint, CFont* aFont); + + void GenerateGurmukhiMalayalamData( const TDesC& filename, const TTestInput_PositionParam6* aArray, const CFbsFont& aFont ); + +public: + // Context data needed for the test cases in this class. + CTestFont* iTestFont; + CTestGraphicsDevice* iTestGraphicsDevice; + CTestGraphicsContext* iTestGraphicsContext; +private: + RFs iFs; + }; + +class CTGlyphSelectionStep : public CTGraphicsStep + { +public: + CTGlyphSelectionStep(); +protected: + //from CTGraphicsStep + virtual CTGraphicsBase* CreateTestL(); + void TestSetupL(); + }; + +_LIT(KTGlyphSelectionStep,"TGlyphSelection"); + + +#endif //__TGLYPHSEL_H_ +