| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | 
							- ///////////////////////////////////////////////////////////////////////////////
 
- // Name:        tests/events/clone.cpp
 
- // Purpose:     Test wxEvent::Clone() implementation by all event classes
 
- // Author:      Vadim Zeitlin, based on the code by Francesco Montorsi
 
- // Created:     2009-03-22
 
- // Copyright:   (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
 
- ///////////////////////////////////////////////////////////////////////////////
 
- // ----------------------------------------------------------------------------
 
- // headers
 
- // ----------------------------------------------------------------------------
 
- #include "testprec.h"
 
- #ifdef __BORLANDC__
 
-     #pragma hdrstop
 
- #endif
 
- #ifndef WX_PRECOMP
 
-     #include "wx/event.h"
 
- #endif // WX_PRECOMP
 
- // --------------------------------------------------------------------------
 
- // test class
 
- // --------------------------------------------------------------------------
 
- class EventCloneTestCase : public CppUnit::TestCase
 
- {
 
- public:
 
-     EventCloneTestCase() {}
 
- private:
 
-     CPPUNIT_TEST_SUITE( EventCloneTestCase );
 
-         CPPUNIT_TEST( CheckAll );
 
-     CPPUNIT_TEST_SUITE_END();
 
-     void CheckAll();
 
-     DECLARE_NO_COPY_CLASS(EventCloneTestCase)
 
- };
 
- // register in the unnamed registry so that these tests are run by default
 
- CPPUNIT_TEST_SUITE_REGISTRATION( EventCloneTestCase );
 
- // also include in its own registry so that these tests can be run alone
 
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( EventCloneTestCase, "EventCloneTestCase" );
 
- void EventCloneTestCase::CheckAll()
 
- {
 
-     // check if event classes implement Clone() correctly
 
-     // NOTE: the check is done against _all_ event classes which are linked to
 
-     //       the executable currently running, which are not necessarily all
 
-     //       wxWidgets event classes.
 
-     const wxClassInfo *ci = wxClassInfo::GetFirst();
 
-     for (; ci; ci = ci->GetNext())
 
-     {
 
-         wxString cn = wxString(ci->GetClassName());
 
-     
 
-         // is this class derived from wxEvent?
 
-         if ( !ci->IsKindOf(CLASSINFO(wxEvent)) ||
 
-              cn == "wxEvent" )
 
-             continue;
 
-         const std::string
 
-             msg = std::string("Event class \"") + 
 
-                   std::string(cn.c_str()) + "\"";
 
-         CPPUNIT_ASSERT_MESSAGE( msg, ci->IsDynamic() );
 
-         wxEvent * const test = wxDynamicCast(ci->CreateObject(),wxEvent);
 
-         CPPUNIT_ASSERT_MESSAGE( msg, test );
 
-         wxEvent * const cloned = test->Clone();
 
-         delete test;
 
-         CPPUNIT_ASSERT_MESSAGE( msg, cloned );
 
-         CPPUNIT_ASSERT_MESSAGE( msg, cloned->GetClassInfo() == ci );
 
-         delete cloned;
 
-     }
 
- }
 
 
  |