1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: tests/controls/checklistlistbox.cpp
3 // Purpose: wxCheckListBox unit test
4 // Author: Steven Lamerton
7 // Copyright: (c) 2010 Steven Lamerton
8 ///////////////////////////////////////////////////////////////////////////////
12 #if wxUSE_CHECKLISTBOX
20 #include "wx/checklst.h"
23 #include "itemcontainertest.h"
24 #include "testableframe.h"
26 class CheckListBoxTestCase
: public ItemContainerTestCase
, public CppUnit::TestCase
29 CheckListBoxTestCase() { }
32 virtual void tearDown();
35 virtual wxItemContainer
*GetContainer() const { return m_check
; }
36 virtual wxWindow
*GetContainerWindow() const { return m_check
; }
38 CPPUNIT_TEST_SUITE( CheckListBoxTestCase
);
39 wxITEM_CONTAINER_TESTS();
40 CPPUNIT_TEST( Check
);
41 CPPUNIT_TEST_SUITE_END();
45 wxCheckListBox
* m_check
;
47 DECLARE_NO_COPY_CLASS(CheckListBoxTestCase
)
50 // register in the unnamed registry so that these tests are run by default
51 CPPUNIT_TEST_SUITE_REGISTRATION( CheckListBoxTestCase
);
53 // also include in it's own registry so that these tests can be run alone
54 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( CheckListBoxTestCase
, "CheckListBoxTestCase" );
56 void CheckListBoxTestCase::setUp()
58 m_check
= new wxCheckListBox(wxTheApp
->GetTopWindow(), wxID_ANY
);
61 void CheckListBoxTestCase::tearDown()
66 void CheckListBoxTestCase::Check()
68 wxTestableFrame
* frame
= wxStaticCast(wxTheApp
->GetTopWindow(),
71 EventCounter
count(m_check
, wxEVT_COMMAND_CHECKLISTBOX_TOGGLED
);
73 wxArrayString testitems
;
74 testitems
.Add("item 0");
75 testitems
.Add("item 1");
76 testitems
.Add("item 2");
77 testitems
.Add("item 3");
79 m_check
->Append(testitems
);
83 m_check
->Check(1, false);
85 //We should not get any events when changing this from code
86 CPPUNIT_ASSERT_EQUAL(0, frame
->GetEventCount());
87 CPPUNIT_ASSERT_EQUAL(true, m_check
->IsChecked(0));
88 CPPUNIT_ASSERT_EQUAL(false, m_check
->IsChecked(1));
90 //Make sure a double check of an items doesn't deselect it
93 CPPUNIT_ASSERT_EQUAL(true, m_check
->IsChecked(0));
96 #endif // wxUSE_CHECKLISTBOX