X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/232fdc630c42eb165f7659981043e794be03b3b7..c2f8c2b245959f612f0ebac31ab8d80bef6ea9e2:/tests/window/setsize.cpp diff --git a/tests/window/setsize.cpp b/tests/window/setsize.cpp index 16468d22bc..43482c111d 100644 --- a/tests/window/setsize.cpp +++ b/tests/window/setsize.cpp @@ -3,7 +3,6 @@ // Purpose: Tests for SetSize() and related wxWindow methods // Author: Vadim Zeitlin // Created: 2008-05-25 -// RCS-ID: $Id$ // Copyright: (c) 2008 Vadim Zeitlin /////////////////////////////////////////////////////////////////////////////// @@ -40,10 +39,25 @@ private: 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; @@ -53,7 +67,7 @@ private: // 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" ); // ---------------------------------------------------------------------------- @@ -62,7 +76,7 @@ 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() @@ -91,3 +105,13 @@ void SetSizeTestCase::SetSizeLessThanMinSize() 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() ); +}