X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3b5c96639b9214ff748b80bc54157535e76f3020..e86aa7a62cc8be79ffaeb0d07b70161cb9ea2c74:/tests/controls/listboxtest.cpp diff --git a/tests/controls/listboxtest.cpp b/tests/controls/listboxtest.cpp index 2accf43119..32cc9defc2 100644 --- a/tests/controls/listboxtest.cpp +++ b/tests/controls/listboxtest.cpp @@ -72,7 +72,7 @@ private: // register in the unnamed registry so that these tests are run by default CPPUNIT_TEST_SUITE_REGISTRATION( ListBoxTestCase ); -// 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( ListBoxTestCase, "ListBoxTestCase" ); //initialise the static variable @@ -170,6 +170,12 @@ void ListBoxTestCase::MultipleSelect() CPPUNIT_ASSERT(!m_list->IsSelected(1)); CPPUNIT_ASSERT(m_list->IsSelected(2)); CPPUNIT_ASSERT(!m_list->IsSelected(3)); + + m_list->SetSelection(0); + m_list->SetSelection(wxNOT_FOUND); + + m_list->GetSelections(selected); + CPPUNIT_ASSERT_EQUAL(0, selected.Count()); } void ListBoxTestCase::ClickEvents() @@ -178,8 +184,8 @@ void ListBoxTestCase::ClickEvents() wxTestableFrame* frame = wxStaticCast(wxTheApp->GetTopWindow(), wxTestableFrame); - EventCounter count(frame, wxEVT_COMMAND_LISTBOX_SELECTED); - EventCounter count1(frame, wxEVT_COMMAND_LISTBOX_DOUBLECLICKED); + EventCounter selected(frame, wxEVT_LISTBOX); + EventCounter dclicked(frame, wxEVT_LISTBOX_DCLICK); wxUIActionSimulator sim; @@ -199,12 +205,12 @@ void ListBoxTestCase::ClickEvents() sim.MouseClick(); wxYield(); - CPPUNIT_ASSERT_EQUAL(1, frame->GetEventCount()); + CPPUNIT_ASSERT_EQUAL(1, selected.GetCount()); sim.MouseDblClick(); wxYield(); - CPPUNIT_ASSERT_EQUAL(1, frame->GetEventCount()); + CPPUNIT_ASSERT_EQUAL(1, dclicked.GetCount()); #endif } @@ -214,8 +220,8 @@ void ListBoxTestCase::ClickNotOnItem() wxTestableFrame* frame = wxStaticCast(wxTheApp->GetTopWindow(), wxTestableFrame); - EventCounter count(frame, wxEVT_COMMAND_LISTBOX_SELECTED); - EventCounter count1(frame, wxEVT_COMMAND_LISTBOX_DOUBLECLICKED); + EventCounter selected(frame, wxEVT_LISTBOX); + EventCounter dclicked(frame, wxEVT_LISTBOX_DCLICK); wxUIActionSimulator sim; @@ -226,6 +232,13 @@ void ListBoxTestCase::ClickNotOnItem() m_list->Append(testitems); + // It is important to set a valid selection: if the control doesn't have + // any, clicking anywhere in it, even outside of any item, selects the + // first item in the control under GTK resulting in a selection changed + // event. This is not a wx bug, just the native platform behaviour so + // simply avoid it by starting with a valid selection. + m_list->SetSelection(0); + m_list->Update(); m_list->Refresh(); @@ -239,7 +252,8 @@ void ListBoxTestCase::ClickNotOnItem() wxYield(); //If we are not clicking on an item we shouldn't have any events - CPPUNIT_ASSERT_EQUAL(0, frame->GetEventCount()); + CPPUNIT_ASSERT_EQUAL(0, selected.GetCount()); + CPPUNIT_ASSERT_EQUAL(0, dclicked.GetCount()); #endif }