CPPUNIT_TEST_SUITE( ComboBoxTestCase );
wxTEXT_ENTRY_TESTS();
+
+ CPPUNIT_TEST( Size );
CPPUNIT_TEST_SUITE_END();
+ void Size();
+
wxComboBox *m_combo;
DECLARE_NO_COPY_CLASS(ComboBoxTestCase)
// tests themselves
// ----------------------------------------------------------------------------
+void ComboBoxTestCase::Size()
+{
+ // under MSW changing combobox size is a non-trivial operation because of
+ // confusion between the size of the control with and without dropdown, so
+ // check that it does work as expected
+
+ const int heightOrig = m_combo->GetSize().y;
+
+ // check that the height doesn't change if we don't touch it
+ m_combo->SetSize(100, -1);
+ CPPUNIT_ASSERT_EQUAL( heightOrig, m_combo->GetSize().y );
+
+ // check that setting both big and small (but not too small, there is a
+ // limit on how small the control can become under MSW) heights works
+ m_combo->SetSize(-1, 50);
+ CPPUNIT_ASSERT_EQUAL( 50, m_combo->GetSize().y );
+
+ m_combo->SetSize(-1, 10);
+ CPPUNIT_ASSERT_EQUAL( 10, m_combo->GetSize().y );
+
+ // and also that restoring it works (this used to be broken before 2.9.1)
+ m_combo->SetSize(-1, heightOrig);
+ CPPUNIT_ASSERT_EQUAL( heightOrig, m_combo->GetSize().y );
+}
+