Angelo Haller : comctl32/tests: Add change sequence for ownerdata listviews.
Module: wine Branch: oldstable Commit: 7fc9c2ef9a6a50292975e8766df9b405b2b54c28 URL: https://gitlab.winehq.org/wine/wine/-/commit/7fc9c2ef9a6a50292975e8766df9b40... Author: Angelo Haller <angelo(a)szanni.org> Date: Thu Apr 28 08:20:11 2022 -0500 comctl32/tests: Add change sequence for ownerdata listviews. Add a new test sequence for ownerdata listviews that logs solely item change notifications for single and multiple items changing. Use it in the ownerdata multiselect tests. Signed-off-by: Angelo Haller <angelo(a)szanni.org> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit 1132f5f74be000a8cda980030f8405fa41df8b07) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/comctl32/tests/listview.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/dlls/comctl32/tests/listview.c b/dlls/comctl32/tests/listview.c index 129d51ec7f8..a8589b96a06 100644 --- a/dlls/comctl32/tests/listview.c +++ b/dlls/comctl32/tests/listview.c @@ -37,6 +37,7 @@ enum seq_index { PARENT_SEQ_INDEX, PARENT_FULL_SEQ_INDEX, PARENT_CD_SEQ_INDEX, + PARENT_ODSTATECHANGED_SEQ_INDEX, LISTVIEW_SEQ_INDEX, EDITBOX_SEQ_INDEX, COMBINED_SEQ_INDEX, @@ -244,6 +245,14 @@ static const struct message ownerdata_deselect_all_parent_seq[] = { { 0 } }; +static const struct message ownerdata_multiselect_odstatechanged_seq[] = { + { WM_NOTIFY, sent|id, 0, 0, LVN_ITEMCHANGED }, + { WM_NOTIFY, sent|id, 0, 0, LVN_ODSTATECHANGED }, + { WM_NOTIFY, sent|id, 0, 0, LVN_ITEMCHANGED }, + { WM_NOTIFY, sent|id, 0, 0, LVN_ITEMCHANGED }, + { 0 } +}; + static const struct message change_all_parent_seq[] = { { WM_NOTIFY, sent|id, 0, 0, LVN_ITEMCHANGING }, { WM_NOTIFY, sent|id, 0, 0, LVN_ITEMCHANGED }, @@ -522,6 +531,10 @@ static LRESULT WINAPI parent_wnd_proc(HWND hwnd, UINT message, WPARAM wParam, LP add_message(sequences, PARENT_SEQ_INDEX, &msg); add_message(sequences, COMBINED_SEQ_INDEX, &msg); } + /* log change messages for single and multiple items changing in ownerdata listviews */ + if (message == WM_NOTIFY && (msg.id == LVN_ITEMCHANGED || msg.id == LVN_ODSTATECHANGED)) + add_message(sequences, PARENT_ODSTATECHANGED_SEQ_INDEX, &msg); + add_message(sequences, PARENT_FULL_SEQ_INDEX, &msg); switch (message) @@ -3555,8 +3568,15 @@ static void test_ownerdata_multiselect(void) hold_key(VK_SHIFT); + flush_sequences(sequences, NUM_MSG_SEQUENCES); + res = SendMessageA(hwnd, WM_KEYDOWN, VK_DOWN, 0); expect(0, res); + + ok_sequence(sequences, PARENT_ODSTATECHANGED_SEQ_INDEX, + ownerdata_multiselect_odstatechanged_seq, + "ownerdata select multiple notification", TRUE); + res = SendMessageA(hwnd, WM_KEYUP, VK_DOWN, 0); expect(0, res); @@ -3565,8 +3585,15 @@ static void test_ownerdata_multiselect(void) hold_key(VK_CONTROL); + flush_sequences(sequences, NUM_MSG_SEQUENCES); + res = SendMessageA(hwnd, WM_KEYDOWN, VK_DOWN, 0); expect(0, res); + + ok_sequence(sequences, PARENT_ODSTATECHANGED_SEQ_INDEX, + ownerdata_multiselect_odstatechanged_seq, + "ownerdata select multiple notification", TRUE); + res = SendMessageA(hwnd, WM_KEYUP, VK_DOWN, 0); expect(0, res);
participants (1)
-
Alexandre Julliard