Module: wine Branch: master Commit: 72186db5fe5ac509d5404b73a5c6590d6fbbca00 URL: https://source.winehq.org/git/wine.git/?a=commit;h=72186db5fe5ac509d5404b73a...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Mon Jan 29 14:20:40 2018 +0300
comctl32/tests: Add more tests for tab focus.
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/comctl32/tests/tab.c | 70 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 57 insertions(+), 13 deletions(-)
diff --git a/dlls/comctl32/tests/tab.c b/dlls/comctl32/tests/tab.c index a54dbb5..d3e0e0c 100644 --- a/dlls/comctl32/tests/tab.c +++ b/dlls/comctl32/tests/tab.c @@ -215,6 +215,11 @@ static const struct message selchange_parent_seq[] = { { 0 } };
+static const struct message setfocus_parent_seq[] = { + { WM_NOTIFY, sent|id, 0, 0, TCN_FOCUSCHANGE }, + { 0 } +}; + static HWND create_tabcontrol (DWORD style, DWORD mask) { @@ -593,7 +598,7 @@ static void test_width(void) static void test_curfocus(void) { const INT nTabs = 5; - INT focusIndex; + INT ret; HWND hTab;
hTab = createFilledTabControl(parent_wnd, TCS_FIXEDWIDTH, TCIF_TEXT|TCIF_IMAGE, nTabs); @@ -602,24 +607,63 @@ static void test_curfocus(void) flush_sequences(sequences, NUM_MSG_SEQUENCES);
/* Testing CurFocus with largest appropriate value */ - SendMessageA(hTab, TCM_SETCURFOCUS, nTabs - 1, 0); - focusIndex = SendMessageA(hTab, TCM_GETCURFOCUS, 0, 0); - expect(nTabs-1, focusIndex); + ret = SendMessageA(hTab, TCM_SETCURFOCUS, nTabs - 1, 0); + ok(ret == 0, "Unexpected ret value %d.\n", ret); + ret = SendMessageA(hTab, TCM_GETCURFOCUS, 0, 0); + ok(ret == nTabs - 1, "Unexpected focus index %d.\n", ret);
/* Testing CurFocus with negative value */ - SendMessageA(hTab, TCM_SETCURFOCUS, -10, 0); - focusIndex = SendMessageA(hTab, TCM_GETCURFOCUS, 0, 0); - expect(-1, focusIndex); + ret = SendMessageA(hTab, TCM_SETCURFOCUS, -10, 0); + ok(ret == 0, "Unexpected ret value %d.\n", ret); + ret = SendMessageA(hTab, TCM_GETCURFOCUS, 0, 0); + ok(ret == -1, "Unexpected focus index %d.\n", ret);
/* Testing CurFocus with value larger than number of tabs */ - focusIndex = SendMessageA(hTab, TCM_SETCURSEL, 1, 0); - expect(-1, focusIndex); + ret = SendMessageA(hTab, TCM_SETCURSEL, 1, 0); + ok(ret == -1, "Unexpected focus index %d.\n", ret);
- SendMessageA(hTab, TCM_SETCURFOCUS, nTabs + 1, 0); - focusIndex = SendMessageA(hTab, TCM_GETCURFOCUS, 0, 0); - expect(1, focusIndex); + ret = SendMessageA(hTab, TCM_SETCURFOCUS, nTabs + 1, 0); + ok(ret == 0, "Unexpected ret value %d.\n", ret); + ret = SendMessageA(hTab, TCM_GETCURFOCUS, 0, 0); + ok(ret == 1, "Unexpected focus index %d.\n", ret); + + ok_sequence(sequences, TAB_SEQ_INDEX, getset_cur_focus_seq, "Set focused tab sequence", FALSE); + ok_sequence(sequences, PARENT_SEQ_INDEX, empty_sequence, "Set focused tab parent sequence", TRUE); + + DestroyWindow(hTab); + + /* TCS_BUTTONS */ + hTab = createFilledTabControl(parent_wnd, TCS_BUTTONS, TCIF_TEXT|TCIF_IMAGE, nTabs); + ok(hTab != NULL, "Failed to create tab control\n"); + + flush_sequences(sequences, NUM_MSG_SEQUENCES); + + /* Testing CurFocus with largest appropriate value */ + ret = SendMessageA(hTab, TCM_SETCURFOCUS, nTabs - 1, 0); + ok(ret == 0, "Unexpected ret value %d.\n", ret); + ret = SendMessageA(hTab, TCM_GETCURFOCUS, 0, 0); + ok(ret == nTabs - 1, "Unexpected focus index %d.\n", ret); + + /* Testing CurFocus with negative value */ + ret = SendMessageA(hTab, TCM_SETCURFOCUS, -10, 0); + ok(ret == 0, "Unexpected ret value %d.\n", ret); + ret = SendMessageA(hTab, TCM_GETCURFOCUS, 0, 0); +todo_wine + ok(ret == nTabs - 1, "Unexpected focus index %d.\n", ret); + + /* Testing CurFocus with value larger than number of tabs */ + ret = SendMessageA(hTab, TCM_SETCURSEL, 1, 0); +todo_wine + ok(ret == 0, "Unexpected focus index %d.\n", ret); + + ret = SendMessageA(hTab, TCM_SETCURFOCUS, nTabs + 1, 0); + ok(ret == 0, "Unexpected ret value %d.\n", ret); + ret = SendMessageA(hTab, TCM_GETCURFOCUS, 0, 0); +todo_wine + ok(ret == nTabs - 1, "Unexpected focus index %d.\n", ret);
- ok_sequence(sequences, TAB_SEQ_INDEX, getset_cur_focus_seq, "Getset curFoc test sequence", FALSE); + ok_sequence(sequences, TAB_SEQ_INDEX, getset_cur_focus_seq, "TCS_BUTTONS: set focused tab sequence", FALSE); + ok_sequence(sequences, PARENT_SEQ_INDEX, setfocus_parent_seq, "TCS_BUTTONS: set focused tab parent sequence", TRUE);
DestroyWindow(hTab); }