--- 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)