choicetest.cpp 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. ///////////////////////////////////////////////////////////////////////////////
  2. // Name: tests/controls/choice.cpp
  3. // Purpose: wxChoice unit test
  4. // Author: Steven Lamerton
  5. // Created: 2010-06-29
  6. // Copyright: (c) 2010 Steven Lamerton
  7. ///////////////////////////////////////////////////////////////////////////////
  8. #include "testprec.h"
  9. #if wxUSE_CHOICE
  10. #ifdef __BORLANDC__
  11. #pragma hdrstop
  12. #endif
  13. #ifndef WX_PRECOMP
  14. #include "wx/app.h"
  15. #include "wx/choice.h"
  16. #endif // WX_PRECOMP
  17. #include "itemcontainertest.h"
  18. class ChoiceTestCase : public ItemContainerTestCase, public CppUnit::TestCase
  19. {
  20. public:
  21. ChoiceTestCase() { }
  22. virtual void setUp();
  23. virtual void tearDown();
  24. private:
  25. virtual wxItemContainer *GetContainer() const { return m_choice; }
  26. virtual wxWindow *GetContainerWindow() const { return m_choice; }
  27. CPPUNIT_TEST_SUITE( ChoiceTestCase );
  28. wxITEM_CONTAINER_TESTS();
  29. CPPUNIT_TEST( Sort );
  30. CPPUNIT_TEST_SUITE_END();
  31. void Sort();
  32. wxChoice* m_choice;
  33. DECLARE_NO_COPY_CLASS(ChoiceTestCase)
  34. };
  35. // register in the unnamed registry so that these tests are run by default
  36. CPPUNIT_TEST_SUITE_REGISTRATION( ChoiceTestCase );
  37. // also include in its own registry so that these tests can be run alone
  38. CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ChoiceTestCase, "ChoiceTestCase" );
  39. void ChoiceTestCase::setUp()
  40. {
  41. m_choice = new wxChoice(wxTheApp->GetTopWindow(), wxID_ANY);
  42. }
  43. void ChoiceTestCase::tearDown()
  44. {
  45. wxDELETE(m_choice);
  46. }
  47. void ChoiceTestCase::Sort()
  48. {
  49. #if !defined(__WXOSX__)
  50. wxDELETE(m_choice);
  51. m_choice = new wxChoice(wxTheApp->GetTopWindow(), wxID_ANY,
  52. wxDefaultPosition, wxDefaultSize, 0, 0,
  53. wxCB_SORT);
  54. wxArrayString testitems;
  55. testitems.Add("aaa");
  56. testitems.Add("Aaa");
  57. testitems.Add("aba");
  58. testitems.Add("aaab");
  59. testitems.Add("aab");
  60. testitems.Add("AAA");
  61. m_choice->Append(testitems);
  62. CPPUNIT_ASSERT_EQUAL("AAA", m_choice->GetString(0));
  63. CPPUNIT_ASSERT_EQUAL("Aaa", m_choice->GetString(1));
  64. CPPUNIT_ASSERT_EQUAL("aaa", m_choice->GetString(2));
  65. CPPUNIT_ASSERT_EQUAL("aaab", m_choice->GetString(3));
  66. CPPUNIT_ASSERT_EQUAL("aab", m_choice->GetString(4));
  67. CPPUNIT_ASSERT_EQUAL("aba", m_choice->GetString(5));
  68. m_choice->Append("a");
  69. CPPUNIT_ASSERT_EQUAL("a", m_choice->GetString(0));
  70. #endif
  71. }
  72. #endif //wxUSE_CHOICE