From 0cfb73fce3300299ad6e6a85825baea8a8760945 Mon Sep 17 00:00:00 2001 From: Giannis Adamopoulos Date: Mon, 5 Jun 2017 14:25:37 +0000 Subject: [PATCH] [COMCTL32_APITEST] -Add tests for CCM_GETVERSION and CCM_SETVERSION for the v5 and v6 toolbar control. svn path=/trunk/; revision=74923 --- rostests/apitests/comctl32/CMakeLists.txt | 3 +- .../apitests/comctl32/comctl32v5.manifest | 15 +++ rostests/apitests/comctl32/testlist.c | 2 + rostests/apitests/comctl32/toolbar.c | 123 ++++++++++++++++++ 4 files changed, 142 insertions(+), 1 deletion(-) create mode 100644 rostests/apitests/comctl32/comctl32v5.manifest create mode 100644 rostests/apitests/comctl32/toolbar.c diff --git a/rostests/apitests/comctl32/CMakeLists.txt b/rostests/apitests/comctl32/CMakeLists.txt index b1feac33a4e..88f45e91527 100644 --- a/rostests/apitests/comctl32/CMakeLists.txt +++ b/rostests/apitests/comctl32/CMakeLists.txt @@ -1,6 +1,7 @@ -add_executable(comctl32_apitest button.c testlist.c ../include/msgtrace.c comctl32_apitest.rc) +add_executable(comctl32_apitest button.c toolbar.c testlist.c ../include/msgtrace.c comctl32_apitest.rc) target_link_libraries(comctl32_apitest wine) set_module_type(comctl32_apitest win32cui) add_importlibs(comctl32_apitest uxtheme comctl32 user32 gdi32 msvcrt kernel32 ntdll) add_rostests_file(TARGET comctl32_apitest) +add_rostests_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/comctl32v5.manifest") diff --git a/rostests/apitests/comctl32/comctl32v5.manifest b/rostests/apitests/comctl32/comctl32v5.manifest new file mode 100644 index 00000000000..0da554f8758 --- /dev/null +++ b/rostests/apitests/comctl32/comctl32v5.manifest @@ -0,0 +1,15 @@ + + + + + + + + \ No newline at end of file diff --git a/rostests/apitests/comctl32/testlist.c b/rostests/apitests/comctl32/testlist.c index 0ccf4877e33..a1d535d1de6 100644 --- a/rostests/apitests/comctl32/testlist.c +++ b/rostests/apitests/comctl32/testlist.c @@ -2,9 +2,11 @@ #include extern void func_button(void); +extern void func_toolbar(void); const struct test winetest_testlist[] = { { "buttonv6", func_button }, + { "toolbarv6", func_toolbar }, { 0, 0 } }; diff --git a/rostests/apitests/comctl32/toolbar.c b/rostests/apitests/comctl32/toolbar.c new file mode 100644 index 00000000000..aada2cfd25b --- /dev/null +++ b/rostests/apitests/comctl32/toolbar.c @@ -0,0 +1,123 @@ +/* + * PROJECT: ReactOS api tests + * LICENSE: GPL - See COPYING in the top level directory + * PURPOSE: Test for toolbar window class v6 + * PROGRAMMERS: Giannis Adamopoulos + */ + +#include "wine/test.h" +#include +#include +#include +#include +#include +#include +#include + +HANDLE _CreateV5ActCtx() +{ + ACTCTXW ActCtx = {sizeof(ACTCTX)}; + WCHAR buffer[MAX_PATH] , *separator; + + ok (GetModuleFileNameW(NULL, buffer, MAX_PATH), "GetModuleFileName failed\n"); + separator = wcsrchr(buffer, L'\\'); + if (separator) + wcscpy(separator + 1, L"comctl32v5.manifest"); + + ActCtx.lpSource = buffer; + + return CreateActCtxW(&ActCtx);; +} + + +void TestVersionMessage() +{ + HWND hwnd; + int version; + + hwnd = CreateWindowExW(0, TOOLBARCLASSNAMEW, L"Test", 0, 0, 0, 0, 0, 0, 0, 0, NULL); + ok(hwnd != NULL, "CreateWindowEx failed\n"); + + version = SendMessageW(hwnd, CCM_GETVERSION, 0, 0); + ok(version == 6, "Got %d, expected 6\n", version); + + version = SendMessageW(hwnd, CCM_SETVERSION, 5, 0); + ok(version == 6, "Got %d, expected 6\n", version); + + version = SendMessageW(hwnd, CCM_GETVERSION, 0, 0); + ok(version == 6, "Got %d, expected 6\n", version); + + version = SendMessageW(hwnd, CCM_SETVERSION, 7, 0); + ok(version == 6, "Got %d, expected 6\n", version); + + version = SendMessageW(hwnd, CCM_GETVERSION, 0, 0); + ok(version == 6, "Got %d, expected 6\n", version); + + version = SendMessageW(hwnd, CCM_SETVERSION, 4, 0); + ok(version == 6, "Got %d, expected 6\n", version); + + version = SendMessageW(hwnd, CCM_GETVERSION, 0, 0); + ok(version == 6, "Got %d, expected 6\n", version); + + DestroyWindow(hwnd); +} + +void TestV5VersionMessage() +{ + HWND hwnd; + int version; + + hwnd = CreateWindowExW(0, TOOLBARCLASSNAMEW, L"Test", 0, 0, 0, 0, 0, 0, 0, 0, NULL); + ok(hwnd != NULL, "CreateWindowEx failed\n"); + + version = SendMessageW(hwnd, CCM_GETVERSION, 0, 0); + ok(version == 0, "Got %d, expected 0\n", version); + + version = SendMessageW(hwnd, CCM_SETVERSION, 6, 0); + ok(version == -1, "Got %d, expected -1\n", version); + + version = SendMessageW(hwnd, CCM_SETVERSION, 7, 0); + ok(version == -1, "Got %d, expected -1\n", version); + + version = SendMessageW(hwnd, CCM_SETVERSION, 5, 0); + ok(version == 0, "Got %d, expected -1\n", version); + + version = SendMessageW(hwnd, CCM_GETVERSION, 0, 0); + ok(version == 5, "Got %d, expected 5\n", version); + + version = SendMessageW(hwnd, CCM_SETVERSION, 4, 0); + ok(version == 5, "Got %d, expected -1\n", version); + + version = SendMessageW(hwnd, CCM_GETVERSION, 0, 0); + ok(version == 4, "Got %d, expected 5\n", version); + + version = SendMessageW(hwnd, CCM_SETVERSION, 3, 0); + ok(version == 4, "Got %d, expected -1\n", version); + + version = SendMessageW(hwnd, CCM_GETVERSION, 0, 0); + ok(version == 3, "Got %d, expected 5\n", version); + + DestroyWindow(hwnd); +} + +START_TEST(toolbar) +{ + HANDLE hV5ActCtx; + + LoadLibraryW(L"comctl32.dll"); + + TestVersionMessage(); + + hV5ActCtx = _CreateV5ActCtx(); + ok (hV5ActCtx != INVALID_HANDLE_VALUE, ""); + if (hV5ActCtx) + { + ULONG_PTR cookie; + BOOL bActivated = ActivateActCtx(hV5ActCtx, &cookie); + if (bActivated) + { + TestV5VersionMessage(); + DeactivateActCtx(0, cookie); + } + } +} \ No newline at end of file -- 2.17.1