]> git.saurik.com Git - wxWidgets.git/blob - tests/controls/headerctrltest.cpp
079e5e506bd8c2e596e58ea426b9f76634561397
[wxWidgets.git] / tests / controls / headerctrltest.cpp
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: tests/controls/headerctrltest.cpp
3 // Purpose: wxHeaderCtrl unit test
4 // Author: Vadim Zeitlin
5 // Created: 2008-11-26
6 // RCS-ID: $Id$
7 // Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
8 ///////////////////////////////////////////////////////////////////////////////
9
10 // ----------------------------------------------------------------------------
11 // headers
12 // ----------------------------------------------------------------------------
13
14 #include "testprec.h"
15
16 #ifdef __BORLANDC__
17 #pragma hdrstop
18 #endif
19
20 #ifndef WX_PRECOMP
21 #include "wx/app.h"
22 #include "wx/headerctrl.h"
23 #endif // WX_PRECOMP
24
25 // ----------------------------------------------------------------------------
26 // test class
27 // ----------------------------------------------------------------------------
28
29 class HeaderCtrlTestCase : public CppUnit::TestCase
30 {
31 public:
32 HeaderCtrlTestCase() { }
33
34 virtual void setUp();
35 virtual void tearDown();
36
37 private:
38 CPPUNIT_TEST_SUITE( HeaderCtrlTestCase );
39 CPPUNIT_TEST( AddDelete );
40 CPPUNIT_TEST( BestSize );
41 CPPUNIT_TEST_SUITE_END();
42
43 void AddDelete();
44 void BestSize();
45
46 wxHeaderCtrl *m_header;
47
48 DECLARE_NO_COPY_CLASS(HeaderCtrlTestCase)
49 };
50
51 // register in the unnamed registry so that these tests are run by default
52 CPPUNIT_TEST_SUITE_REGISTRATION( HeaderCtrlTestCase );
53
54 // also include in it's own registry so that these tests can be run alone
55 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( HeaderCtrlTestCase, "HeaderCtrlTestCase" );
56
57 // ----------------------------------------------------------------------------
58 // test initialization
59 // ----------------------------------------------------------------------------
60
61 void HeaderCtrlTestCase::setUp()
62 {
63 m_header = new wxHeaderCtrl(wxTheApp->GetTopWindow());
64 }
65
66 void HeaderCtrlTestCase::tearDown()
67 {
68 delete m_header;
69 m_header = NULL;
70 }
71
72 // ----------------------------------------------------------------------------
73 // the tests themselves
74 // ----------------------------------------------------------------------------
75
76 void HeaderCtrlTestCase::AddDelete()
77 {
78 CPPUNIT_ASSERT_EQUAL( 0, m_header->GetColumnCount() );
79
80 m_header->AppendColumn(wxHeaderCtrlColumn("Column 1"));
81 CPPUNIT_ASSERT_EQUAL( 1, m_header->GetColumnCount() );
82
83 m_header->AppendColumn(wxHeaderCtrlColumn("Column 2"));
84 CPPUNIT_ASSERT_EQUAL( 2, m_header->GetColumnCount() );
85
86 m_header->InsertColumn(wxHeaderCtrlColumn("Column 0"), 0);
87 CPPUNIT_ASSERT_EQUAL( 3, m_header->GetColumnCount() );
88
89 m_header->DeleteColumn(2);
90 CPPUNIT_ASSERT_EQUAL( 2, m_header->GetColumnCount() );
91 }
92
93 void HeaderCtrlTestCase::BestSize()
94 {
95 const wxSize sizeEmpty = m_header->GetBestSize();
96 CPPUNIT_ASSERT( sizeEmpty.x > 0 );
97 CPPUNIT_ASSERT( sizeEmpty.y > 0 );
98
99 m_header->AppendColumn(wxHeaderCtrlColumn("Foo"));
100 m_header->AppendColumn(wxHeaderCtrlColumn("Bar"));
101 const wxSize size = m_header->GetBestSize();
102 CPPUNIT_ASSERT_EQUAL( sizeEmpty.y, size.y );
103 }
104