=?UTF-8?Q?Gabriel=20Iv=C4=83ncescu=20?=: shell32/tests: Add tests for ResetEnumerator.
Alexandre Julliard
julliard at winehq.org
Thu Nov 8 14:47:25 CST 2018
Module: wine
Branch: master
Commit: 17213acd171b897a4d53a6bdaca22ac18b87b46c
URL: https://source.winehq.org/git/wine.git/?a=commit;h=17213acd171b897a4d53a6bdaca22ac18b87b46c
Author: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Date: Wed Nov 7 17:14:16 2018 +0200
shell32/tests: Add tests for ResetEnumerator.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/shell32/tests/autocomplete.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/dlls/shell32/tests/autocomplete.c b/dlls/shell32/tests/autocomplete.c
index 8265bf9..6921202 100644
--- a/dlls/shell32/tests/autocomplete.c
+++ b/dlls/shell32/tests/autocomplete.c
@@ -514,6 +514,7 @@ static void test_custom_source(void)
struct string_enumerator *obj;
IUnknown *enumerator;
IAutoComplete2 *autocomplete;
+ IAutoCompleteDropDown *acdropdown;
HWND hwnd_edit;
WCHAR buffer[20];
HRESULT hr;
@@ -525,11 +526,16 @@ static void test_custom_source(void)
hr = CoCreateInstance(&CLSID_AutoComplete, NULL, CLSCTX_INPROC_SERVER, &IID_IAutoComplete2, (void**)&autocomplete);
ok(hr == S_OK, "CoCreateInstance failed: %x\n", hr);
+ hr = IAutoComplete2_QueryInterface(autocomplete, &IID_IAutoCompleteDropDown, (LPVOID*)&acdropdown);
+ ok(hr == S_OK, "No IAutoCompleteDropDown interface: %x\n", hr);
+
string_enumerator_create((void**)&enumerator, suggestions, ARRAY_SIZE(suggestions));
obj = (struct string_enumerator*)enumerator;
hr = IAutoComplete2_SetOptions(autocomplete, ACO_AUTOSUGGEST | ACO_AUTOAPPEND);
ok(hr == S_OK, "IAutoComplete2_SetOptions failed: %x\n", hr);
+ hr = IAutoCompleteDropDown_ResetEnumerator(acdropdown);
+ ok(hr == S_OK, "IAutoCompleteDropDown_ResetEnumerator failed: %x\n", hr);
hr = IAutoComplete2_Init(autocomplete, hwnd_edit, enumerator, NULL, NULL);
ok(hr == S_OK, "IAutoComplete_Init failed: %x\n", hr);
@@ -546,6 +552,9 @@ static void test_custom_source(void)
SendMessageW(hwnd_edit, WM_GETTEXT, ARRAY_SIZE(buffer), (LPARAM)buffer);
ok(buffer[0] == '\0', "Expected empty string, got %s\n", wine_dbgstr_w(buffer));
ok(obj->num_resets == 1, "Expected 1 reset, got %u\n", obj->num_resets);
+ hr = IAutoCompleteDropDown_ResetEnumerator(acdropdown);
+ ok(hr == S_OK, "IAutoCompleteDropDown_ResetEnumerator failed: %x\n", hr);
+ ok(obj->num_resets == 1, "Expected 1 reset, got %u\n", obj->num_resets);
obj->num_resets = 0;
/* hijack the window procedure */
@@ -565,6 +574,8 @@ static void test_custom_source(void)
dispatch_messages();
SendMessageW(hwnd_edit, WM_GETTEXT, ARRAY_SIZE(buffer), (LPARAM)buffer);
ok(buffer[0] == '\0', "Expected empty string, got %s\n", wine_dbgstr_w(buffer));
+ hr = IAutoCompleteDropDown_ResetEnumerator(acdropdown);
+ ok(hr == S_OK, "IAutoCompleteDropDown_ResetEnumerator failed: %x\n", hr);
HijackerWndProc_prev = (WNDPROC)SetWindowLongPtrW(hwnd_edit, GWLP_WNDPROC, (LONG_PTR)HijackerWndProc2);
SendMessageW(hwnd_edit, WM_CHAR, 'a', 1);
@@ -577,6 +588,17 @@ static void test_custom_source(void)
/* end of hijacks */
test_aclist_expand(hwnd_edit, enumerator);
+ obj->num_resets = 0;
+
+ hr = IAutoCompleteDropDown_ResetEnumerator(acdropdown);
+ ok(hr == S_OK, "IAutoCompleteDropDown_ResetEnumerator failed: %x\n", hr);
+ SendMessageW(hwnd_edit, WM_CHAR, 'x', 1);
+ dispatch_messages();
+ ok(obj->num_resets == 1, "Expected 1 reset, got %u\n", obj->num_resets);
+ SendMessageW(hwnd_edit, WM_CHAR, 'x', 1);
+ dispatch_messages();
+ ok(obj->num_resets == 1, "Expected 1 reset, got %u\n", obj->num_resets);
+ IAutoCompleteDropDown_Release(acdropdown);
ShowWindow(hMainWnd, SW_HIDE);
DestroyWindow(hwnd_edit);
More information about the wine-cvs
mailing list