]> git.saurik.com Git - wxWidgets.git/blobdiff - tests/controls/comboboxtest.cpp
Ensure that detached menus don't keep focus grab in wxGTK.
[wxWidgets.git] / tests / controls / comboboxtest.cpp
index 65e4161835126c8aa5ea0508c790128000cf7848..609c66b23222cd82d97339c2bed2e3307bddc668 100644 (file)
@@ -62,12 +62,14 @@ private:
         CPPUNIT_TEST( PopDismiss );
         CPPUNIT_TEST( Sort );
         CPPUNIT_TEST( ReadOnly );
+        CPPUNIT_TEST( IsEmpty );
     CPPUNIT_TEST_SUITE_END();
 
     void Size();
     void PopDismiss();
     void Sort();
     void ReadOnly();
+    void IsEmpty();
 
     wxComboBox *m_combo;
 
@@ -77,7 +79,7 @@ private:
 // register in the unnamed registry so that these tests are run by default
 CPPUNIT_TEST_SUITE_REGISTRATION( ComboBoxTestCase );
 
-// 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( ComboBoxTestCase, "ComboBoxTestCase" );
 
 // ----------------------------------------------------------------------------
@@ -127,23 +129,20 @@ void ComboBoxTestCase::Size()
 void ComboBoxTestCase::PopDismiss()
 {
 #if defined(__WXMSW__) || defined(__WXGTK210__)
-    wxTestableFrame* frame = wxStaticCast(wxTheApp->GetTopWindow(),
-                                          wxTestableFrame);
-
-    EventCounter count(m_combo, wxEVT_COMMAND_COMBOBOX_DROPDOWN);
-    EventCounter count1(m_combo, wxEVT_COMMAND_COMBOBOX_CLOSEUP);
+    EventCounter drop(m_combo, wxEVT_COMBOBOX_DROPDOWN);
+    EventCounter close(m_combo, wxEVT_COMBOBOX_CLOSEUP);
 
     m_combo->Popup();
     m_combo->Dismiss();
 
-    CPPUNIT_ASSERT_EQUAL(1, frame->GetEventCount(wxEVT_COMMAND_COMBOBOX_DROPDOWN));
-    CPPUNIT_ASSERT_EQUAL(1, frame->GetEventCount(wxEVT_COMMAND_COMBOBOX_CLOSEUP));
+    CPPUNIT_ASSERT_EQUAL(1, drop.GetCount());
+    CPPUNIT_ASSERT_EQUAL(1, close.GetCount());
 #endif
 }
 
 void ComboBoxTestCase::Sort()
 {
-#if !defined(__WXGTK__) && !defined(__WXOSX__)
+#if !defined(__WXOSX__)
     m_combo = new wxComboBox(wxTheApp->GetTopWindow(), wxID_ANY, "",
                              wxDefaultPosition, wxDefaultSize, 0, NULL,
                              wxCB_SORT);
@@ -194,4 +193,27 @@ void ComboBoxTestCase::ReadOnly()
 #endif
 }
 
+void ComboBoxTestCase::IsEmpty()
+{
+    CPPUNIT_ASSERT( m_combo->IsListEmpty() );
+    CPPUNIT_ASSERT( m_combo->IsTextEmpty() );
+
+    m_combo->Append("foo");
+    CPPUNIT_ASSERT( !m_combo->IsListEmpty() );
+    CPPUNIT_ASSERT( m_combo->IsTextEmpty() );
+
+    m_combo->SetValue("bar");
+    CPPUNIT_ASSERT( !m_combo->IsListEmpty() );
+    CPPUNIT_ASSERT( !m_combo->IsTextEmpty() );
+
+    m_combo->Clear();
+    CPPUNIT_ASSERT( m_combo->IsListEmpty() );
+    CPPUNIT_ASSERT( m_combo->IsTextEmpty() );
+
+#ifdef TEST_INVALID_COMBOBOX_ISEMPTY
+    // Compiling this should fail, see failtest target definition in test.bkl.
+    m_combo->IsEmpty();
+#endif
+}
+
 #endif //wxUSE_COMBOBOX