fontservices/textbase/tgdi/TGlyphSel.h
changeset 45 662fa7de7023
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fontservices/textbase/tgdi/TGlyphSel.h	Mon Jul 12 14:38:26 2010 +0800
@@ -0,0 +1,153 @@
+// Copyright (c) 2003-2010 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_
+