Akihiro Sagawa : shell32/tests: Add DragQueryPoint tests.
Alexandre Julliard
julliard at winehq.org
Tue Aug 13 14:54:34 CDT 2019
Module: wine
Branch: master
Commit: 865fe9cf971adf95b35c9712e7ff2cb3e09578f3
URL: https://source.winehq.org/git/wine.git/?a=commit;h=865fe9cf971adf95b35c9712e7ff2cb3e09578f3
Author: Akihiro Sagawa <sagawa.aki at gmail.com>
Date: Wed Aug 7 22:46:37 2019 +0900
shell32/tests: Add DragQueryPoint tests.
Signed-off-by: Akihiro Sagawa <sagawa.aki at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/shell32/tests/shellole.c | 26 ++++++++++++++++++++++++--
1 file changed, 24 insertions(+), 2 deletions(-)
diff --git a/dlls/shell32/tests/shellole.c b/dlls/shell32/tests/shellole.c
index 4b91302..a96e869 100644
--- a/dlls/shell32/tests/shellole.c
+++ b/dlls/shell32/tests/shellole.c
@@ -745,6 +745,7 @@ static void test_SHCreateQueryCancelAutoPlayMoniker(void)
IMoniker_Release(mon);
}
+#define WM_EXPECTED_VALUE WM_APP
#define DROPTEST_FILENAME "c:\\wintest.bin"
struct DragParam {
HWND hwnd;
@@ -753,11 +754,20 @@ struct DragParam {
static LRESULT WINAPI drop_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
+ static BOOL expected;
+
switch (msg) {
+ case WM_EXPECTED_VALUE:
+ {
+ expected = lparam;
+ break;
+ }
case WM_DROPFILES:
{
HDROP hDrop = (HDROP)wparam;
char filename[MAX_PATH] = "dummy";
+ POINT pt;
+ BOOL r;
UINT num;
num = DragQueryFileA(hDrop, 0xffffffff, NULL, 0);
ok(num == 1, "expected 1, got %u\n", num);
@@ -766,6 +776,10 @@ static LRESULT WINAPI drop_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARA
num = DragQueryFileA(hDrop, 0, filename, sizeof(filename));
ok(num == strlen(DROPTEST_FILENAME), "got %u\n", num);
ok(!strcmp(filename, DROPTEST_FILENAME), "got %s\n", filename);
+ r = DragQueryPoint(hDrop, &pt);
+ todo_wine ok(r == expected, "expected %d, got %d\n", expected, r);
+ ok(pt.x == 10, "expected 10, got %d\n", pt.x);
+ ok(pt.y == 20, "expected 20, got %d\n", pt.y);
DragFinish(hDrop);
return 0;
}
@@ -820,7 +834,7 @@ static DWORD WINAPI drop_window_therad(void *arg)
return 0;
}
-static void test_DragQueryFile(void)
+static void test_DragQueryFile(BOOL non_client_flag)
{
struct DragParam param;
HANDLE hThread;
@@ -839,6 +853,9 @@ static void test_DragQueryFile(void)
hDrop = GlobalAlloc(GHND, sizeof(DROPFILES) + (strlen(DROPTEST_FILENAME) + 2) * sizeof(WCHAR));
pDrop = GlobalLock(hDrop);
+ pDrop->pt.x = 10;
+ pDrop->pt.y = 20;
+ pDrop->fNC = non_client_flag;
pDrop->pFiles = sizeof(DROPFILES);
ret = MultiByteToWideChar(CP_ACP, 0, DROPTEST_FILENAME, -1,
(LPWSTR)(pDrop + 1), strlen(DROPTEST_FILENAME) + 1);
@@ -846,6 +863,9 @@ static void test_DragQueryFile(void)
pDrop->fWide = TRUE;
GlobalUnlock(hDrop);
+ r = PostMessageA(param.hwnd, WM_EXPECTED_VALUE, 0, !non_client_flag);
+ ok(r, "got %d\n", r);
+
r = PostMessageA(param.hwnd, WM_DROPFILES, (WPARAM)hDrop, 0);
ok(r, "got %d\n", r);
@@ -858,6 +878,7 @@ static void test_DragQueryFile(void)
CloseHandle(param.ready);
CloseHandle(hThread);
}
+#undef WM_EXPECTED_VALUE
#undef DROPTEST_FILENAME
static void test_SHCreateSessionKey(void)
@@ -936,7 +957,8 @@ START_TEST(shellole)
test_SHPropStg_functions();
test_SHCreateQueryCancelAutoPlayMoniker();
- test_DragQueryFile();
+ test_DragQueryFile(TRUE);
+ test_DragQueryFile(FALSE);
test_SHCreateSessionKey();
test_dragdrophelper();
More information about the wine-cvs
mailing list