Update contrib.
1 // Copyright (c) 1996-2010 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
18 _LIT( KDriveName, "z:" );
19 _LIT( KEpsonFileName, "epson.pdr" );
22 class CTPdrMem : public CTGraphicsBase
25 CTPdrMem(CTestStep* aStep);
28 virtual void RunTestCaseL(TInt aCurTestCase);
32 void TestCreatePrinterDeviceL();
35 CTPdrMem::CTPdrMem(CTestStep* aStep) :
41 void CTPdrMem::RunTestCaseL(TInt aCurTestCase)
44 ((CTPdrMemStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName);
49 @SYMTestCaseID GRAPHICS-PDRMEM-0001
51 ((CTPdrMemStep*)iStep)->SetTestStepID(_L("GRAPHICS-PDRMEM-0001"));
57 @SYMTestCaseID GRAPHICS-PDRMEM-0002
59 ((CTPdrMemStep*)iStep)->SetTestStepID(_L("GRAPHICS-PDRMEM-0002"));
60 TRAP(ret,TestOpenPdrL());
65 @SYMTestCaseID GRAPHICS-PDRMEM-0003
67 ((CTPdrMemStep*)iStep)->SetTestStepID(_L("GRAPHICS-PDRMEM-0003"));
68 TRAP(ret,TestCreatePrinterDeviceL());
72 ((CTPdrMemStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName);
73 // TRAP(ret,testGetNearestFontToDesignHeightInTwips());
74 // TEST(ret==KErrNone);
77 ((CTPdrMemStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName);
78 ((CTPdrMemStep*)iStep)->CloseTMSGraphicsStep();
82 ((CTPdrMemStep*)iStep)->RecordTestResultL();
85 void CTPdrMem::TestNewL()
87 INFO_PRINTF1(_L("NewL"));
90 CPrinterDriver *driver=NULL;
96 __UHEAP_SETFAIL(RHeap::EDeterministic,failRate);
98 TRAP(ret,driver=CPrinterDriver::NewL());
99 RDebug::Print(_L("driver %d failrate %d\n"),driver,failRate);
100 if (ret==KErrNoMemory)
106 else if(ret==KErrNone)
111 __UHEAP_SETFAIL(RHeap::ENone,failRate);
114 User::Panic(_L("Unknown error"),ret);
119 void CTPdrMem::TestOpenPdrL()
121 INFO_PRINTF1(_L("OpenPdrL"));
123 CPrinterDriver* driver=CPrinterDriver::NewL();
124 TFileName filename( KDriveName );
125 filename.Append( KDefaultPrinterDriverPath );
126 filename.Append( KEpsonFileName );
127 driver->OpenPdrL( filename );
129 TInt ret=KErrGeneral;
131 while (ret!=KErrNone)
134 __UHEAP_SETFAIL(RHeap::EDeterministic,failRate);
136 TRAP(ret,driver->OpenPdrL( filename ));
137 RDebug::Print(_L("NumModels %d failrate %d\n"),driver->NumModels(), failRate);
138 if (ret==KErrNoMemory)
143 TEST(driver->NumModels()==0);
145 else if(ret==KErrNone)
150 __UHEAP_SETFAIL(RHeap::ENone,failRate);
153 User::Panic(_L("Unknown error"),ret);
161 void CTPdrMem::TestCreatePrinterDeviceL()
164 INFO_PRINTF1(_L("CreatePrinterDeviceL"));
166 CPrinterDriver* driver=CPrinterDriver::NewL();
167 TFileName filename( KDriveName );
168 filename.Append( KDefaultPrinterDriverPath );
169 filename.Append( KEpsonFileName );
170 driver->OpenPdrL( filename );
171 TPrinterModelEntry entry;
172 entry=driver->Model(0);
173 RDebug::Print(_L("Drivers: %d\r\n"), driver->NumModels());
174 RDebug::Print(_L("Model %d: %d\r\n"), 0, entry.iUid.iUid);
175 CPrinterDevice* device=NULL;
176 TInt ret=KErrGeneral;
181 __UHEAP_SETFAIL(RHeap::EDeterministic,failRate);
183 TRAP(ret,device=driver->CreatePrinterDeviceL(entry.iUid));
184 RDebug::Print(_L("device %d failrate %d\n"),device, failRate);
185 if (ret==KErrNoMemory)
191 else if (ret==KErrNone)
194 __UHEAP_SETFAIL(RHeap::ENone,failRate);
197 User::Panic(_L("Unknown error"),ret);
205 //This test is useless.
206 //It fails every time when calling device->GetNearestFontToDesignHeightInTwips().
207 //device->GetNearestFontToDesignHeightInTwips() calls CFbsDrvDevice::LoadTypeFaceList()
208 //which allocates additional memory for iGenTypefaceFontsType between
209 //__UHEAP_MARK and __UHEAP_MARKEND macros.
210 //CFbsDrvDevice takes care of deleting iGenTypefaceFontsType in its destructor.
212 LOCAL_C void testGetNearestFontToDesignHeightInTwips()
215 INFO_PRINTF1(_L("GetNearestFontToDesignHeightInTwips"));
216 CPrinterDriver* driver=CPrinterDriver::NewL();
217 driver->OpenPdrL(_L("z:\\system\\printers\\epson.pdr"));
221 spec.iTypeface.iName=_L("NewCourier");
223 spec.iFontStyle.SetPosture(EPostureUpright);
224 spec.iFontStyle.SetStrokeWeight(EStrokeWeightNormal);
225 spec.iFontStyle.SetPrintPosition(EPrintPosNormal);
226 TPrinterModelEntry entry;
227 entry=driver->Model(0);
228 CPrinterDevice* device=NULL;
229 TRAPD(ret,device=driver->CreatePrinterDeviceL(entry.iUid));
231 ret=device->GetNearestFontToDesignHeightInTwips((CFont *&) font,spec);
233 device->ReleaseFont(font);
240 __UHEAP_SETFAIL(RHeap::EDeterministic,failRate);
243 ret = device->GetNearestFontToDesignHeightInTwips((CFont *&) font,spec);
244 INFO_PRINTF2(_L("Font %d failrate %d\n"),font,failRate);
245 if (ret==KErrNoMemory)
251 else if (ret==KErrNone)
253 // device->ReleaseFont(font);
258 User::Panic(_L("Unknown error"),ret);
270 __CONSTRUCT_STEP__(PdrMem)