wxWidgets/tests/misc/settings.cpp
Vadim Zeitlin 009f89f75d Make the assert in SettingsTestCase::GlobalFonts() more informative.
Show the index of the font and the face name which was invalid.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62707 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-24 00:01:51 +00:00

172 lines
4.2 KiB
C++

///////////////////////////////////////////////////////////////////////////////
// Name: tests/misc/settings.cpp
// Purpose: test wxSettings
// Author: Francesco Montorsi
// Created: 2009-03-24
// RCS-ID: $Id$
// Copyright: (c) 2009 Francesco Montorsi
///////////////////////////////////////////////////////////////////////////////
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
#include "testprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#include "wx/settings.h"
#include "wx/fontenum.h"
#include "wx/brush.h"
#include "wx/pen.h"
// ----------------------------------------------------------------------------
// test class
// ----------------------------------------------------------------------------
class SettingsTestCase : public CppUnit::TestCase
{
public:
SettingsTestCase() { }
private:
CPPUNIT_TEST_SUITE( SettingsTestCase );
CPPUNIT_TEST( GetColour );
CPPUNIT_TEST( GetFont );
CPPUNIT_TEST( GlobalColours );
CPPUNIT_TEST( GlobalFonts );
CPPUNIT_TEST( GlobalBrushes );
CPPUNIT_TEST( GlobalPens );
CPPUNIT_TEST_SUITE_END();
void GetColour();
void GetFont();
// not really wxSystemSettings stuff but still nice to test:
void GlobalColours();
void GlobalFonts();
void GlobalBrushes();
void GlobalPens();
DECLARE_NO_COPY_CLASS(SettingsTestCase)
};
// register in the unnamed registry so that these tests are run by default
CPPUNIT_TEST_SUITE_REGISTRATION( SettingsTestCase );
// also include in it's own registry so that these tests can be run alone
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( SettingsTestCase, "SettingsTestCase" );
void SettingsTestCase::GetColour()
{
for (unsigned int i=wxSYS_COLOUR_SCROLLBAR; i < wxSYS_COLOUR_MAX; i++)
CPPUNIT_ASSERT( wxSystemSettings::GetColour((wxSystemColour)i).IsOk() );
}
void SettingsTestCase::GetFont()
{
const wxSystemFont ids[] =
{
wxSYS_OEM_FIXED_FONT,
wxSYS_ANSI_FIXED_FONT,
wxSYS_ANSI_VAR_FONT,
wxSYS_SYSTEM_FONT,
wxSYS_DEVICE_DEFAULT_FONT,
wxSYS_SYSTEM_FIXED_FONT,
wxSYS_DEFAULT_GUI_FONT
};
for (unsigned int i=0; i < WXSIZEOF(ids); i++)
{
const wxFont& font = wxSystemSettings::GetFont(ids[i]);
CPPUNIT_ASSERT( font.IsOk() &&
wxFontEnumerator::IsValidFacename(font.GetFaceName()) );
}
}
void SettingsTestCase::GlobalColours()
{
wxColour col[] =
{
*wxBLACK,
*wxBLUE,
*wxCYAN,
*wxGREEN,
*wxLIGHT_GREY,
*wxRED,
*wxWHITE
};
for (unsigned int i=0; i < WXSIZEOF(col); i++)
CPPUNIT_ASSERT( col[i].IsOk() );
}
void SettingsTestCase::GlobalFonts()
{
const wxFont font[] =
{
*wxNORMAL_FONT,
*wxSMALL_FONT,
*wxITALIC_FONT,
*wxSWISS_FONT
};
for (unsigned int i=0; i < WXSIZEOF(font); i++)
{
CPPUNIT_ASSERT( font[i].IsOk() );
const wxString facename = font[i].GetFaceName();
if ( !facename.empty() )
{
WX_ASSERT_MESSAGE(
("font #%u: facename \"%s\" is invalid", i, facename),
wxFontEnumerator::IsValidFacename(facename)
);
}
}
}
void SettingsTestCase::GlobalBrushes()
{
wxBrush brush[] =
{
*wxBLACK_BRUSH,
*wxBLUE_BRUSH,
*wxCYAN_BRUSH,
*wxGREEN_BRUSH,
*wxGREY_BRUSH,
*wxLIGHT_GREY_BRUSH,
*wxMEDIUM_GREY_BRUSH,
*wxRED_BRUSH,
*wxTRANSPARENT_BRUSH,
*wxWHITE_BRUSH
};
for (unsigned int i=0; i < WXSIZEOF(brush); i++)
CPPUNIT_ASSERT( brush[i].IsOk() );
}
void SettingsTestCase::GlobalPens()
{
wxPen pen[] =
{
*wxBLACK_DASHED_PEN,
*wxBLACK_PEN,
*wxBLUE_PEN,
*wxCYAN_PEN,
*wxGREEN_PEN,
*wxGREY_PEN,
*wxLIGHT_GREY_PEN,
*wxMEDIUM_GREY_PEN,
*wxRED_PEN,
*wxTRANSPARENT_PEN,
*wxWHITE_PEN
};
for (unsigned int i=0; i < WXSIZEOF(pen); i++)
CPPUNIT_ASSERT( pen[i].IsOk() );
}