fbs/fontandbitmapserver/tfbs/tipctest.CPP
branchRCL_3
changeset 20 25ffed67c7ef
parent 19 bbf46f59e123
--- a/fbs/fontandbitmapserver/tfbs/tipctest.CPP	Tue Aug 31 16:31:06 2010 +0300
+++ b/fbs/fontandbitmapserver/tfbs/tipctest.CPP	Wed Sep 01 12:39:21 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1996-2010 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1996-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"
@@ -13,16 +13,11 @@
 // Description:
 //
 
+#include "fbsmessage.h"
 #include "../sfbs/UTILS.H"
 #include "tipctest.h"
 #include "fbsdefs.h"
-#include "fbsmessage.h"
 
-// Invalid parameters to be passed in SendCommand() calls.
-const TInt KInvalidParam1 = 963955448;
-const TInt KInvalidParam2 = 963955368;
-const TInt KInvalidParam3 = 963955300;
-const TInt KInvalidParam4 = 963955232;
 
 CTIPCTest::CTIPCTest(CTestStep* aStep):
 	CTGraphicsBase(aStep),
@@ -75,6 +70,44 @@
 	
 	}
 
+/**
+	@SYMTestCaseID
+	GRAPHICS-FBSERV-0603
+
+	@SYMTestCaseDesc
+	Tests the sending of commands to a FbsSession 
+	server thru Inter Process Communication. Sends
+	both valid and invalid commands.
+
+	@SYMTestActions
+	Commands sent to the server:
+	1. EFbsMessShutdown
+	2. EFbsMessFontHeightInTwips
+	3. EFbsMessFontHeightInTwips
+	4. EFbsMessFontHeightInPixels
+	5. EFbsMessFontHeightInPixels
+	6. EFbsMessAddFontStoreFile
+	7. EFbsMessAddFontStoreFile
+	8. EFbsMessInstallFontStoreFile
+	9. EFbsMessInstallFontStoreFile
+	10. EFbsMessInstallFontStoreFile
+	11. EFbsMessBitmapCreate
+	12. EFbsMessRasterize
+	13. EFbsMessFaceAttrib
+	14. EFbsMessHasCharacter
+	15. EFbsMessFontNameAlias
+	16. EFbsMessGetNearestFontToDesignHeightInTwips
+	17. EFbsMessGetNearestFontToMaxHeightInTwips
+	18. EFbsMessGetNearestFontToDesignHeightInPixels
+	19. EFbsMessGetNearestFontToMaxHeightInPixels
+	20. EFbsMessShapeText
+	21. EFbsMessShapeDelete
+	22. EFbsMessSetTwipsHeight
+	23. EFbsMessGetTwipsHeight	
+	
+	@SYMTestExpectedResults
+	Test should pass
+*/
 void CTIPCTest::RunTestCaseL(TInt aCurTestCase)
 	{
 	_LIT(KCaseNumber, "CaseNumber");
@@ -88,254 +121,148 @@
 		
 	switch(aCurTestCase)
 		{
-	/**
-		@SYMTestCaseID
-		GRAPHICS-FBSERV-0603
-
-		@SYMTestCaseDesc
-		Tests the sending of commands to a FbsSession 
-		server thru Inter Process Communication. Sends
-		both valid and invalid commands.
-
-		@SYMTestActions
-		Commands sent to the server:
-		1. EFbsMessShutdown
-		2. EFbsMessFontHeightInTwips
-		3. EFbsMessFontHeightInTwips
-		4. EFbsMessFontHeightInPixels
-		5. EFbsMessFontHeightInPixels
-		6. EFbsMessAddFontStoreFile
-		7. EFbsMessAddFontStoreFile
-		8. EFbsMessInstallFontStoreFile
-		9. EFbsMessInstallFontStoreFile
-		10. EFbsMessInstallFontStoreFile
-		11. EFbsMessBitmapCreate
-		12. EFbsMessRasterize
-		13. EFbsMessFaceAttrib
-		14. EFbsMessHasCharacter
-		15. EFbsMessFontNameAlias
-		16. EFbsMessGetNearestFontToDesignHeightInTwips
-		17. EFbsMessGetNearestFontToMaxHeightInTwips
-		18. EFbsMessGetNearestFontToDesignHeightInPixels
-		19. EFbsMessGetNearestFontToMaxHeightInPixels
-		20. EFbsMessShapeText
-		21. EFbsMessShapeDelete
-		22. EFbsMessSetTwipsHeight
-		23. EFbsMessGetTwipsHeight
-		
-		@SYMTestExpectedResults
-		Test should pass
-	*/
 	case 1:
-		INFO_PRINTF1(_L("Shutdown"));
+		INFO_PRINTF1(_L("Shutdown\r\n"));
 		iFbs->SendCommand(EFbsMessShutdown);
 		TestComplete();
 		break;
 	case 2:
-		INFO_PRINTF1(_L("Height in twips with negative typeface index"));
+		INFO_PRINTF1(_L("Height in twips with negative typeface index\r\n"));
 		iFbs->SendCommand(EFbsMessFontHeightInTwips, -1);	
 		TEST(EFalse); // Previous line should have paniced 
 		TestComplete();
 		break;	
 	case 3:
-		INFO_PRINTF1(_L("Height in twips with invalid size"));
+		INFO_PRINTF1(_L("Height in twips with invalid size\r\n"));
 		iClient.SendInvalidSize(EFbsMessFontHeightInTwips);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 4:
-		INFO_PRINTF1(_L("Height in pixels with negative typeface index"));
+		INFO_PRINTF1(_L("Height in pixels with negative typeface index\r\n"));
 		iFbs->SendCommand(EFbsMessFontHeightInPixels, -1);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 5:
-		INFO_PRINTF1(_L("Height in pixels with invalid size"));
+		INFO_PRINTF1(_L("Height in pixels with invalid size\r\n"));
 		iClient.SendInvalidSize(EFbsMessFontHeightInPixels);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 6:
-		INFO_PRINTF1(_L("Add font store file with negative length"));
+		INFO_PRINTF1(_L("Add font store file with negative length\r\n"));
 		iFbs->SendCommand(EFbsMessAddFontStoreFile, 0, -1);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 7:
-		INFO_PRINTF1(_L("Add font store file with huge length"));
-		iFbs->SendCommand(EFbsMessAddFontStoreFile, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
+		INFO_PRINTF1(_L("Add font store file with huge length\r\n"));
+		iFbs->SendCommand(EFbsMessAddFontStoreFile, 963955448, 963955368, 963955300, 963955232);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 8:
-		INFO_PRINTF1(_L("Install font store file with negative length"));
+		INFO_PRINTF1(_L("Install font store file with negative length\r\n"));
 		iFbs->SendCommand(EFbsMessInstallFontStoreFile, 0, -1);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 9:
-		INFO_PRINTF1(_L("Install font store file with huge length"));
-		iFbs->SendCommand(EFbsMessInstallFontStoreFile, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
+		INFO_PRINTF1(_L("Install font store file with huge length\r\n"));
+		iFbs->SendCommand(EFbsMessInstallFontStoreFile, 963955448, 963955368, 963955300, 963955232);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 10:
-		INFO_PRINTF1(_L("Remove font store file with active references"));
+		INFO_PRINTF1(_L("Remove font store file with active references\r\n"));
 		iFbs->SendCommand(EFbsMessRemoveFontStoreFile, 11);
 		// With PDEF121246 (INC120690) fix in place, this test will always pass. Without the fix there will be a KERN 4 panic.
 		TEST(ETrue); 
 		TestComplete();
 		break;
 	case 11:
-		INFO_PRINTF1(_L("Bitmap create with invalid display mode"));
+		INFO_PRINTF1(_L("Bitmap create with invalid display mode\r\n"));
 		iClient.SendInvalidDisplayMode(EFbsMessBitmapCreate);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 12:
-		INFO_PRINTF1(_L("Rasterize with invalid bitmap handle"));
-		iFbs->SendCommand(EFbsMessRasterize, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
+		INFO_PRINTF1(_L("Rasterize with invalid bitmap handle\r\n"));
+		iFbs->SendCommand(EFbsMessRasterize, 963955448, 963955368, 963955300, 963955232);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 13:
-		INFO_PRINTF1(_L("Face Attribute with invalid bitmap handle"));
-		iFbs->SendCommand(EFbsMessFaceAttrib, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
+		INFO_PRINTF1(_L("Face Attribute with invalid bitmap handle\r\n"));
+		iFbs->SendCommand(EFbsMessFaceAttrib, 963955448, 963955368, 963955300, 963955232);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 14:
-		INFO_PRINTF1(_L("Has Character with invalid bitmap handle"));
-		iFbs->SendCommand(EFbsMessHasCharacter, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
+		INFO_PRINTF1(_L("Has Character with invalid bitmap handle\r\n"));
+		iFbs->SendCommand(EFbsMessHasCharacter, 963955448, 963955368, 963955300, 963955232);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 15:
-		INFO_PRINTF1(_L("Name Alias with huge alias name length"));
-		iFbs->SendCommand(EFbsMessFontNameAlias, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
+		INFO_PRINTF1(_L("Name Alias with huge alias name length\r\n"));
+		iFbs->SendCommand(EFbsMessFontNameAlias, 963955448, 963955368, 963955300, 963955232);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 16:
-		INFO_PRINTF1(_L("Get nearest font to design height in twips with invalid typeface name length"));
+		INFO_PRINTF1(_L("Get nearest font to design height in twips with invalid typeface name length\r\n"));
 		iClient.SendInvalidNameLength(EFbsMessGetNearestFontToDesignHeightInTwips);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 17:
-		INFO_PRINTF1(_L("Get nearest font to max height in twips with invalid typeface name length"));
+		INFO_PRINTF1(_L("Get nearest font to max height in twips with invalid typeface name length\r\n"));
 		iClient.SendInvalidNameLength(EFbsMessGetNearestFontToMaxHeightInTwips);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 18:
-		INFO_PRINTF1(_L("Get nearest font to design height in pixels with invalid typeface name length"));
+		INFO_PRINTF1(_L("Get nearest font to design height in pixels with invalid typeface name length\r\n"));
 		iClient.SendInvalidNameLength(EFbsMessGetNearestFontToDesignHeightInPixels);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 19:
-		INFO_PRINTF1(_L("Get nearest font to max height in pixels with invalid typeface name length"));
+		INFO_PRINTF1(_L("Get nearest font to max height in pixels with invalid typeface name length\r\n"));
 		iClient.SendInvalidNameLength(EFbsMessGetNearestFontToMaxHeightInPixels);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 20:
-		INFO_PRINTF1(_L("Shape text with invalid bitmap font handle"));
-		iFbs->SendCommand(EFbsMessShapeText, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
+		INFO_PRINTF1(_L("Shape text with invalid bitmap font handle\r\n"));
+		iFbs->SendCommand(EFbsMessShapeText, 963955448, 963955368, 963955300, 963955232);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 21:
-		INFO_PRINTF1(_L("Shape delete with invalid bitmap font handle"));
-		iFbs->SendCommand(EFbsMessShapeDelete, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
+		INFO_PRINTF1(_L("Shape delete with invalid bitmap font handle\r\n"));
+		iFbs->SendCommand(EFbsMessShapeDelete, 963955448, 963955368, 963955300, 963955232);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 22:
-		INFO_PRINTF1(_L("Set twips height with invalid font handle"));
-		iFbs->SendCommand(EFbsMessSetTwipsHeight, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
+		INFO_PRINTF1(_L("Set twips height with invalid font handle\r\n"));
+		iFbs->SendCommand(EFbsMessSetTwipsHeight, 963955448, 963955368, 963955300, 963955232);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 23:
-		INFO_PRINTF1(_L("Get twips height with invalid font handle"));
-		iFbs->SendCommand(EFbsMessGetTwipsHeight, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
+		INFO_PRINTF1(_L("Get twips height with invalid font handle\r\n"));
+		((CTIPCTestStep*)iStep)->SetOverallTestStepID(_L("GRAPHICS-FBSERV-0603"));
+		((CTIPCTestStep*)iStep)->RecordTestResultL();
+		((CTIPCTestStep*)iStep)->CloseTMSGraphicsStep();
+		iFbs->SendCommand(EFbsMessGetTwipsHeight, 963955448, 963955368, 963955300, 963955232);
 		TEST(EFalse);
 		TestComplete();
 		break;	
 	case 24:
-		/**
-			@SYMTestCaseID	GRAPHICS-FBSERV-0630
-
-			@SYMTestCaseDesc
-			Tests that invalid font handle to EFbsMessGetGlyphs causes panic
-
-			@SYMTestExpectedResults
-			Client should panic with FBSERV -8
-		*/
-		INFO_PRINTF1(_L("Get glyphs from glyph atlas with invalid font handle"));
-		iFbs->SendCommand(EFbsMessGetGlyphs, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
-		TEST(EFalse);
-		TestComplete();
-		break;
-	case 25:
-		/**
-			@SYMTestCaseID	GRAPHICS-FBSERV-0670
-
-			@SYMTestCaseDesc
-			Tests that invalid font handle to EFbsMessGetGlyphMetrics causes panic
-
-			@SYMTestExpectedResults
-			Client should panic with FBSERV -8
-		*/
-		INFO_PRINTF1(_L("Get glyph metrics with invalid font handle"));
-		iFbs->SendCommand(EFbsMessGetGlyphMetrics, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
-		TEST(EFalse);
-		TestComplete();
-		break;
-	/**
-		@SYMTestCaseID
-		TI18N-GDI-CIT-4086
-
-		@SYMTestCaseDesc
-		Test if FBS can handle invalid messages correctly
-		and panic the client as needed.
-
-		@SYMTestActions
-		26. EFbsMessGetFontTable
-		27. EFbsMessReleaseFontTable
-		28. EFbsMessGetGlyphOutline
-		29. EFbsMessReleaseGlyphOutline
-	
-		@SYMTestExpectedResults
-		Test should pass
-	*/
-	case 26:
-		INFO_PRINTF1(_L("Get Font Table with wrong msg"));
-		iFbs->SendCommand(EFbsMessGetFontTable, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
-		TEST(EFalse); 
-		TestComplete();
-		break;
-	case 27:
-		INFO_PRINTF1(_L("Release Font Table with wrong msg"));
-		iFbs->SendCommand(EFbsMessReleaseFontTable, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
-		TEST(EFalse); 
-		TestComplete();
-		break;
-	case 28:
-		INFO_PRINTF1(_L("Get Glyph outline with wrong msg"));
-		iFbs->SendCommand(EFbsMessGetGlyphOutline,KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
-		TEST(EFalse); 
-		TestComplete();
-		break;
-	case 29:
-		INFO_PRINTF1(_L("Release Glyph outline with wrong msg"));
-		iFbs->SendCommand(EFbsMessReleaseGlyphOutline, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
-		TEST(EFalse); 
-		TestComplete();
-		break;
-	case 30:
 		TestComplete();
 		break;
 		}
@@ -393,7 +320,50 @@
 	args.Set(0, &ptr1);	
 	SendReceive(aFunctionNumber, args);
 	}
+	
+	
+void CTIPCTest::LoadFontsL(const TDesC& aFontsDir)
+	{
+	RFs fileSys;
+	User::LeaveIfError(fileSys.Connect());
 
+	TFindFile fileFinder(fileSys);
+	CDir* foundFileList = NULL;
+	
+	_LIT(KFBSERVFontFilePattern, "*");
+	TInt findFileComplete = fileFinder.FindWildByDir(KFBSERVFontFilePattern,aFontsDir,foundFileList);
+
+	TRAPD(addFileError, LoadFontFromFilelistL(findFileComplete, foundFileList, fileFinder));
+	TEST(addFileError == KErrNone);
+		
+	fileSys.Close();
+	}
+
+void CTIPCTest::LoadFontFromFilelistL(TInt aFindFileComplete, CDir* aFoundFileList, TFindFile& aFileFinder)
+	{
+	TUid id1 = TUid::Uid(0);
+	while (!aFindFileComplete)
+		{
+		CleanupStack::PushL(aFoundFileList);
+
+		const TInt foundFileCount = aFoundFileList->Count();
+		for (TInt i = 0; i < foundFileCount; i++)
+			{			
+			TParse parse;
+			if (parse.Set((*aFoundFileList)[i].iName,&aFileFinder.File(),NULL) == KErrNone)
+				{
+				// Get filename and extension of font proposing to be loaded
+				TPtrC fontFilename = parse.NameAndExt();
+				id1=iFs->AddFileL(parse.FullName());
+				
+				iFs->RemoveFile(KNullUid);
+				
+				}
+			}
+		CleanupStack::PopAndDestroy(aFoundFileList); 
+		aFindFileComplete = aFileFinder.FindWild(aFoundFileList);
+		}
+	}
 
 //--------------
 __CONSTRUCT_STEP__(IPCTest)