]> git.saurik.com Git - wxWidgets.git/blobdiff - tests/testprec.h
remove wxFileConfig tests: FileConfigTestCase already tests features tested by consol...
[wxWidgets.git] / tests / testprec.h
index 1ec2054d6bf853f258283122f534827d8cd7bae6..b5178c8d1ed3e0453c7bb4506af0886ab63238eb 100644 (file)
@@ -1,40 +1,69 @@
 #include "wx/wxprec.h"
+#include "wx/cppunit.h"
 
-#include <string>
-
-// need this to be able to use CPPUNIT_ASSERT_EQUAL with wxString objects
-//
-// NB: at least for VC7.1 the specialization must be done before cppunit
-//     headers inclusion as otherwise it's just ignored!
-namespace CppUnit
-{
+// define wxHAVE_U_ESCAPE if the compiler supports \uxxxx character constants
+#if (defined(__VISUALC__) && (__VISUALC__ >= 1300)) || \
+    (defined(__GNUC__) && (__GNUC__ >= 3))
+    #define wxHAVE_U_ESCAPE
 
-template <typename T> struct assertion_traits;
+    // and disable warning that using them results in with MSVC 8+
+    #if wxCHECK_VISUALC_VERSION(8)
+        // universal-character-name encountered in source
+        #pragma warning(disable:4428)
+    #endif
+#endif
 
-template <>
-struct assertion_traits<wxString>
+// thrown when assert fails in debug build
+class TestAssertFailure
 {
-    static bool equal(const wxString& s1, const wxString& s2)
+public:
+    TestAssertFailure(const wxString& file,
+                      int line,
+                      const wxString& func,
+                      const wxString& cond,
+                      const wxString& msg)
+        : m_file(file),
+          m_line(line),
+          m_func(func),
+          m_cond(cond),
+          m_msg(msg)
     {
-      return s1 == s2;
     }
 
-    static std::string toString(const wxString& s)
-    {
-      return std::string(s.mb_str());
-    }
+    const wxString m_file;
+    const int m_line;
+    const wxString m_func;
+    const wxString m_cond;
+    const wxString m_msg;
+
+    wxDECLARE_NO_ASSIGN_CLASS(TestAssertFailure);
 };
 
-} // namespace CppUnit
+// macro to use for the functions which are supposed to fail an assertion
+#if wxDEBUG_LEVEL
+    // some old cppunit versions don't define CPPUNIT_ASSERT_THROW so roll our
+    // own
+    #define WX_ASSERT_FAILS_WITH_ASSERT(cond) \
+        { \
+            bool throwsAssert = false; \
+            try { cond ; } \
+            catch ( const TestAssertFailure& ) { throwsAssert = true; } \
+            if ( !throwsAssert ) \
+                CPPUNIT_FAIL("expected assertion not generated"); \
+        }
+#else
+    // there are no assertions in this build so just check that it fails
+    #define WX_ASSERT_FAILS_WITH_ASSERT(cond) CPPUNIT_ASSERT(!(cond))
+#endif
 
-#include "wx/cppunit.h"
+// these functions can be used to hook into wxApp event processing and are
+// currently used by the events propagation test
+class WXDLLIMPEXP_FWD_BASE wxEvent;
 
-// define wxHAVE_U_ESCAPE if the compiler supports \uxxxx character constants
-#if (defined(__VISUALC__) && (__VISUALC__ >= 1300)) || \
-    (defined(__GNUC__) && (__GNUC__ >= 3))
-    #define wxHAVE_U_ESCAPE
-#endif
+typedef int (*FilterEventFunc)(wxEvent&);
+typedef bool (*ProcessEventFunc)(wxEvent&);
 
-#define CPPUNIT_ASSERT_STR_EQUAL(s1, s2)                                      \
-    CPPUNIT_ASSERT_EQUAL( wxString(s1), wxString(s2) )
+extern void SetFilterEventFunc(FilterEventFunc func);
+extern void SetProcessEventFunc(ProcessEventFunc func);
 
+extern bool IsNetworkAvailable();