From: Zhiyi Zhang <zzhang@codeweavers.com> --- dlls/comctl32/tests/misc.c | 99 +++++++++++++++++++++++++++++++++----- 1 file changed, 87 insertions(+), 12 deletions(-) diff --git a/dlls/comctl32/tests/misc.c b/dlls/comctl32/tests/misc.c index 4b01009fdc9..1dd0b1e80eb 100644 --- a/dlls/comctl32/tests/misc.c +++ b/dlls/comctl32/tests/misc.c @@ -1336,28 +1336,103 @@ static void test_version(BOOL v6) static void test_RegisterClassNameW(BOOL v6) { - static const WCHAR *class_names[] = + static const WCHAR *v6_class_names[] = { - L"Button", - L"ComboBox", + WC_BUTTONW, + WC_COMBOBOXW, L"ComboLBox", - L"Edit", - L"ListBox", - L"Static", + WC_EDITW, + WC_LISTBOXW, + WC_STATICW, + WC_LINK, + ANIMATE_CLASSW, + WC_COMBOBOXEXW, + DATETIMEPICK_CLASSW, + WC_HEADERW, + HOTKEY_CLASSW, + WC_IPADDRESSW, + WC_LISTVIEWW, + MONTHCAL_CLASSW, + WC_NATIVEFONTCTLW, + WC_PAGESCROLLERW, + PROGRESS_CLASSW, + REBARCLASSNAMEW, + STATUSCLASSNAMEW, + WC_TABCONTROLW, + TOOLBARCLASSNAMEW, + TOOLTIPS_CLASSW, + TRACKBAR_CLASSW, + WC_TREEVIEWW, + UPDOWN_CLASSW, + }; + static const WCHAR *v5_class_names[] = + { + ANIMATE_CLASSW, + WC_COMBOBOXEXW, + DATETIMEPICK_CLASSW, + WC_HEADERW, + HOTKEY_CLASSW, + WC_IPADDRESSW, + WC_LISTVIEWW, + MONTHCAL_CLASSW, + WC_NATIVEFONTCTLW, + WC_PAGESCROLLERW, + PROGRESS_CLASSW, + REBARCLASSNAMEW, + STATUSCLASSNAMEW, + WC_TABCONTROLW, + TOOLBARCLASSNAMEW, + TOOLTIPS_CLASSW, + TRACKBAR_CLASSW, + WC_TREEVIEWW, + UPDOWN_CLASSW, }; unsigned int i; + WNDCLASSW wc; BOOL ret; winetest_push_context("v%d", v6 ? 6 : 5); - for (i = 0; i < ARRAY_SIZE(class_names); i++) + if (v6) { - ret = pRegisterClassNameW(class_names[i]); - if (v6) - ok(ret, "RegisterClassNameW %s failed, error %lu.\n", wine_dbgstr_w(class_names[i]), GetLastError()); - else - ok(!ret, "RegisterClassNameW %s succeeded.\n", wine_dbgstr_w(class_names[i])); + for (i = 0; i < ARRAY_SIZE(v6_class_names); i++) + { + ret = pRegisterClassNameW(v6_class_names[i]); + todo_wine_if(i > 5) + ok(ret, "RegisterClassNameW %s failed, error %lu.\n", wine_dbgstr_w(v6_class_names[i]), GetLastError()); + } } + else + { + for (i = 0; i < ARRAY_SIZE(v5_class_names); i++) + { + ret = pRegisterClassNameW(v5_class_names[i]); + todo_wine + ok(ret, "RegisterClassNameW %s failed, error %lu.\n", wine_dbgstr_w(v5_class_names[i]), GetLastError()); + } + } + + /* Test unregistering a class that's implicitly registered by RegisterClassNameW() */ + ret = UnregisterClassW(ANIMATE_CLASSW, NULL); + ok(ret, "UnregisterClassW failed, error %lu.\n", GetLastError()); + + /* Make sure that it's really unregistered */ + ret = UnregisterClassW(ANIMATE_CLASSW, NULL); + ok(!ret, "UnregisterClassW succeeded.\n"); + + /* GetClassInfoW() should succeed */ + ret = GetClassInfoW(0, ANIMATE_CLASSW, &wc); + todo_wine + ok(ret, "GetClassInfoW failed, error %lu.\n", GetLastError()); + + /* Test registering an already registered window class */ + ret = pRegisterClassNameW(ANIMATE_CLASSW); + todo_wine + ok(ret, "RegisterClassNameW failed, error %lu.\n", GetLastError()); + + /* Test registering an non-existent window class */ + ret = pRegisterClassNameW(L"non-existent"); + ok(!ret, "RegisterClassNameW succeeded.\n"); winetest_pop_context(); } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9822