From: Kevin Ollivier Date: Wed, 15 Apr 2009 22:38:53 +0000 (+0000) Subject: Add a test to ensure that CreateMeasuringContext creates a valid context X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/f806b2b4ee503113a0edb8b2813ff5ff4d2d7c30?ds=sidebyside Add a test to ensure that CreateMeasuringContext creates a valid context that can measure text. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60187 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/tests/graphics/measuring.cpp b/tests/graphics/measuring.cpp new file mode 100644 index 0000000000..b5e8419a49 --- /dev/null +++ b/tests/graphics/measuring.cpp @@ -0,0 +1,95 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: tests/controls/clientsize.cpp +// Purpose: Client vs. window size handling unit test +// Author: Vaclav Slavik +// Created: 2008-02-12 +// RCS-ID: $Id: clientsize.cpp 53740 2008-05-25 02:56:22Z VZ $ +// Copyright: (c) 2008 Vaclav Slavik +/////////////////////////////////////////////////////////////////////////////// + +// ---------------------------------------------------------------------------- +// headers +// ---------------------------------------------------------------------------- + +#include "testprec.h" + +#if wxUSE_GRAPHICS_CONTEXT + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/app.h" + #include "wx/font.h" + #include "wx/window.h" +#endif // WX_PRECOMP + +#include "wx/graphics.h" +// ---------------------------------------------------------------------------- +// test class +// ---------------------------------------------------------------------------- + +class MeasuringContextTestCase : public CppUnit::TestCase +{ +public: + MeasuringContextTestCase() { } + + virtual void setUp(); + virtual void tearDown(); + +private: + CPPUNIT_TEST_SUITE( MeasuringContextTestCase ); + CPPUNIT_TEST( GetTextExtent ); + CPPUNIT_TEST_SUITE_END(); + + void GetTextExtent(); + + wxWindow *m_win; + + DECLARE_NO_COPY_CLASS(MeasuringContextTestCase) +}; + +// register in the unnamed registry so that these tests are run by default +CPPUNIT_TEST_SUITE_REGISTRATION( MeasuringContextTestCase ); + +// also include in it's own registry so that these tests can be run alone +CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( MeasuringContextTestCase, "MeasuringContextTestCase" ); + +// ---------------------------------------------------------------------------- +// test initialization +// ---------------------------------------------------------------------------- + +void MeasuringContextTestCase::setUp() +{ + m_win = wxTheApp->GetTopWindow(); +} + +void MeasuringContextTestCase::tearDown() +{ + m_win = NULL; +} + +// ---------------------------------------------------------------------------- +// tests themselves +// ---------------------------------------------------------------------------- + +void MeasuringContextTestCase::GetTextExtent() +{ + wxGraphicsRenderer* renderer = wxGraphicsRenderer::GetDefaultRenderer(); + CPPUNIT_ASSERT(renderer); + wxGraphicsContext* context = renderer->CreateMeasuringContext(); + CPPUNIT_ASSERT(context); + wxFont font(12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL); + CPPUNIT_ASSERT(font.IsOk()); + context->SetFont(font, *wxBLACK); + double width, height, descent, externalLeading = 0.0; + context->GetTextExtent("x", &width, &height, &descent, &externalLeading); + + // TODO: Determine a way to make these tests more robust. + CPPUNIT_ASSERT(width > 0.0); + CPPUNIT_ASSERT(height > 0.0); + +} + +#endif diff --git a/tests/test.bkl b/tests/test.bkl index 868899f3a2..31507cdf56 100644 --- a/tests/test.bkl +++ b/tests/test.bkl @@ -108,6 +108,7 @@ geometry/rect.cpp geometry/size.cpp geometry/point.cpp + graphics/measuring.cpp config/config.cpp controls/comboboxtest.cpp controls/headerctrltest.cpp