diff --git a/tests/controls/label.cpp b/tests/controls/label.cpp
index 3ba89c2f7e..5944966c2d 100644
--- a/tests/controls/label.cpp
+++ b/tests/controls/label.cpp
@@ -20,83 +20,22 @@
#include "wx/app.h"
#endif // WX_PRECOMP
-#include "wx/control.h"
-#include "wx/stattext.h"
#include "wx/checkbox.h"
+#include "wx/control.h"
+#include "wx/scopedptr.h"
+#include "wx/stattext.h"
-// ----------------------------------------------------------------------------
-// test class
-// ----------------------------------------------------------------------------
-
-class LabelTestCase : public CppUnit::TestCase
+namespace
{
-public:
- LabelTestCase() { }
- virtual void setUp() wxOVERRIDE;
- virtual void tearDown() wxOVERRIDE;
+const char* const ORIGINAL_LABEL = "origin label";
-private:
- CPPUNIT_TEST_SUITE( LabelTestCase );
- CPPUNIT_TEST( GetLabel );
- CPPUNIT_TEST( GetLabelText );
- CPPUNIT_TEST( Statics );
- CPPUNIT_TEST_SUITE_END();
-
- void GetLabel();
- void GetLabelText();
- void Statics();
-
- wxStaticText *m_st;
-
- // we cannot test wxControl directly (it's abstract) so we rather test wxCheckBox
- wxCheckBox *m_cb;
-
- wxDECLARE_NO_COPY_CLASS(LabelTestCase);
-};
-
-// register in the unnamed registry so that these tests are run by default
-CPPUNIT_TEST_SUITE_REGISTRATION( LabelTestCase );
-
-// also include in its own registry so that these tests can be run alone
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( LabelTestCase, "LabelTestCase" );
-
-// ----------------------------------------------------------------------------
-// test initialization
-// ----------------------------------------------------------------------------
-
-#define ORIGINAL_LABEL "original label"
-
-void LabelTestCase::setUp()
+// The actual testing function. It will change the label of the provided
+// control, which is assumed to be ORIGINAL_LABEL initially.
+void DoTestLabel(wxControl* c)
{
- m_st = new wxStaticText(wxTheApp->GetTopWindow(), wxID_ANY, ORIGINAL_LABEL);
+ CHECK( c->GetLabel() == ORIGINAL_LABEL );
- m_cb = new wxCheckBox(wxTheApp->GetTopWindow(), wxID_ANY, ORIGINAL_LABEL);
-
- CPPUNIT_ASSERT_EQUAL( ORIGINAL_LABEL, m_st->GetLabel() );
- CPPUNIT_ASSERT_EQUAL( ORIGINAL_LABEL, m_cb->GetLabel() );
-}
-
-void LabelTestCase::tearDown()
-{
- wxDELETE(m_st);
- wxDELETE(m_cb);
-}
-
-// ----------------------------------------------------------------------------
-// the tests themselves
-// ----------------------------------------------------------------------------
-
-#define SET_LABEL(str) \
- m_st->SetLabel(str); \
- m_cb->SetLabel(str);
-
-#define SET_LABEL_TEXT(str) \
- m_st->SetLabelText(str); \
- m_cb->SetLabelText(str);
-
-void LabelTestCase::GetLabel()
-{
const wxString testLabelArray[] = {
"label without mnemonics and markup",
"label with &mnemonic",
@@ -104,92 +43,75 @@ void LabelTestCase::GetLabel()
"label with some markup and &mnemonic",
};
- // test calls to SetLabel() and then to GetLabel()
-
for ( unsigned int s = 0; s < WXSIZEOF(testLabelArray); s++ )
{
- SET_LABEL(testLabelArray[s]);
+ const wxString& l = testLabelArray[s];
// GetLabel() should always return the string passed to SetLabel()
- CPPUNIT_ASSERT_EQUAL( testLabelArray[s], m_st->GetLabel() );
- CPPUNIT_ASSERT_EQUAL( testLabelArray[s], m_cb->GetLabel() );
+ c->SetLabel(l);
+ CHECK( c->GetLabel() == l );
+
+ // GetLabelText() should always return the string passed to SetLabelText()
+ c->SetLabelText(l);
+ CHECK( c->GetLabelText() == l );
}
// test calls to SetLabelText() and then to GetLabel()
- const wxString& testLabel = "label without mnemonics and markup";
- SET_LABEL_TEXT(testLabel);
- CPPUNIT_ASSERT_EQUAL( testLabel, m_st->GetLabel() );
- CPPUNIT_ASSERT_EQUAL( testLabel, m_cb->GetLabel() );
+ wxString testLabel = "label without mnemonics and markup";
+ c->SetLabelText(testLabel);
+ CHECK( c->GetLabel() == testLabel );
- const wxString& testLabel2 = "label with &mnemonic";
- const wxString& testLabelText2 = "label with &&mnemonic";
- SET_LABEL_TEXT(testLabel2);
- CPPUNIT_ASSERT_EQUAL( testLabelText2, m_st->GetLabel() );
- CPPUNIT_ASSERT_EQUAL( testLabelText2, m_cb->GetLabel() );
+ c->SetLabelText("label with &mnemonic");
+ CHECK( c->GetLabel() == "label with &&mnemonic" );
- const wxString& testLabel3 = "label with some markup";
- SET_LABEL_TEXT(testLabel3);
- CPPUNIT_ASSERT_EQUAL( testLabel3, m_st->GetLabel() );
- CPPUNIT_ASSERT_EQUAL( testLabel3, m_cb->GetLabel() );
+ testLabel = "label with some markup";
+ c->SetLabelText(testLabel);
+ CHECK( c->GetLabel() == testLabel );
- const wxString& testLabel4 = "label with some markup and &mnemonic";
- const wxString& testLabelText4 = "label with some markup and &&mnemonic";
- SET_LABEL_TEXT(testLabel4);
- CPPUNIT_ASSERT_EQUAL( testLabelText4, m_st->GetLabel() );
- CPPUNIT_ASSERT_EQUAL( testLabelText4, m_cb->GetLabel() );
-}
+ c->SetLabelText("label with some markup and &mnemonic");
+ CHECK( c->GetLabel() == "label with some markup and &&mnemonic" );
-void LabelTestCase::GetLabelText()
-{
// test calls to SetLabel() and then to GetLabelText()
- const wxString& testLabel = "label without mnemonics and markup";
- SET_LABEL(testLabel);
- CPPUNIT_ASSERT_EQUAL( testLabel, m_st->GetLabelText() );
- CPPUNIT_ASSERT_EQUAL( testLabel, m_cb->GetLabelText() );
+ testLabel = "label without mnemonics and markup";
+ c->SetLabel(testLabel);
+ CHECK( c->GetLabelText() == testLabel );
- const wxString& testLabel2 = "label with &mnemonic";
- const wxString& testLabelText2 = "label with mnemonic";
- SET_LABEL(testLabel2);
- CPPUNIT_ASSERT_EQUAL( testLabelText2, m_st->GetLabelText() );
- CPPUNIT_ASSERT_EQUAL( testLabelText2, m_cb->GetLabelText() );
+ c->SetLabel("label with &mnemonic");
+ CHECK( c->GetLabelText() == "label with mnemonic" );
- const wxString& testLabel3 = "label with some markup";
- SET_LABEL(testLabel3);
- CPPUNIT_ASSERT_EQUAL( testLabel3, m_st->GetLabelText() );
- CPPUNIT_ASSERT_EQUAL( testLabel3, m_cb->GetLabelText() );
+ testLabel = "label with some markup";
+ c->SetLabel(testLabel);
+ CHECK( c->GetLabelText() == testLabel );
- const wxString& testLabel4 = "label with some markup and &mnemonic";
- const wxString& testLabelText4 = "label with some markup and mnemonic";
- SET_LABEL(testLabel4);
- CPPUNIT_ASSERT_EQUAL( testLabelText4, m_st->GetLabelText() );
- CPPUNIT_ASSERT_EQUAL( testLabelText4, m_cb->GetLabelText() );
+ c->SetLabel("label with some markup and &mnemonic");
+ CHECK( c->GetLabelText() == "label with some markup and mnemonic");
+}
+} // anonymous namespace
- const wxString testLabelArray[] = {
- "label without mnemonics and markup",
- "label with &mnemonic",
- "label with some markup",
- "label with some markup and &mnemonic",
- };
-
- // test calls to SetLabelText() and then to GetLabelText()
-
- for ( unsigned int s = 0; s < WXSIZEOF(testLabelArray); s++ )
+TEST_CASE("wxControl::Label", "[wxControl][label]")
+{
+ SECTION("wxStaticText")
{
- SET_LABEL_TEXT(testLabelArray[s]);
+ const wxScopedPtr
+ st(new wxStaticText(wxTheApp->GetTopWindow(), wxID_ANY, ORIGINAL_LABEL));
+ DoTestLabel(st.get());
+ }
- // GetLabelText() should always return the string passed to SetLabelText()
- CPPUNIT_ASSERT_EQUAL( testLabelArray[s], m_st->GetLabelText() );
- CPPUNIT_ASSERT_EQUAL( testLabelArray[s], m_cb->GetLabelText() );
+ SECTION("wxCheckBox")
+ {
+ const wxScopedPtr
+ cb(new wxCheckBox(wxTheApp->GetTopWindow(), wxID_ANY, ORIGINAL_LABEL));
+ DoTestLabel(cb.get());
}
}
-void LabelTestCase::Statics()
+TEST_CASE("wxControl::RemoveMnemonics", "[wxControl][label][mnemonics]")
{
- CPPUNIT_ASSERT_EQUAL( "mnemonic", wxControl::RemoveMnemonics("&mnemonic") );
- CPPUNIT_ASSERT_EQUAL( "&mnemonic", wxControl::RemoveMnemonics("&&mnemonic") );
- CPPUNIT_ASSERT_EQUAL( "&mnemonic", wxControl::RemoveMnemonics("&&&mnemonic") );
+ CHECK( "mnemonic" == wxControl::RemoveMnemonics("&mnemonic") );
+ CHECK( "&mnemonic" == wxControl::RemoveMnemonics("&&mnemonic") );
+ CHECK( "&mnemonic" == wxControl::RemoveMnemonics("&&&mnemonic") );
}