// Name: testableframe.cpp
// Purpose: An improved wxFrame for unit-testing
// Author: Steven Lamerton
-// RCS-ID: $Id:$
+// RCS-ID: $Id$
// Copyright: (c) 2010 Steven Lamerton
-// Licence: wxWidgets licence
+// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// For compilers that support precompilation, includes "wx/wx.h".
int wxTestableFrame::GetEventCount(wxEventType type)
{
- if (type == wxEVT_ANY)
- {
- //Get the total event count
- long total = 0;
-
- for(wxLongToLongHashMap::iterator iter = m_count.begin();
- iter != m_count.end();
- iter++)
- {
- total += iter->second;
- iter->second = 0;
- }
+ return m_count[type];
+}
- return total;
- }
- else
- {
- long count = m_count[type];
- m_count[type] = 0;
- return count;
- }
+void wxTestableFrame::ClearEventCount(wxEventType type)
+{
+ m_count[type] = 0;
}
EventCounter::EventCounter(wxWindow* win, wxEventType type) : m_type(type),
m_win(win)
{
- m_frame = wxStaticCast(wxTheApp->GetTopWindow(),
- wxTestableFrame);
+ m_frame = wxStaticCast(wxTheApp->GetTopWindow(), wxTestableFrame);
- m_win->Connect(m_type,
- wxEventHandler(wxTestableFrame::OnEvent),
- NULL,
- m_frame);
+ m_win->Connect(m_type, wxEventHandler(wxTestableFrame::OnEvent),
+ NULL, m_frame);
}
EventCounter::~EventCounter()
{
- m_win->Disconnect(m_type,
- wxEventHandler(wxTestableFrame::OnEvent),
- NULL,
- m_frame);
+ m_win->Disconnect(m_type, wxEventHandler(wxTestableFrame::OnEvent),
+ NULL, m_frame);
+
+ //This stops spurious counts from previous tests
+ Clear();
m_frame = NULL;
m_win = NULL;