]> git.saurik.com Git - wxWidgets.git/blame_incremental - tests/controls/checklistboxtest.cpp
Add a test for eol-native file existence in the release script.
[wxWidgets.git] / tests / controls / checklistboxtest.cpp
... / ...
CommitLineData
1///////////////////////////////////////////////////////////////////////////////
2// Name: tests/controls/checklistlistbox.cpp
3// Purpose: wxCheckListBox unit test
4// Author: Steven Lamerton
5// Created: 2010-06-30
6// RCS-ID: $Id$
7// Copyright: (c) 2010 Steven Lamerton
8///////////////////////////////////////////////////////////////////////////////
9
10#include "testprec.h"
11
12#if wxUSE_CHECKLISTBOX
13
14#ifdef __BORLANDC__
15 #pragma hdrstop
16#endif
17
18#ifndef WX_PRECOMP
19 #include "wx/app.h"
20 #include "wx/checklst.h"
21#endif // WX_PRECOMP
22
23#include "itemcontainertest.h"
24#include "testableframe.h"
25
26class CheckListBoxTestCase : public ItemContainerTestCase, public CppUnit::TestCase
27{
28public:
29 CheckListBoxTestCase() { }
30
31 virtual void setUp();
32 virtual void tearDown();
33
34private:
35 virtual wxItemContainer *GetContainer() const { return m_check; }
36 virtual wxWindow *GetContainerWindow() const { return m_check; }
37
38 CPPUNIT_TEST_SUITE( CheckListBoxTestCase );
39 wxITEM_CONTAINER_TESTS();
40 CPPUNIT_TEST( Check );
41 CPPUNIT_TEST_SUITE_END();
42
43 void Check();
44
45 wxCheckListBox* m_check;
46
47 DECLARE_NO_COPY_CLASS(CheckListBoxTestCase)
48};
49
50// register in the unnamed registry so that these tests are run by default
51CPPUNIT_TEST_SUITE_REGISTRATION( CheckListBoxTestCase );
52
53// also include in its own registry so that these tests can be run alone
54CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( CheckListBoxTestCase, "CheckListBoxTestCase" );
55
56void CheckListBoxTestCase::setUp()
57{
58 m_check = new wxCheckListBox(wxTheApp->GetTopWindow(), wxID_ANY);
59}
60
61void CheckListBoxTestCase::tearDown()
62{
63 wxDELETE(m_check);
64}
65
66void CheckListBoxTestCase::Check()
67{
68 EventCounter toggled(m_check, wxEVT_CHECKLISTBOX);
69
70 wxArrayInt checkedItems;
71 wxArrayString testitems;
72 testitems.Add("item 0");
73 testitems.Add("item 1");
74 testitems.Add("item 2");
75 testitems.Add("item 3");
76
77 m_check->Append(testitems);
78
79 m_check->Check(0);
80 m_check->Check(1);
81 m_check->Check(1, false);
82
83 //We should not get any events when changing this from code
84 CPPUNIT_ASSERT_EQUAL(0, toggled.GetCount());
85 CPPUNIT_ASSERT_EQUAL(true, m_check->IsChecked(0));
86 CPPUNIT_ASSERT_EQUAL(false, m_check->IsChecked(1));
87
88 CPPUNIT_ASSERT_EQUAL(1, m_check->GetCheckedItems(checkedItems));
89 CPPUNIT_ASSERT_EQUAL(0, checkedItems[0]);
90
91 //Make sure a double check of an items doesn't deselect it
92 m_check->Check(0);
93
94 CPPUNIT_ASSERT_EQUAL(true, m_check->IsChecked(0));
95}
96
97#endif // wxUSE_CHECKLISTBOX