Nikolay Sivov : comctl32/datetime: Some DTM_SETSYSTEMTIME tests.
Alexandre Julliard
julliard at winehq.org
Thu Oct 1 09:48:18 CDT 2009
Module: wine
Branch: master
Commit: 99ded940e142d0f688500eb782697655fe4f244b
URL: http://source.winehq.org/git/wine.git/?a=commit;h=99ded940e142d0f688500eb782697655fe4f244b
Author: Nikolay Sivov <bunglehead at gmail.com>
Date: Thu Oct 1 03:00:26 2009 +0400
comctl32/datetime: Some DTM_SETSYSTEMTIME tests.
---
dlls/comctl32/tests/datetime.c | 88 +++++++++++++++++++++++++++++++++++++++-
1 files changed, 87 insertions(+), 1 deletions(-)
diff --git a/dlls/comctl32/tests/datetime.c b/dlls/comctl32/tests/datetime.c
index 986fc8e..26d7ea1 100644
--- a/dlls/comctl32/tests/datetime.c
+++ b/dlls/comctl32/tests/datetime.c
@@ -524,7 +524,7 @@ static void test_dtm_set_range_swap_min_max(void)
static void test_dtm_set_and_get_system_time(void)
{
LRESULT r;
- SYSTEMTIME st, getSt;
+ SYSTEMTIME st, getSt, ref;
HWND hWnd, hWndDateTime_test_gdt_none;
hWndDateTime_test_gdt_none = create_datetime_control(0, 0);
@@ -579,6 +579,92 @@ static void test_dtm_set_and_get_system_time(void)
expect_unsuccess(0, r);
ok_sequence(sequences, DATETIME_SEQ_INDEX, test_dtm_set_and_get_system_time_seq, "test_dtm_set_and_get_system_time", FALSE);
+
+ /* set to some valid value */
+ GetSystemTime(&ref);
+ r = SendMessage(hWnd, DTM_SETSYSTEMTIME, GDT_VALID, (LPARAM)&ref);
+ expect(1, r);
+ r = SendMessage(hWnd, DTM_GETSYSTEMTIME, 0, (LPARAM)&getSt);
+ expect(GDT_VALID, r);
+ expect_systime(&ref, &getSt);
+
+ /* year invalid */
+ st = ref;
+ st.wYear = 0;
+ r = SendMessage(hWnd, DTM_SETSYSTEMTIME, GDT_VALID, (LPARAM)&st);
+ todo_wine expect(1, r);
+ r = SendMessage(hWnd, DTM_GETSYSTEMTIME, 0, (LPARAM)&getSt);
+ expect(GDT_VALID, r);
+ expect_systime(&ref, &getSt);
+ /* month invalid */
+ st = ref;
+ st.wMonth = 13;
+ r = SendMessage(hWnd, DTM_SETSYSTEMTIME, GDT_VALID, (LPARAM)&st);
+ expect(0, r);
+ r = SendMessage(hWnd, DTM_GETSYSTEMTIME, 0, (LPARAM)&getSt);
+ expect(GDT_VALID, r);
+ expect_systime(&ref, &getSt);
+ /* day invalid */
+ st = ref;
+ st.wDay = 32;
+ r = SendMessage(hWnd, DTM_SETSYSTEMTIME, GDT_VALID, (LPARAM)&st);
+ expect(0, r);
+ r = SendMessage(hWnd, DTM_GETSYSTEMTIME, 0, (LPARAM)&getSt);
+ expect(GDT_VALID, r);
+ expect_systime(&ref, &getSt);
+ /* day of week isn't validated */
+ st = ref;
+ st.wDayOfWeek = 10;
+ r = SendMessage(hWnd, DTM_SETSYSTEMTIME, GDT_VALID, (LPARAM)&st);
+ todo_wine expect(1, r);
+ r = SendMessage(hWnd, DTM_GETSYSTEMTIME, 0, (LPARAM)&getSt);
+ expect(GDT_VALID, r);
+ expect_systime(&ref, &getSt);
+ /* hour invalid */
+ st = ref;
+ st.wHour = 25;
+ r = SendMessage(hWnd, DTM_SETSYSTEMTIME, GDT_VALID, (LPARAM)&st);
+ expect(0, r);
+ r = SendMessage(hWnd, DTM_GETSYSTEMTIME, 0, (LPARAM)&getSt);
+ expect(GDT_VALID, r);
+ expect_systime(&ref, &getSt);
+ /* minute invalid */
+ st = ref;
+ st.wMinute = 60;
+ r = SendMessage(hWnd, DTM_SETSYSTEMTIME, GDT_VALID, (LPARAM)&st);
+ expect(0, r);
+ r = SendMessage(hWnd, DTM_GETSYSTEMTIME, 0, (LPARAM)&getSt);
+ expect(GDT_VALID, r);
+ expect_systime(&ref, &getSt);
+ /* sec invalid */
+ st = ref;
+ st.wSecond = 60;
+ r = SendMessage(hWnd, DTM_SETSYSTEMTIME, GDT_VALID, (LPARAM)&st);
+ expect(0, r);
+ r = SendMessage(hWnd, DTM_GETSYSTEMTIME, 0, (LPARAM)&getSt);
+ expect(GDT_VALID, r);
+ expect_systime(&ref, &getSt);
+ /* msec invalid */
+ st = ref;
+ st.wMilliseconds = 1000;
+ r = SendMessage(hWnd, DTM_SETSYSTEMTIME, GDT_VALID, (LPARAM)&st);
+ expect(0, r);
+ r = SendMessage(hWnd, DTM_GETSYSTEMTIME, 0, (LPARAM)&getSt);
+ expect(GDT_VALID, r);
+ expect_systime(&ref, &getSt);
+
+ /* day of week should be calculated automatically,
+ actual day of week for this date is 4 */
+ fill_systime_struct(&st, 2009, 10, 1, 1, 0, 0, 10, 200);
+ r = SendMessage(hWnd, DTM_SETSYSTEMTIME, GDT_VALID, (LPARAM)&st);
+ expect(1, r);
+ r = SendMessage(hWnd, DTM_GETSYSTEMTIME, 0, (LPARAM)&getSt);
+ expect(GDT_VALID, r);
+ /* 01.10.2009 is Thursday */
+ todo_wine expect(4, (LRESULT)getSt.wDayOfWeek);
+ st.wDayOfWeek = 4;
+ todo_wine expect_systime(&st, &getSt);
+
DestroyWindow(hWnd);
}
More information about the wine-cvs
mailing list