Module: wine Branch: master Commit: af0f00b671864059cdaa890b5eaa40b8b70ebac1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=af0f00b671864059cdaa890b5e...
Author: Nikolay Sivov bunglehead@gmail.com Date: Tue Jul 21 22:06:18 2009 +0400
comctl32/listview: LVM_SETITEMSTATE - select all item case tests.
---
dlls/comctl32/tests/listview.c | 56 +++++++++++++++++++++++++++++++++++++++- 1 files changed, 55 insertions(+), 1 deletions(-)
diff --git a/dlls/comctl32/tests/listview.c b/dlls/comctl32/tests/listview.c index b886d86..6454187 100644 --- a/dlls/comctl32/tests/listview.c +++ b/dlls/comctl32/tests/listview.c @@ -205,6 +205,29 @@ static const struct message ownderdata_select_focus_parent_seq[] = { { 0 } };
+static const struct message ownerdata_select_all_parent_seq[] = { + { WM_NOTIFY, sent|id, 0, 0, LVN_ITEMCHANGED }, + { 0 } +}; + +static const struct message select_all_parent_seq[] = { + { WM_NOTIFY, sent|id, 0, 0, LVN_ITEMCHANGING }, + { WM_NOTIFY, sent|id, 0, 0, LVN_ITEMCHANGED }, + + { WM_NOTIFY, sent|id, 0, 0, LVN_ITEMCHANGING }, + { WM_NOTIFY, sent|id, 0, 0, LVN_ITEMCHANGED }, + + { WM_NOTIFY, sent|id, 0, 0, LVN_ITEMCHANGING }, + { WM_NOTIFY, sent|id, 0, 0, LVN_ITEMCHANGED }, + + { WM_NOTIFY, sent|id, 0, 0, LVN_ITEMCHANGING }, + { WM_NOTIFY, sent|id, 0, 0, LVN_ITEMCHANGED }, + + { WM_NOTIFY, sent|id, 0, 0, LVN_ITEMCHANGING }, + { WM_NOTIFY, sent|id, 0, 0, LVN_ITEMCHANGED }, + { 0 } +}; + static const struct message textcallback_set_again_parent_seq[] = { { WM_NOTIFY, sent|id, 0, 0, LVN_ITEMCHANGING }, { WM_NOTIFY, sent|id, 0, 0, LVN_ITEMCHANGED }, @@ -1916,6 +1939,20 @@ static void test_multiselect(void) } item_count = (int)SendMessage(hwnd, LVM_GETITEMCOUNT, 0, 0); expect(items,item_count); + + /* select all, check notifications */ + ListView_SetItemState(hwnd, -1, 0, LVIS_SELECTED); + + flush_sequences(sequences, NUM_MSG_SEQUENCES); + + item.stateMask = LVIS_SELECTED; + item.state = LVIS_SELECTED; + r = SendMessageA(hwnd, LVM_SETITEMSTATE, -1, (LPARAM)&item); + expect(TRUE, r); + + ok_sequence(sequences, PARENT_SEQ_INDEX, select_all_parent_seq, + "select all notification", FALSE); + /* deselect all items */ ListView_SetItemState(hwnd, -1, 0, LVIS_SELECTED); SendMessage(hwnd, LVM_SETSELECTIONMARK, 0, -1); @@ -2385,7 +2422,7 @@ static void test_ownerdata(void) /* check notifications after focused/selected changed */ hwnd = create_listview_control(LVS_OWNERDATA); ok(hwnd != NULL, "failed to create a listview window\n"); - res = SendMessageA(hwnd, LVM_SETITEMCOUNT, 1, 0); + res = SendMessageA(hwnd, LVM_SETITEMCOUNT, 20, 0); ok(res != 0, "Expected LVM_SETITEMCOUNT to succeed\n");
flush_sequences(sequences, NUM_MSG_SEQUENCES); @@ -2409,6 +2446,23 @@ static void test_ownerdata(void)
ok_sequence(sequences, PARENT_SEQ_INDEX, ownderdata_select_focus_parent_seq, "ownerdata focus notification", TRUE); + + /* select all, check notifications */ + item.stateMask = LVIS_SELECTED; + item.state = 0; + res = SendMessageA(hwnd, LVM_SETITEMSTATE, -1, (LPARAM)&item); + expect(TRUE, res); + + flush_sequences(sequences, NUM_MSG_SEQUENCES); + + item.stateMask = LVIS_SELECTED; + item.state = LVIS_SELECTED; + res = SendMessageA(hwnd, LVM_SETITEMSTATE, -1, (LPARAM)&item); + expect(TRUE, res); + + ok_sequence(sequences, PARENT_SEQ_INDEX, ownerdata_select_all_parent_seq, + "ownerdata select all notification", TRUE); + DestroyWindow(hwnd);
/* check notifications on LVM_GETITEM */