// Purpose: Tests for SetSize() and related wxWindow methods
// Author: Vadim Zeitlin
// Created: 2008-05-25
-// RCS-ID: $Id$
// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
///////////////////////////////////////////////////////////////////////////////
CPPUNIT_TEST_SUITE( SetSizeTestCase );
CPPUNIT_TEST( SetSize );
CPPUNIT_TEST( SetSizeLessThanMinSize );
+ CPPUNIT_TEST( BestSize );
CPPUNIT_TEST_SUITE_END();
void SetSize();
void SetSizeLessThanMinSize();
+ void BestSize();
+
+ // Helper class overriding DoGetBestSize() for testing purposes.
+ class MyWindow : public wxWindow
+ {
+ public:
+ MyWindow(wxWindow* parent)
+ : wxWindow(parent, wxID_ANY)
+ {
+ }
+
+ protected:
+ virtual wxSize DoGetBestSize() const { return wxSize(50, 250); }
+ };
wxWindow *m_win;
// register in the unnamed registry so that these tests are run by default
CPPUNIT_TEST_SUITE_REGISTRATION( SetSizeTestCase );
-// also include in it's own registry so that these tests can be run alone
+// also include in its own registry so that these tests can be run alone
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( SetSizeTestCase, "SetSizeTestCase" );
// ----------------------------------------------------------------------------
void SetSizeTestCase::setUp()
{
- m_win = new wxWindow(wxTheApp->GetTopWindow(), wxID_ANY);
+ m_win = new MyWindow(wxTheApp->GetTopWindow());
}
void SetSizeTestCase::tearDown()
CPPUNIT_ASSERT_EQUAL( size, m_win->GetSize() );
}
+void SetSizeTestCase::BestSize()
+{
+ CPPUNIT_ASSERT_EQUAL( wxSize(50, 250), m_win->GetBestSize() );
+
+ m_win->SetMinSize(wxSize(100, 100));
+ CPPUNIT_ASSERT_EQUAL( wxSize(100, 250), m_win->GetBestSize() );
+
+ m_win->SetMaxSize(wxSize(200, 200));
+ CPPUNIT_ASSERT_EQUAL( wxSize(100, 200), m_win->GetBestSize() );
+}