| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- ///////////////////////////////////////////////////////////////////////////////
- // Name: tests/misc/selstoretest.cpp
- // Purpose: wxSelectionStore unit test
- // Author: Vadim Zeitlin
- // Created: 2008-03-31
- // Copyright: (c) 2008 Vadim Zeitlin
- ///////////////////////////////////////////////////////////////////////////////
- // ----------------------------------------------------------------------------
- // headers
- // ----------------------------------------------------------------------------
- #include "testprec.h"
- #ifdef __BORLANDC__
- #pragma hdrstop
- #endif
- #include "wx/selstore.h"
- // ----------------------------------------------------------------------------
- // test class
- // ----------------------------------------------------------------------------
- class SelStoreTestCase : public CppUnit::TestCase
- {
- public:
- SelStoreTestCase() { m_store = NULL; }
- virtual void setUp()
- {
- m_store = new wxSelectionStore;
- m_store->SetItemCount(NUM_ITEMS);
- }
- virtual void tearDown()
- {
- delete m_store;
- m_store = NULL;
- }
- private:
- CPPUNIT_TEST_SUITE( SelStoreTestCase );
- CPPUNIT_TEST( SelectItem );
- CPPUNIT_TEST( SelectRange );
- CPPUNIT_TEST( SetItemCount );
- CPPUNIT_TEST( Clear );
- CPPUNIT_TEST_SUITE_END();
- void SelectItem();
- void SelectRange();
- void SetItemCount();
- void Clear();
- // NB: must be even
- static const unsigned NUM_ITEMS;
- wxSelectionStore *m_store;
- DECLARE_NO_COPY_CLASS(SelStoreTestCase)
- };
- // register in the unnamed registry so that these tests are run by default
- CPPUNIT_TEST_SUITE_REGISTRATION( SelStoreTestCase );
- // also include in its own registry so that these tests can be run alone
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( SelStoreTestCase, "SelStoreTestCase" );
- const unsigned SelStoreTestCase::NUM_ITEMS = 10; // NB: must be even
- void SelStoreTestCase::SelectItem()
- {
- m_store->SelectItem(0);
- CPPUNIT_ASSERT_EQUAL( 1u, m_store->GetSelectedCount() );
- CPPUNIT_ASSERT( m_store->IsSelected(0) );
- m_store->SelectItem(NUM_ITEMS - 1);
- CPPUNIT_ASSERT_EQUAL( 2u, m_store->GetSelectedCount() );
- CPPUNIT_ASSERT( m_store->IsSelected(NUM_ITEMS - 1) );
- m_store->SelectItem(0, false);
- CPPUNIT_ASSERT_EQUAL( 1u, m_store->GetSelectedCount() );
- CPPUNIT_ASSERT( !m_store->IsSelected(0) );
- }
- void SelStoreTestCase::SelectRange()
- {
- m_store->SelectRange(0, NUM_ITEMS/2);
- CPPUNIT_ASSERT_EQUAL( NUM_ITEMS/2 + 1, m_store->GetSelectedCount() );
- CPPUNIT_ASSERT( m_store->IsSelected(0) );
- CPPUNIT_ASSERT( !m_store->IsSelected(NUM_ITEMS - 1) );
- m_store->SelectRange(NUM_ITEMS/2, NUM_ITEMS - 1);
- CPPUNIT_ASSERT_EQUAL( NUM_ITEMS, m_store->GetSelectedCount() );
- CPPUNIT_ASSERT( m_store->IsSelected(0) );
- CPPUNIT_ASSERT( m_store->IsSelected(NUM_ITEMS - 1) );
- m_store->SelectRange(1, NUM_ITEMS - 2, false);
- CPPUNIT_ASSERT_EQUAL( 2u, m_store->GetSelectedCount() );
- CPPUNIT_ASSERT( m_store->IsSelected(0) );
- CPPUNIT_ASSERT( !m_store->IsSelected(NUM_ITEMS/2) );
- CPPUNIT_ASSERT( m_store->IsSelected(NUM_ITEMS - 1) );
- }
- void SelStoreTestCase::SetItemCount()
- {
- m_store->SelectRange(1, NUM_ITEMS - 2);
- CPPUNIT_ASSERT_EQUAL( NUM_ITEMS - 2, m_store->GetSelectedCount() );
- m_store->SetItemCount(NUM_ITEMS/2);
- CPPUNIT_ASSERT_EQUAL( NUM_ITEMS/2 - 1, m_store->GetSelectedCount() );
- m_store->Clear();
- m_store->SetItemCount(NUM_ITEMS);
- m_store->SelectItem(NUM_ITEMS/2 - 1);
- m_store->SelectItem(NUM_ITEMS/2 + 1);
- m_store->SetItemCount(NUM_ITEMS/2);
- CPPUNIT_ASSERT_EQUAL( 1u, m_store->GetSelectedCount() );
- }
- void SelStoreTestCase::Clear()
- {
- CPPUNIT_ASSERT_EQUAL( 0u, m_store->GetSelectedCount() );
- m_store->SelectItem(0);
- m_store->Clear();
- CPPUNIT_ASSERT_EQUAL( 0u, m_store->GetSelectedCount() );
- }
|