| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- ///////////////////////////////////////////////////////////////////////////////
- // Name: tests/controls/virtlistctrltest.cpp
- // Purpose: wxListCtrl unit tests for virtual mode
- // Author: Vadim Zeitlin
- // Created: 2010-11-13
- // Copyright: (c) 2010 Vadim Zeitlin <vadim@wxwidgets.org>
- ///////////////////////////////////////////////////////////////////////////////
- // ----------------------------------------------------------------------------
- // headers
- // ----------------------------------------------------------------------------
- #include "testprec.h"
- #if wxUSE_LISTCTRL
- #ifdef __BORLANDC__
- #pragma hdrstop
- #endif
- #ifndef WX_PRECOMP
- #include "wx/app.h"
- #endif // WX_PRECOMP
- #include "wx/listctrl.h"
- // ----------------------------------------------------------------------------
- // test class
- // ----------------------------------------------------------------------------
- class VirtListCtrlTestCase : public CppUnit::TestCase
- {
- public:
- VirtListCtrlTestCase() { }
- virtual void setUp();
- virtual void tearDown();
- private:
- CPPUNIT_TEST_SUITE( VirtListCtrlTestCase );
- CPPUNIT_TEST( UpdateSelection );
- CPPUNIT_TEST_SUITE_END();
- void UpdateSelection();
- wxListCtrl *m_list;
- wxDECLARE_NO_COPY_CLASS(VirtListCtrlTestCase);
- };
- // register in the unnamed registry so that these tests are run by default
- CPPUNIT_TEST_SUITE_REGISTRATION( VirtListCtrlTestCase );
- // also include in its own registry so that these tests can be run alone
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( VirtListCtrlTestCase, "VirtListCtrlTestCase" );
- // ----------------------------------------------------------------------------
- // test initialization
- // ----------------------------------------------------------------------------
- void VirtListCtrlTestCase::setUp()
- {
- // Define a class overriding OnGetItemText() which must be overridden for
- // any virtual list control.
- class VirtListCtrl : public wxListCtrl
- {
- public:
- VirtListCtrl()
- : wxListCtrl(wxTheApp->GetTopWindow(), wxID_ANY,
- wxPoint(0, 0), wxSize(400, 200),
- wxLC_REPORT | wxLC_VIRTUAL)
- {
- }
- protected:
- virtual wxString OnGetItemText(long item, long column) const
- {
- return wxString::Format("Row %ld, col %ld", item, column);
- }
- };
- m_list = new VirtListCtrl;
- }
- void VirtListCtrlTestCase::tearDown()
- {
- delete m_list;
- m_list = NULL;
- }
- void VirtListCtrlTestCase::UpdateSelection()
- {
- m_list->SetItemCount(10);
- CPPUNIT_ASSERT_EQUAL( 0, m_list->GetSelectedItemCount() );
- m_list->SetItemState(7, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);
- CPPUNIT_ASSERT_EQUAL( 1, m_list->GetSelectedItemCount() );
- m_list->SetItemState(0, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);
- CPPUNIT_ASSERT_EQUAL( 2, m_list->GetSelectedItemCount() );
- // The item 7 is now invalid and so shouldn't be counted as selected any
- // more.
- m_list->SetItemCount(5);
- CPPUNIT_ASSERT_EQUAL( 1, m_list->GetSelectedItemCount() );
- }
- #endif // wxUSE_LISTCTRL
|