#endif // TEST_GC
CPPUNIT_TEST_SUITE_END();
- template <typename T>
- void DoTestGetTextExtent(const T& obj);
-
void DCGetTextExtent();
void WindowGetTextExtent();
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( MeasuringTextTestCase, "MeasuringTextTestCase" );
// ----------------------------------------------------------------------------
-// tests themselves
+// helper for XXXTextExtent() methods
// ----------------------------------------------------------------------------
template <typename T>
-void MeasuringTextTestCase::DoTestGetTextExtent(const T& obj)
+struct GetTextExtentTester
{
- // Test that getting the height only doesn't crash.
- int y;
- obj.GetTextExtent("H", NULL, &y);
-
- CPPUNIT_ASSERT( y > 1 );
+ // Constructor runs a couple of simple tests for GetTextExtent().
+ GetTextExtentTester(const T& obj)
+ {
+ // Test that getting the height only doesn't crash.
+ int y;
+ obj.GetTextExtent("H", NULL, &y);
+
+ CPPUNIT_ASSERT( y > 1 );
+
+ wxSize size = obj.GetTextExtent("Hello");
+ CPPUNIT_ASSERT( size.x > 1 );
+ CPPUNIT_ASSERT_EQUAL( y, size.y );
+ }
+};
- wxSize size = obj.GetTextExtent("Hello");
- CPPUNIT_ASSERT( size.x > 1 );
- CPPUNIT_ASSERT_EQUAL( y, size.y );
-}
+// ----------------------------------------------------------------------------
+// tests themselves
+// ----------------------------------------------------------------------------
void MeasuringTextTestCase::DCGetTextExtent()
{
wxClientDC dc(wxTheApp->GetTopWindow());
- DoTestGetTextExtent(dc);
+ GetTextExtentTester<wxClientDC> testDC(dc);
int w;
dc.GetMultiLineTextExtent("Good\nbye", &w, NULL);
// should set the default font in it implicitly but for now just work
// around it.
psdc.SetFont(*wxNORMAL_FONT);
- DoTestGetTextExtent(psdc);
+ GetTextExtentTester<wxPostScriptDC> testPS(psdc);
#endif
#if wxUSE_ENH_METAFILE
wxEnhMetaFileDC metadc;
- DoTestGetTextExtent(metadc);
+ GetTextExtentTester<wxEnhMetaFileDC> testMF(metadc);
#endif
}
{
wxWindow* const win = wxTheApp->GetTopWindow();
- DoTestGetTextExtent(*win);
+ GetTextExtentTester<wxWindow> testWin(*win);
}
void MeasuringTextTestCase::GetPartialTextExtent()