X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e3778b4d9c7eebc39f496a9dd055638e06fb9140..f321d0bc0caf4d78ccc5426e926fc25c46297439:/tests/window/setsize.cpp diff --git a/tests/window/setsize.cpp b/tests/window/setsize.cpp index c1fd6f8535..b720b79335 100644 --- a/tests/window/setsize.cpp +++ b/tests/window/setsize.cpp @@ -40,10 +40,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; @@ -62,7 +77,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 +106,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() ); +}