]> git.saurik.com Git - wxWidgets.git/blobdiff - tests/datetime/datetimetest.cpp
discard any pending messages for the socket being destroyed to avoid the problem...
[wxWidgets.git] / tests / datetime / datetimetest.cpp
index db64b5c53ecb8dbf900b40a7405d776bd0837aeb..8c584dd659f432e8ff43342d5103006a53a60129 100644 (file)
@@ -189,6 +189,7 @@ private:
         CPPUNIT_TEST( TestTimeTicks );
         CPPUNIT_TEST( TestParceRFC822 );
         CPPUNIT_TEST( TestDateParse );
+        CPPUNIT_TEST( TestDateTimeParse );
         CPPUNIT_TEST( TestTimeArithmetics );
         CPPUNIT_TEST( TestDSTBug );
         CPPUNIT_TEST( TestDateOnly );
@@ -205,6 +206,7 @@ private:
     void TestTimeTicks();
     void TestParceRFC822();
     void TestDateParse();
+    void TestDateTimeParse();
     void TestTimeArithmetics();
     void TestDSTBug();
     void TestDateOnly();
@@ -639,7 +641,7 @@ void DateTimeTestCase::TestTimeFormat()
 
             // convert back
             wxDateTime dt2;
-            const wxChar *result = dt2.ParseFormat(s, fmt);
+            const wxChar *result = dt2.ParseFormat(s.c_str(), fmt);
             if ( !result )
             {
                 // converion failed - should it have?
@@ -799,7 +801,7 @@ void DateTimeTestCase::TestDateParse()
         // some invalid ones too
         { _T("29 Feb 2006") },
         { _T("31/04/06") },
-        { _T("bloordyblop") }
+        { _T("bloordyblop") },
     };
 
     // special cases
@@ -823,6 +825,37 @@ void DateTimeTestCase::TestDateParse()
     }
 }
 
+void DateTimeTestCase::TestDateTimeParse()
+{
+    static const struct ParseTestData
+    {
+        const wxChar *str;
+        Date date;              // NB: this should be in UTC
+        bool good;
+    } parseTestDates[] =
+    {
+        { _T("Thu 22 Nov 2007 07:40:00 PM"),
+         { 22, wxDateTime::Nov, 2007, 19, 40, 0}, true },
+    };
+
+    // special cases
+    wxDateTime dt;
+    for ( size_t n = 0; n < WXSIZEOF(parseTestDates); n++ )
+    {
+        wxDateTime dt;
+        if ( dt.ParseDateTime(parseTestDates[n].str) )
+        {
+            CPPUNIT_ASSERT( parseTestDates[n].good );
+
+            CPPUNIT_ASSERT_EQUAL( parseTestDates[n].date.DT(), dt );
+        }
+        else // failed to parse
+        {
+            CPPUNIT_ASSERT( !parseTestDates[n].good );
+        }
+    }
+}
+
 void DateTimeTestCase::TestTimeArithmetics()
 {
     static const wxDateSpan testArithmData[] =
@@ -854,11 +887,11 @@ void DateTimeTestCase::TestDSTBug()
 {
     /////////////////////////
     // Test GetEndDST()
-    wxDateTime dt = wxDateTime::GetEndDST(2004);
+    wxDateTime dt = wxDateTime::GetEndDST(2004, wxDateTime::France);
     CPPUNIT_ASSERT_EQUAL(31, (int)dt.GetDay());
     CPPUNIT_ASSERT_EQUAL(wxDateTime::Oct, dt.GetMonth());
     CPPUNIT_ASSERT_EQUAL(2004, (int)dt.GetYear());
-    CPPUNIT_ASSERT_EQUAL(2, (int)dt.GetHour());
+    CPPUNIT_ASSERT_EQUAL(1, (int)dt.GetHour());
     CPPUNIT_ASSERT_EQUAL(0, (int)dt.GetMinute());
     CPPUNIT_ASSERT_EQUAL(0, (int)dt.GetSecond());
     CPPUNIT_ASSERT_EQUAL(0, (int)dt.GetMillisecond());