X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8650108199bf799f21e29811cddaefd579c98c88..cab9b205c3fc803eb7e0b20c9b760b53936e38f3:/tests/datetime/datetimetest.cpp diff --git a/tests/datetime/datetimetest.cpp b/tests/datetime/datetimetest.cpp index f2a0d60016..8c584dd659 100644 --- a/tests/datetime/datetimetest.cpp +++ b/tests/datetime/datetimetest.cpp @@ -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(); @@ -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());