| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- ///////////////////////////////////////////////////////////////////////////////
- // Name: tests/controls/radioboxtest.cpp
- // Purpose: wxRadioBox unit test
- // Author: Steven Lamerton
- // Created: 2010-07-14
- // Copyright: (c) 2010 Steven Lamerton
- ///////////////////////////////////////////////////////////////////////////////
- #include "testprec.h"
- #if wxUSE_RADIOBOX
- #ifdef __BORLANDC__
- #pragma hdrstop
- #endif
- #ifndef WX_PRECOMP
- #include "wx/app.h"
- #include "wx/radiobox.h"
- #endif // WX_PRECOMP
- #include "wx/tooltip.h"
- class RadioBoxTestCase : public CppUnit::TestCase
- {
- public:
- RadioBoxTestCase() { }
- void setUp();
- void tearDown();
- private:
- CPPUNIT_TEST_SUITE( RadioBoxTestCase );
- CPPUNIT_TEST( FindString );
- CPPUNIT_TEST( RowColCount );
- CPPUNIT_TEST( Enable );
- CPPUNIT_TEST( Show );
- CPPUNIT_TEST( HelpText );
- CPPUNIT_TEST( ToolTip );
- CPPUNIT_TEST( Selection );
- CPPUNIT_TEST( Count );
- CPPUNIT_TEST( SetString );
- CPPUNIT_TEST_SUITE_END();
- void FindString();
- void RowColCount();
- void Enable();
- void Show();
- void HelpText();
- void ToolTip();
- void Selection();
- void Count();
- void SetString();
- wxRadioBox* m_radio;
- DECLARE_NO_COPY_CLASS(RadioBoxTestCase)
- };
- // register in the unnamed registry so that these tests are run by default
- CPPUNIT_TEST_SUITE_REGISTRATION( RadioBoxTestCase );
- // also include in its own registry so that these tests can be run alone
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( RadioBoxTestCase, "RadioBoxTestCase" );
- void RadioBoxTestCase::setUp()
- {
- wxArrayString choices;
- choices.push_back("item 0");
- choices.push_back("item 1");
- choices.push_back("item 2");
- m_radio = new wxRadioBox(wxTheApp->GetTopWindow(), wxID_ANY, "RadioBox",
- wxDefaultPosition, wxDefaultSize, choices);
- }
- void RadioBoxTestCase::tearDown()
- {
- wxTheApp->GetTopWindow()->DestroyChildren();
- }
- void RadioBoxTestCase::FindString()
- {
- CPPUNIT_ASSERT_EQUAL(wxNOT_FOUND, m_radio->FindString("not here"));
- CPPUNIT_ASSERT_EQUAL(1, m_radio->FindString("item 1"));
- CPPUNIT_ASSERT_EQUAL(2, m_radio->FindString("ITEM 2"));
- CPPUNIT_ASSERT_EQUAL(wxNOT_FOUND, m_radio->FindString("ITEM 2", true));
- }
- void RadioBoxTestCase::RowColCount()
- {
- #ifndef __WXGTK__
- wxArrayString choices;
- choices.push_back("item 0");
- choices.push_back("item 1");
- choices.push_back("item 2");
- m_radio = new wxRadioBox(wxTheApp->GetTopWindow(), wxID_ANY, "RadioBox",
- wxDefaultPosition, wxDefaultSize, choices, 2);
- CPPUNIT_ASSERT_EQUAL(2, m_radio->GetColumnCount());
- CPPUNIT_ASSERT_EQUAL(2, m_radio->GetRowCount());
- m_radio = new wxRadioBox(wxTheApp->GetTopWindow(), wxID_ANY, "RadioBox",
- wxDefaultPosition, wxDefaultSize, choices, 1,
- wxRA_SPECIFY_ROWS);
- CPPUNIT_ASSERT_EQUAL(3, m_radio->GetColumnCount());
- CPPUNIT_ASSERT_EQUAL(1, m_radio->GetRowCount());
- #endif
- }
- void RadioBoxTestCase::Enable()
- {
- #ifndef __WXOSX__
- m_radio->Enable(false);
- CPPUNIT_ASSERT(!m_radio->IsItemEnabled(0));
- m_radio->Enable(1, true);
- CPPUNIT_ASSERT(!m_radio->IsItemEnabled(0));
- CPPUNIT_ASSERT(m_radio->IsItemEnabled(1));
- CPPUNIT_ASSERT(!m_radio->IsItemEnabled(2));
- m_radio->Enable(true);
- CPPUNIT_ASSERT(m_radio->IsItemEnabled(0));
- CPPUNIT_ASSERT(m_radio->IsItemEnabled(1));
- CPPUNIT_ASSERT(m_radio->IsItemEnabled(2));
- m_radio->Enable(0, false);
- CPPUNIT_ASSERT(!m_radio->IsItemEnabled(0));
- CPPUNIT_ASSERT(m_radio->IsItemEnabled(1));
- CPPUNIT_ASSERT(m_radio->IsItemEnabled(2));
- #endif
- }
- void RadioBoxTestCase::Show()
- {
- m_radio->Show(false);
- CPPUNIT_ASSERT(!m_radio->IsItemShown(0));
- m_radio->Show(1, true);
- CPPUNIT_ASSERT(!m_radio->IsItemShown(0));
- CPPUNIT_ASSERT(m_radio->IsItemShown(1));
- CPPUNIT_ASSERT(!m_radio->IsItemShown(2));
- m_radio->Show(true);
- CPPUNIT_ASSERT(m_radio->IsItemShown(0));
- CPPUNIT_ASSERT(m_radio->IsItemShown(1));
- CPPUNIT_ASSERT(m_radio->IsItemShown(2));
- m_radio->Show(0, false);
- CPPUNIT_ASSERT(!m_radio->IsItemShown(0));
- CPPUNIT_ASSERT(m_radio->IsItemShown(1));
- CPPUNIT_ASSERT(m_radio->IsItemShown(2));
- }
- void RadioBoxTestCase::HelpText()
- {
- CPPUNIT_ASSERT_EQUAL(wxEmptyString, m_radio->GetItemHelpText(0));
- m_radio->SetItemHelpText(1, "Item 1 help");
- CPPUNIT_ASSERT_EQUAL("Item 1 help", m_radio->GetItemHelpText(1));
- m_radio->SetItemHelpText(1, "");
- CPPUNIT_ASSERT_EQUAL(wxEmptyString, m_radio->GetItemHelpText(1));
- }
- void RadioBoxTestCase::ToolTip()
- {
- #if defined (__WXMSW__) || defined(__WXGTK__)
- //GetItemToolTip returns null if there is no tooltip set
- CPPUNIT_ASSERT(!m_radio->GetItemToolTip(0));
- m_radio->SetItemToolTip(1, "Item 1 help");
- CPPUNIT_ASSERT_EQUAL("Item 1 help", m_radio->GetItemToolTip(1)->GetTip());
- m_radio->SetItemToolTip(1, "");
- //However if we set a blank tip this does count as a tooltip
- CPPUNIT_ASSERT(!m_radio->GetItemToolTip(1));
- #endif
- }
- void RadioBoxTestCase::Selection()
- {
- //Until other item containers the first item is selected by default
- CPPUNIT_ASSERT_EQUAL(0, m_radio->GetSelection());
- CPPUNIT_ASSERT_EQUAL("item 0", m_radio->GetStringSelection());
- m_radio->SetSelection(1);
- CPPUNIT_ASSERT_EQUAL(1, m_radio->GetSelection());
- CPPUNIT_ASSERT_EQUAL("item 1", m_radio->GetStringSelection());
- m_radio->SetStringSelection("item 2");
- CPPUNIT_ASSERT_EQUAL(2, m_radio->GetSelection());
- CPPUNIT_ASSERT_EQUAL("item 2", m_radio->GetStringSelection());
- }
- void RadioBoxTestCase::Count()
- {
- //A trivial test for the item count as items can neither
- //be added or removed
- CPPUNIT_ASSERT_EQUAL(3, m_radio->GetCount());
- CPPUNIT_ASSERT(!m_radio->IsEmpty());
- }
- void RadioBoxTestCase::SetString()
- {
- m_radio->SetString(0, "new item 0");
- m_radio->SetString(2, "");
- CPPUNIT_ASSERT_EQUAL("new item 0", m_radio->GetString(0));
- CPPUNIT_ASSERT_EQUAL("", m_radio->GetString(2));
- }
- #endif // wxUSE_RADIOBOX
|