From b176b59ffe4ada4fc99dfdf79e7c75361842bd40 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 27 Sep 2019 15:55:18 +0200 Subject: [PATCH 1/2] Get rid of legacy CppUnit test case machinery in wxWindow test No real changes, just remove the CPPUNIT_TEST[_SUITE] ugliness. --- tests/controls/windowtest.cpp | 108 ++++++++++------------------------ 1 file changed, 30 insertions(+), 78 deletions(-) diff --git a/tests/controls/windowtest.cpp b/tests/controls/windowtest.cpp index 1ee147b377..be65dee213 100644 --- a/tests/controls/windowtest.cpp +++ b/tests/controls/windowtest.cpp @@ -28,77 +28,26 @@ #include "wx/cshelp.h" #include "wx/tooltip.h" -class WindowTestCase : public CppUnit::TestCase +class WindowTestCase { public: - WindowTestCase() { } + WindowTestCase() + : m_window(new wxWindow(wxTheApp->GetTopWindow(), wxID_ANY)) + { + } - void setUp() wxOVERRIDE; - void tearDown() wxOVERRIDE; + ~WindowTestCase() + { + wxTheApp->GetTopWindow()->DestroyChildren(); + } -private: - CPPUNIT_TEST_SUITE( WindowTestCase ); - CPPUNIT_TEST( ShowHideEvent ); - WXUISIM_TEST( KeyEvent ); - CPPUNIT_TEST( FocusEvent ); - CPPUNIT_TEST( Mouse ); - CPPUNIT_TEST( Properties ); -#if wxUSE_TOOLTIPS - CPPUNIT_TEST( ToolTip ); -#endif // wxUSE_TOOLTIPS - CPPUNIT_TEST( Help ); - CPPUNIT_TEST( Parent ); - CPPUNIT_TEST( Siblings ); - CPPUNIT_TEST( Children ); - CPPUNIT_TEST( Focus ); - CPPUNIT_TEST( Positioning ); - CPPUNIT_TEST( PositioningBeyondShortLimit ); - CPPUNIT_TEST( Show ); - CPPUNIT_TEST( Enable ); - CPPUNIT_TEST( FindWindowBy ); - CPPUNIT_TEST_SUITE_END(); - - void ShowHideEvent(); - void KeyEvent(); - void FocusEvent(); - void Mouse(); - void Properties(); -#if wxUSE_TOOLTIPS - void ToolTip(); -#endif // wxUSE_TOOLTIPS - void Help(); - void Parent(); - void Siblings(); - void Children(); - void Focus(); - void Positioning(); - void PositioningBeyondShortLimit(); - void Show(); - void Enable(); - void FindWindowBy(); - - wxWindow *m_window; +protected: + wxWindow* const m_window; wxDECLARE_NO_COPY_CLASS(WindowTestCase); }; -// register in the unnamed registry so that these tests are run by default -CPPUNIT_TEST_SUITE_REGISTRATION( WindowTestCase ); - -// also include in its own registry so that these tests can be run alone -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( WindowTestCase, "WindowTestCase" ); - -void WindowTestCase::setUp() -{ - m_window = new wxWindow(wxTheApp->GetTopWindow(), wxID_ANY); -} - -void WindowTestCase::tearDown() -{ - wxTheApp->GetTopWindow()->DestroyChildren(); -} - -void WindowTestCase::ShowHideEvent() +TEST_CASE_METHOD(WindowTestCase, "Window::ShowHideEvent", "[window]") { #if defined(__WXMSW__) EventCounter show(m_window, wxEVT_SHOW); @@ -117,9 +66,12 @@ void WindowTestCase::ShowHideEvent() #endif // __WXMSW__ } -void WindowTestCase::KeyEvent() +TEST_CASE_METHOD(WindowTestCase, "Window::KeyEvent", "[window]") { #if wxUSE_UIACTIONSIMULATOR + if ( !EnableUITests() ) + return; + EventCounter keydown(m_window, wxEVT_KEY_DOWN); EventCounter keyup(m_window, wxEVT_KEY_UP); EventCounter keychar(m_window, wxEVT_CHAR); @@ -139,7 +91,7 @@ void WindowTestCase::KeyEvent() #endif } -void WindowTestCase::FocusEvent() +TEST_CASE_METHOD(WindowTestCase, "Window::FocusEvent", "[window]") { #ifndef __WXOSX__ if ( IsAutomaticTest() ) @@ -167,7 +119,7 @@ void WindowTestCase::FocusEvent() #endif } -void WindowTestCase::Mouse() +TEST_CASE_METHOD(WindowTestCase, "Window::Mouse", "[window]") { wxCursor cursor(wxCURSOR_CHAR); m_window->SetCursor(cursor); @@ -191,7 +143,7 @@ void WindowTestCase::Mouse() CPPUNIT_ASSERT(!m_window->HasCapture()); } -void WindowTestCase::Properties() +TEST_CASE_METHOD(WindowTestCase, "Window::Properties", "[window]") { m_window->SetLabel("label"); @@ -210,7 +162,7 @@ void WindowTestCase::Properties() } #if wxUSE_TOOLTIPS -void WindowTestCase::ToolTip() +TEST_CASE_METHOD(WindowTestCase, "Window::ToolTip", "[window]") { CPPUNIT_ASSERT(!m_window->GetToolTip()); CPPUNIT_ASSERT_EQUAL("", m_window->GetToolTipText()); @@ -233,7 +185,7 @@ void WindowTestCase::ToolTip() } #endif // wxUSE_TOOLTIPS -void WindowTestCase::Help() +TEST_CASE_METHOD(WindowTestCase, "Window::Help", "[window]") { wxHelpProvider::Set(new wxSimpleHelpProvider()); @@ -244,13 +196,13 @@ void WindowTestCase::Help() CPPUNIT_ASSERT_EQUAL("helptext", m_window->GetHelpText()); } -void WindowTestCase::Parent() +TEST_CASE_METHOD(WindowTestCase, "Window::Parent", "[window]") { CPPUNIT_ASSERT_EQUAL(static_cast(NULL), m_window->GetGrandParent()); CPPUNIT_ASSERT_EQUAL(wxTheApp->GetTopWindow(), m_window->GetParent()); } -void WindowTestCase::Siblings() +TEST_CASE_METHOD(WindowTestCase, "Window::Siblings", "[window]") { CPPUNIT_ASSERT_EQUAL(static_cast(NULL), m_window->GetNextSibling()); CPPUNIT_ASSERT_EQUAL(static_cast(NULL), m_window->GetPrevSibling()); @@ -266,7 +218,7 @@ void WindowTestCase::Siblings() wxDELETE(newwin); } -void WindowTestCase::Children() +TEST_CASE_METHOD(WindowTestCase, "Window::Children", "[window]") { CPPUNIT_ASSERT_EQUAL(0, m_window->GetChildren().GetCount()); @@ -292,7 +244,7 @@ void WindowTestCase::Children() CPPUNIT_ASSERT_EQUAL(0, m_window->GetChildren().GetCount()); } -void WindowTestCase::Focus() +TEST_CASE_METHOD(WindowTestCase, "Window::Focus", "[window]") { #ifndef __WXOSX__ CPPUNIT_ASSERT(!m_window->HasFocus()); @@ -314,7 +266,7 @@ void WindowTestCase::Focus() #endif } -void WindowTestCase::Positioning() +TEST_CASE_METHOD(WindowTestCase, "Window::Positioning", "[window]") { //Some basic tests for consistency int x, y; @@ -332,7 +284,7 @@ void WindowTestCase::Positioning() m_window->GetScreenRect().GetTopLeft()); } -void WindowTestCase::PositioningBeyondShortLimit() +TEST_CASE_METHOD(WindowTestCase, "Window::PositioningBeyondShortLimit", "[window]") { #ifdef __WXMSW__ //Positioning under MSW is limited to short relative coordinates @@ -373,7 +325,7 @@ void WindowTestCase::PositioningBeyondShortLimit() #endif } -void WindowTestCase::Show() +TEST_CASE_METHOD(WindowTestCase, "Window::Show", "[window]") { CPPUNIT_ASSERT(m_window->IsShown()); @@ -398,7 +350,7 @@ void WindowTestCase::Show() CPPUNIT_ASSERT(!m_window->IsShown()); } -void WindowTestCase::Enable() +TEST_CASE_METHOD(WindowTestCase, "Window::Enable", "[window]") { CPPUNIT_ASSERT(m_window->IsEnabled()); @@ -415,7 +367,7 @@ void WindowTestCase::Enable() CPPUNIT_ASSERT(!m_window->IsEnabled()); } -void WindowTestCase::FindWindowBy() +TEST_CASE_METHOD(WindowTestCase, "Window::FindWindowBy", "[window]") { m_window->SetId(wxID_HIGHEST + 1); m_window->SetName("name"); From 7be12edc7a280f55a25a5853c6b93fd695bd23a9 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 27 Sep 2019 15:58:09 +0200 Subject: [PATCH 2/2] Replace legacy CppUnit macros with CATCH ones Still no real changes, just use Catch macros directly instead of doing it via CppUnit-compatible shims. --- tests/controls/windowtest.cpp | 145 ++++++++++++++++------------------ 1 file changed, 70 insertions(+), 75 deletions(-) diff --git a/tests/controls/windowtest.cpp b/tests/controls/windowtest.cpp index be65dee213..926c6cafd7 100644 --- a/tests/controls/windowtest.cpp +++ b/tests/controls/windowtest.cpp @@ -52,17 +52,17 @@ TEST_CASE_METHOD(WindowTestCase, "Window::ShowHideEvent", "[window]") #if defined(__WXMSW__) EventCounter show(m_window, wxEVT_SHOW); - CPPUNIT_ASSERT(m_window->IsShown()); + CHECK(m_window->IsShown()); m_window->Show(false); - CPPUNIT_ASSERT(!m_window->IsShown()); + CHECK(!m_window->IsShown()); m_window->Show(); - CPPUNIT_ASSERT(m_window->IsShown()); + CHECK(m_window->IsShown()); - CPPUNIT_ASSERT_EQUAL(2, show.GetCount()); + CHECK( show.GetCount() == 2 ); #endif // __WXMSW__ } @@ -85,9 +85,9 @@ TEST_CASE_METHOD(WindowTestCase, "Window::KeyEvent", "[window]") sim.Char(WXK_SHIFT); wxYield(); - CPPUNIT_ASSERT_EQUAL(5, keydown.GetCount()); - CPPUNIT_ASSERT_EQUAL(5, keyup.GetCount()); - CPPUNIT_ASSERT_EQUAL(4, keychar.GetCount()); + CHECK( keydown.GetCount() == 5 ); + CHECK( keyup.GetCount() == 5 ); + CHECK( keychar.GetCount() == 4 ); #endif } @@ -106,7 +106,7 @@ TEST_CASE_METHOD(WindowTestCase, "Window::FocusEvent", "[window]") m_window->SetFocus(); - CPPUNIT_ASSERT(setfocus.WaitEvent(500)); + CHECK(setfocus.WaitEvent(500)); CHECK_FOCUS_IS( m_window ); wxButton* button = new wxButton(wxTheApp->GetTopWindow(), wxID_ANY); @@ -114,8 +114,8 @@ TEST_CASE_METHOD(WindowTestCase, "Window::FocusEvent", "[window]") wxYield(); button->SetFocus(); - CPPUNIT_ASSERT_EQUAL(1, killfocus.GetCount()); - CPPUNIT_ASSERT(!m_window->HasFocus()); + CHECK( killfocus.GetCount() == 1 ); + CHECK(!m_window->HasFocus()); #endif } @@ -124,64 +124,64 @@ TEST_CASE_METHOD(WindowTestCase, "Window::Mouse", "[window]") wxCursor cursor(wxCURSOR_CHAR); m_window->SetCursor(cursor); - CPPUNIT_ASSERT(m_window->GetCursor().IsOk()); + CHECK(m_window->GetCursor().IsOk()); //A plain window doesn't have a caret - CPPUNIT_ASSERT(!m_window->GetCaret()); + CHECK(!m_window->GetCaret()); wxCaret* caret = new wxCaret(m_window, 16, 16); m_window->SetCaret(caret); - CPPUNIT_ASSERT(m_window->GetCaret()->IsOk()); + CHECK(m_window->GetCaret()->IsOk()); m_window->CaptureMouse(); - CPPUNIT_ASSERT(m_window->HasCapture()); + CHECK(m_window->HasCapture()); m_window->ReleaseMouse(); - CPPUNIT_ASSERT(!m_window->HasCapture()); + CHECK(!m_window->HasCapture()); } TEST_CASE_METHOD(WindowTestCase, "Window::Properties", "[window]") { m_window->SetLabel("label"); - CPPUNIT_ASSERT_EQUAL("label", m_window->GetLabel()); + CHECK( m_window->GetLabel() == "label" ); m_window->SetName("name"); - CPPUNIT_ASSERT_EQUAL("name", m_window->GetName()); + CHECK( m_window->GetName() == "name" ); //As we used wxID_ANY we should have a negative id - CPPUNIT_ASSERT(m_window->GetId() < 0); + CHECK(m_window->GetId() < 0); m_window->SetId(wxID_HIGHEST + 10); - CPPUNIT_ASSERT_EQUAL(wxID_HIGHEST + 10, m_window->GetId()); + CHECK( m_window->GetId() == wxID_HIGHEST + 10 ); } #if wxUSE_TOOLTIPS TEST_CASE_METHOD(WindowTestCase, "Window::ToolTip", "[window]") { - CPPUNIT_ASSERT(!m_window->GetToolTip()); - CPPUNIT_ASSERT_EQUAL("", m_window->GetToolTipText()); + CHECK(!m_window->GetToolTip()); + CHECK( m_window->GetToolTipText() == "" ); m_window->SetToolTip("text tip"); - CPPUNIT_ASSERT_EQUAL("text tip", m_window->GetToolTipText()); + CHECK( m_window->GetToolTipText() == "text tip" ); m_window->UnsetToolTip(); - CPPUNIT_ASSERT(!m_window->GetToolTip()); - CPPUNIT_ASSERT_EQUAL("", m_window->GetToolTipText()); + CHECK(!m_window->GetToolTip()); + CHECK( m_window->GetToolTipText() == "" ); wxToolTip* tip = new wxToolTip("other tip"); m_window->SetToolTip(tip); - CPPUNIT_ASSERT_EQUAL(tip, m_window->GetToolTip()); - CPPUNIT_ASSERT_EQUAL("other tip", m_window->GetToolTipText()); + CHECK( m_window->GetToolTip() == tip ); + CHECK( m_window->GetToolTipText() == "other tip" ); } #endif // wxUSE_TOOLTIPS @@ -189,65 +189,65 @@ TEST_CASE_METHOD(WindowTestCase, "Window::Help", "[window]") { wxHelpProvider::Set(new wxSimpleHelpProvider()); - CPPUNIT_ASSERT_EQUAL("", m_window->GetHelpText()); + CHECK( m_window->GetHelpText() == "" ); m_window->SetHelpText("helptext"); - CPPUNIT_ASSERT_EQUAL("helptext", m_window->GetHelpText()); + CHECK( m_window->GetHelpText() == "helptext" ); } TEST_CASE_METHOD(WindowTestCase, "Window::Parent", "[window]") { - CPPUNIT_ASSERT_EQUAL(static_cast(NULL), m_window->GetGrandParent()); - CPPUNIT_ASSERT_EQUAL(wxTheApp->GetTopWindow(), m_window->GetParent()); + CHECK( m_window->GetGrandParent() == static_cast(NULL) ); + CHECK( m_window->GetParent() == wxTheApp->GetTopWindow() ); } TEST_CASE_METHOD(WindowTestCase, "Window::Siblings", "[window]") { - CPPUNIT_ASSERT_EQUAL(static_cast(NULL), m_window->GetNextSibling()); - CPPUNIT_ASSERT_EQUAL(static_cast(NULL), m_window->GetPrevSibling()); + CHECK( m_window->GetNextSibling() == static_cast(NULL) ); + CHECK( m_window->GetPrevSibling() == static_cast(NULL) ); wxWindow* newwin = new wxWindow(wxTheApp->GetTopWindow(), wxID_ANY); - CPPUNIT_ASSERT_EQUAL(newwin, m_window->GetNextSibling()); - CPPUNIT_ASSERT_EQUAL(static_cast(NULL), m_window->GetPrevSibling()); + CHECK( m_window->GetNextSibling() == newwin ); + CHECK( m_window->GetPrevSibling() == static_cast(NULL) ); - CPPUNIT_ASSERT_EQUAL(static_cast(NULL), newwin->GetNextSibling()); - CPPUNIT_ASSERT_EQUAL(m_window, newwin->GetPrevSibling()); + CHECK( newwin->GetNextSibling() == static_cast(NULL) ); + CHECK( newwin->GetPrevSibling() == m_window ); wxDELETE(newwin); } TEST_CASE_METHOD(WindowTestCase, "Window::Children", "[window]") { - CPPUNIT_ASSERT_EQUAL(0, m_window->GetChildren().GetCount()); + CHECK( m_window->GetChildren().GetCount() == 0 ); wxWindow* child1 = new wxWindow(m_window, wxID_ANY); - CPPUNIT_ASSERT_EQUAL(1, m_window->GetChildren().GetCount()); + CHECK( m_window->GetChildren().GetCount() == 1 ); m_window->RemoveChild(child1); - CPPUNIT_ASSERT_EQUAL(0, m_window->GetChildren().GetCount()); + CHECK( m_window->GetChildren().GetCount() == 0 ); child1->SetId(wxID_HIGHEST + 1); child1->SetName("child1"); m_window->AddChild(child1); - CPPUNIT_ASSERT_EQUAL(1, m_window->GetChildren().GetCount()); - CPPUNIT_ASSERT_EQUAL(child1, m_window->FindWindow(wxID_HIGHEST + 1)); - CPPUNIT_ASSERT_EQUAL(child1, m_window->FindWindow("child1")); + CHECK( m_window->GetChildren().GetCount() == 1 ); + CHECK( m_window->FindWindow(wxID_HIGHEST + 1) == child1 ); + CHECK( m_window->FindWindow("child1") == child1 ); m_window->DestroyChildren(); - CPPUNIT_ASSERT_EQUAL(0, m_window->GetChildren().GetCount()); + CHECK( m_window->GetChildren().GetCount() == 0 ); } TEST_CASE_METHOD(WindowTestCase, "Window::Focus", "[window]") { #ifndef __WXOSX__ - CPPUNIT_ASSERT(!m_window->HasFocus()); + CHECK(!m_window->HasFocus()); if ( m_window->AcceptsFocus() ) { @@ -272,16 +272,14 @@ TEST_CASE_METHOD(WindowTestCase, "Window::Positioning", "[window]") int x, y; m_window->GetPosition(&x, &y); - CPPUNIT_ASSERT_EQUAL(x, m_window->GetPosition().x); - CPPUNIT_ASSERT_EQUAL(y, m_window->GetPosition().y); - CPPUNIT_ASSERT_EQUAL(m_window->GetPosition(), - m_window->GetRect().GetTopLeft()); + CHECK( m_window->GetPosition().x == x ); + CHECK( m_window->GetPosition().y == y ); + CHECK( m_window->GetRect().GetTopLeft() == m_window->GetPosition() ); m_window->GetScreenPosition(&x, &y); - CPPUNIT_ASSERT_EQUAL(x, m_window->GetScreenPosition().x); - CPPUNIT_ASSERT_EQUAL(y, m_window->GetScreenPosition().y); - CPPUNIT_ASSERT_EQUAL(m_window->GetScreenPosition(), - m_window->GetScreenRect().GetTopLeft()); + CHECK( m_window->GetScreenPosition().x == x ); + CHECK( m_window->GetScreenPosition().y == y ); + CHECK( m_window->GetScreenRect().GetTopLeft() == m_window->GetScreenPosition() ); } TEST_CASE_METHOD(WindowTestCase, "Window::PositioningBeyondShortLimit", "[window]") @@ -295,19 +293,19 @@ TEST_CASE_METHOD(WindowTestCase, "Window::PositioningBeyondShortLimit", "[window wxWindow* w = new wxWindow(m_window, wxID_ANY, wxPoint(0, SHRT_MAX + commonDim), wxSize(commonDim, commonDim)); - CPPUNIT_ASSERT_EQUAL(SHRT_MAX + commonDim, w->GetPosition().y); + CHECK( w->GetPosition().y == SHRT_MAX + commonDim ); w->Move(0, 0); // //Test window moving beyond SHRT_MAX w->Move(0, SHRT_MAX + commonDim); - CPPUNIT_ASSERT_EQUAL(SHRT_MAX + commonDim, w->GetPosition().y); + CHECK( w->GetPosition().y == SHRT_MAX + commonDim ); // //Test window moving below SHRT_MIN w->Move(0, SHRT_MIN - commonDim); - CPPUNIT_ASSERT_EQUAL(SHRT_MIN - commonDim, w->GetPosition().y); + CHECK( w->GetPosition().y == SHRT_MIN - commonDim ); // //Test deferred move beyond SHRT_MAX @@ -321,50 +319,50 @@ TEST_CASE_METHOD(WindowTestCase, "Window::PositioningBeyondShortLimit", "[window sizer->Add(w); m_window->SetSizer(sizer); m_window->Layout(); - CPPUNIT_ASSERT_EQUAL(SHRT_MAX + commonDim, w->GetPosition().y); + CHECK( w->GetPosition().y == SHRT_MAX + commonDim ); #endif } TEST_CASE_METHOD(WindowTestCase, "Window::Show", "[window]") { - CPPUNIT_ASSERT(m_window->IsShown()); + CHECK(m_window->IsShown()); m_window->Hide(); - CPPUNIT_ASSERT(!m_window->IsShown()); + CHECK(!m_window->IsShown()); m_window->Show(); - CPPUNIT_ASSERT(m_window->IsShown()); + CHECK(m_window->IsShown()); m_window->Show(false); - CPPUNIT_ASSERT(!m_window->IsShown()); + CHECK(!m_window->IsShown()); m_window->ShowWithEffect(wxSHOW_EFFECT_BLEND); - CPPUNIT_ASSERT(m_window->IsShown()); + CHECK(m_window->IsShown()); m_window->HideWithEffect(wxSHOW_EFFECT_BLEND); - CPPUNIT_ASSERT(!m_window->IsShown()); + CHECK(!m_window->IsShown()); } TEST_CASE_METHOD(WindowTestCase, "Window::Enable", "[window]") { - CPPUNIT_ASSERT(m_window->IsEnabled()); + CHECK(m_window->IsEnabled()); m_window->Disable(); - CPPUNIT_ASSERT(!m_window->IsEnabled()); + CHECK(!m_window->IsEnabled()); m_window->Enable(); - CPPUNIT_ASSERT(m_window->IsEnabled()); + CHECK(m_window->IsEnabled()); m_window->Enable(false); - CPPUNIT_ASSERT(!m_window->IsEnabled()); + CHECK(!m_window->IsEnabled()); } TEST_CASE_METHOD(WindowTestCase, "Window::FindWindowBy", "[window]") @@ -373,14 +371,11 @@ TEST_CASE_METHOD(WindowTestCase, "Window::FindWindowBy", "[window]") m_window->SetName("name"); m_window->SetLabel("label"); - CPPUNIT_ASSERT_EQUAL(m_window, wxWindow::FindWindowById(wxID_HIGHEST + 1)); - CPPUNIT_ASSERT_EQUAL(m_window, wxWindow::FindWindowByName("name")); - CPPUNIT_ASSERT_EQUAL(m_window, wxWindow::FindWindowByLabel("label")); + CHECK( wxWindow::FindWindowById(wxID_HIGHEST + 1) == m_window ); + CHECK( wxWindow::FindWindowByName("name") == m_window ); + CHECK( wxWindow::FindWindowByLabel("label") == m_window ); - CPPUNIT_ASSERT_EQUAL(static_cast(NULL), - wxWindow::FindWindowById(wxID_HIGHEST + 3)); - CPPUNIT_ASSERT_EQUAL(static_cast(NULL), - wxWindow::FindWindowByName("noname")); - CPPUNIT_ASSERT_EQUAL(static_cast(NULL), - wxWindow::FindWindowByLabel("nolabel")); + CHECK( wxWindow::FindWindowById(wxID_HIGHEST + 3) == NULL ); + CHECK( wxWindow::FindWindowByName("noname") == NULL ); + CHECK( wxWindow::FindWindowByLabel("nolabel") == NULL ); }