fbs/fontandbitmapserver/tfbs/tipctest.CPP
branchRCL_3
changeset 19 bbf46f59e123
parent 0 5d03bc08d59c
child 20 25ffed67c7ef
--- a/fbs/fontandbitmapserver/tfbs/tipctest.CPP	Thu Aug 19 11:11:18 2010 +0300
+++ b/fbs/fontandbitmapserver/tfbs/tipctest.CPP	Tue Aug 31 16:31:06 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1996-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"
@@ -13,11 +13,16 @@
 // 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),
@@ -70,44 +75,6 @@
 	
 	}
 
-/**
-	@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");
@@ -121,148 +88,254 @@
 		
 	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\r\n"));
+		INFO_PRINTF1(_L("Shutdown"));
 		iFbs->SendCommand(EFbsMessShutdown);
 		TestComplete();
 		break;
 	case 2:
-		INFO_PRINTF1(_L("Height in twips with negative typeface index\r\n"));
+		INFO_PRINTF1(_L("Height in twips with negative typeface index"));
 		iFbs->SendCommand(EFbsMessFontHeightInTwips, -1);	
 		TEST(EFalse); // Previous line should have paniced 
 		TestComplete();
 		break;	
 	case 3:
-		INFO_PRINTF1(_L("Height in twips with invalid size\r\n"));
+		INFO_PRINTF1(_L("Height in twips with invalid size"));
 		iClient.SendInvalidSize(EFbsMessFontHeightInTwips);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 4:
-		INFO_PRINTF1(_L("Height in pixels with negative typeface index\r\n"));
+		INFO_PRINTF1(_L("Height in pixels with negative typeface index"));
 		iFbs->SendCommand(EFbsMessFontHeightInPixels, -1);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 5:
-		INFO_PRINTF1(_L("Height in pixels with invalid size\r\n"));
+		INFO_PRINTF1(_L("Height in pixels with invalid size"));
 		iClient.SendInvalidSize(EFbsMessFontHeightInPixels);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 6:
-		INFO_PRINTF1(_L("Add font store file with negative length\r\n"));
+		INFO_PRINTF1(_L("Add font store file with negative length"));
 		iFbs->SendCommand(EFbsMessAddFontStoreFile, 0, -1);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 7:
-		INFO_PRINTF1(_L("Add font store file with huge length\r\n"));
-		iFbs->SendCommand(EFbsMessAddFontStoreFile, 963955448, 963955368, 963955300, 963955232);
+		INFO_PRINTF1(_L("Add font store file with huge length"));
+		iFbs->SendCommand(EFbsMessAddFontStoreFile, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 8:
-		INFO_PRINTF1(_L("Install font store file with negative length\r\n"));
+		INFO_PRINTF1(_L("Install font store file with negative length"));
 		iFbs->SendCommand(EFbsMessInstallFontStoreFile, 0, -1);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 9:
-		INFO_PRINTF1(_L("Install font store file with huge length\r\n"));
-		iFbs->SendCommand(EFbsMessInstallFontStoreFile, 963955448, 963955368, 963955300, 963955232);
+		INFO_PRINTF1(_L("Install font store file with huge length"));
+		iFbs->SendCommand(EFbsMessInstallFontStoreFile, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 10:
-		INFO_PRINTF1(_L("Remove font store file with active references\r\n"));
+		INFO_PRINTF1(_L("Remove font store file with active references"));
 		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\r\n"));
+		INFO_PRINTF1(_L("Bitmap create with invalid display mode"));
 		iClient.SendInvalidDisplayMode(EFbsMessBitmapCreate);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 12:
-		INFO_PRINTF1(_L("Rasterize with invalid bitmap handle\r\n"));
-		iFbs->SendCommand(EFbsMessRasterize, 963955448, 963955368, 963955300, 963955232);
+		INFO_PRINTF1(_L("Rasterize with invalid bitmap handle"));
+		iFbs->SendCommand(EFbsMessRasterize, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 13:
-		INFO_PRINTF1(_L("Face Attribute with invalid bitmap handle\r\n"));
-		iFbs->SendCommand(EFbsMessFaceAttrib, 963955448, 963955368, 963955300, 963955232);
+		INFO_PRINTF1(_L("Face Attribute with invalid bitmap handle"));
+		iFbs->SendCommand(EFbsMessFaceAttrib, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 14:
-		INFO_PRINTF1(_L("Has Character with invalid bitmap handle\r\n"));
-		iFbs->SendCommand(EFbsMessHasCharacter, 963955448, 963955368, 963955300, 963955232);
+		INFO_PRINTF1(_L("Has Character with invalid bitmap handle"));
+		iFbs->SendCommand(EFbsMessHasCharacter, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 15:
-		INFO_PRINTF1(_L("Name Alias with huge alias name length\r\n"));
-		iFbs->SendCommand(EFbsMessFontNameAlias, 963955448, 963955368, 963955300, 963955232);
+		INFO_PRINTF1(_L("Name Alias with huge alias name length"));
+		iFbs->SendCommand(EFbsMessFontNameAlias, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 16:
-		INFO_PRINTF1(_L("Get nearest font to design height in twips with invalid typeface name length\r\n"));
+		INFO_PRINTF1(_L("Get nearest font to design height in twips with invalid typeface name length"));
 		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\r\n"));
+		INFO_PRINTF1(_L("Get nearest font to max height in twips with invalid typeface name length"));
 		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\r\n"));
+		INFO_PRINTF1(_L("Get nearest font to design height in pixels with invalid typeface name length"));
 		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\r\n"));
+		INFO_PRINTF1(_L("Get nearest font to max height in pixels with invalid typeface name length"));
 		iClient.SendInvalidNameLength(EFbsMessGetNearestFontToMaxHeightInPixels);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 20:
-		INFO_PRINTF1(_L("Shape text with invalid bitmap font handle\r\n"));
-		iFbs->SendCommand(EFbsMessShapeText, 963955448, 963955368, 963955300, 963955232);
+		INFO_PRINTF1(_L("Shape text with invalid bitmap font handle"));
+		iFbs->SendCommand(EFbsMessShapeText, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 21:
-		INFO_PRINTF1(_L("Shape delete with invalid bitmap font handle\r\n"));
-		iFbs->SendCommand(EFbsMessShapeDelete, 963955448, 963955368, 963955300, 963955232);
+		INFO_PRINTF1(_L("Shape delete with invalid bitmap font handle"));
+		iFbs->SendCommand(EFbsMessShapeDelete, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 22:
-		INFO_PRINTF1(_L("Set twips height with invalid font handle\r\n"));
-		iFbs->SendCommand(EFbsMessSetTwipsHeight, 963955448, 963955368, 963955300, 963955232);
+		INFO_PRINTF1(_L("Set twips height with invalid font handle"));
+		iFbs->SendCommand(EFbsMessSetTwipsHeight, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
 		TEST(EFalse);
 		TestComplete();
 		break;
 	case 23:
-		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);
+		INFO_PRINTF1(_L("Get twips height with invalid font handle"));
+		iFbs->SendCommand(EFbsMessGetTwipsHeight, KInvalidParam1, KInvalidParam2, KInvalidParam3, KInvalidParam4);
 		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;
 		}
@@ -320,50 +393,7 @@
 	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)