From be8534d3879de918f7297335ea66f5719dac00f1 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Fri, 2 Feb 2018 14:31:40 +0300 Subject: [PATCH] user32/tests: Add some tests for GetClassName() and versioned classes. Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- dlls/user32/tests/class.c | 40 ++++++++++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/dlls/user32/tests/class.c b/dlls/user32/tests/class.c index 88e4bfcfa4e..13d7b9d4776 100644 --- a/dlls/user32/tests/class.c +++ b/dlls/user32/tests/class.c @@ -1211,12 +1211,15 @@ static void test_actctx_classes(void) "MyTestClass" "" ""; + static const char *testclass = "MyTestClass"; WNDCLASSA wc; ULONG_PTR cookie; HANDLE context; BOOL ret; ATOM class; HINSTANCE hinst; + char buff[64]; + HWND hwnd; create_manifest_file("main.manifest", main_manifest); context = create_test_actctx("main.manifest"); @@ -1228,29 +1231,56 @@ static void test_actctx_classes(void) memset(&wc, 0, sizeof(wc)); wc.lpfnWndProc = ClassTest_WndProc; wc.hIcon = LoadIconW(0, (LPCWSTR)IDI_APPLICATION); - wc.lpszClassName = "MyTestClass"; + wc.lpszClassName = testclass; hinst = GetModuleHandleW(0); - ret = GetClassInfoA(hinst, "MyTestClass", &wc); + ret = GetClassInfoA(hinst, testclass, &wc); ok(!ret, "Expected failure.\n"); class = RegisterClassA(&wc); ok(class != 0, "Failed to register class.\n"); /* Class info is available by versioned and regular names. */ - ret = GetClassInfoA(hinst, "MyTestClass", &wc); + ret = GetClassInfoA(hinst, testclass, &wc); ok(ret, "Failed to get class info.\n"); + hwnd = CreateWindowExA(0, testclass, "test", 0, 0, 0, 0, 0, 0, 0, hinst, 0); + ok(hwnd != NULL, "Failed to create a window.\n"); + + ret = GetClassNameA(hwnd, buff, sizeof(buff)); + ok(ret, "Failed to get class name.\n"); +todo_wine + ok(!strcmp(buff, testclass), "Unexpected class name.\n"); + ret = GetClassInfoA(hinst, "4.3.2.1!MyTestClass", &wc); ok(ret, "Failed to get class info.\n"); - ret = UnregisterClassA("MyTestClass", hinst); - ok(ret, "Failed to unregister class.\n"); + ret = UnregisterClassA(testclass, hinst); + ok(!ret, "Failed to unregister class.\n"); ret = DeactivateActCtx(0, cookie); ok(ret, "Failed to deactivate context.\n"); + ret = GetClassInfoA(hinst, testclass, &wc); + ok(!ret, "Unexpected ret val %d.\n", ret); + + ret = GetClassInfoA(hinst, "4.3.2.1!MyTestClass", &wc); + ok(ret, "Failed to get class info.\n"); + + ret = GetClassNameA(hwnd, buff, sizeof(buff)); + ok(ret, "Failed to get class name.\n"); +todo_wine + ok(!strcmp(buff, testclass), "Unexpected class name.\n"); + + DestroyWindow(hwnd); + + ret = UnregisterClassA("MyTestClass", hinst); + ok(!ret, "Unexpected ret value %d.\n", ret); + + ret = UnregisterClassA("4.3.2.1!MyTestClass", hinst); + ok(ret, "Failed to unregister class.\n"); + /* Register versioned class without active context. */ wc.lpszClassName = "4.3.2.1!MyTestClass"; class = RegisterClassA(&wc);