Huw Davies : ole32/tests: Add more drag and drop tests.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Feb 23 11:24:21 CST 2016


Module: wine
Branch: master
Commit: d468ed1e999674d0711f0dbb090c4e18206d87d6
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=d468ed1e999674d0711f0dbb090c4e18206d87d6

Author: Huw Davies <huw at codeweavers.com>
Date:   Tue Feb 23 10:09:34 2016 +0000

ole32/tests: Add more drag and drop tests.

Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ole32/tests/dragdrop.c | 118 +++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 117 insertions(+), 1 deletion(-)

diff --git a/dlls/ole32/tests/dragdrop.c b/dlls/ole32/tests/dragdrop.c
index 027e0da..09112b8 100644
--- a/dlls/ole32/tests/dragdrop.c
+++ b/dlls/ole32/tests/dragdrop.c
@@ -140,7 +140,123 @@ struct method_call call_lists[][30] =
         { DoDragDrop_ret, DRAGDROP_S_DROP, 0, 0, 0 },
         { DoDragDrop_effect_out, 0, 0, 0, 0 },
         { end_seq, 0, 0, 0, 0 }
-    }
+    },
+    { /* Multiple initial effects */
+        { DoDragDrop_effect_in, 0, 0, DROPEFFECT_COPY | DROPEFFECT_MOVE, 0 },
+        { DO_EnumFormatEtc, 0, S_OK, 0, 1 },
+        { EnumFMT_Next, 0, S_OK, 0, 1 },
+        { EnumFMT_Next, 0, S_FALSE, 0, 1 },
+        { EnumFMT_Reset, 0, S_OK, 0, 1 },
+        { EnumFMT_Next, 0, S_OK, 0, 1 },
+        { EnumFMT_Next, 0, S_FALSE, 0, 1 },
+        { DO_QueryGetData, 0, S_OK, 0, 1 },
+
+        { DS_QueryContinueDrag, 0, DRAGDROP_S_DROP, 0, 0 },
+        { DT_DragEnter, DROPEFFECT_COPY | DROPEFFECT_MOVE, S_OK, DROPEFFECT_COPY, 0 },
+        { DS_GiveFeedback, DROPEFFECT_COPY, DRAGDROP_S_USEDEFAULTCURSORS, 0, 0 },
+        { DT_Drop, DROPEFFECT_COPY | DROPEFFECT_MOVE, 0, 0, 0 },
+
+        { DoDragDrop_ret, DRAGDROP_S_DROP, 0, 0, 0 },
+        { DoDragDrop_effect_out, 0, 0, 0, 0 },
+        { end_seq, 0, 0, 0, 0 }
+    },
+    { /* First couple of QueryContinueDrag return S_OK followed by a drop */
+        { DoDragDrop_effect_in, 0, 0, DROPEFFECT_COPY | DROPEFFECT_MOVE, 0 },
+        { DO_EnumFormatEtc, 0, S_OK, 0, 1 },
+        { EnumFMT_Next, 0, S_OK, 0, 1 },
+        { EnumFMT_Next, 0, S_FALSE, 0, 1 },
+        { EnumFMT_Reset, 0, S_OK, 0, 1 },
+        { EnumFMT_Next, 0, S_OK, 0, 1 },
+        { EnumFMT_Next, 0, S_FALSE, 0, 1 },
+        { DO_QueryGetData, 0, S_OK, 0, 1 },
+
+        { DS_QueryContinueDrag, 0, S_OK, 0, 0 },
+        { DT_DragEnter, DROPEFFECT_COPY | DROPEFFECT_MOVE, S_OK, DROPEFFECT_COPY, 0 },
+        { DS_GiveFeedback, DROPEFFECT_COPY, DRAGDROP_S_USEDEFAULTCURSORS, 0, 0 },
+        { DT_DragOver, DROPEFFECT_COPY | DROPEFFECT_MOVE, S_OK, DROPEFFECT_COPY, 0 },
+        { DS_GiveFeedback, DROPEFFECT_COPY, DRAGDROP_S_USEDEFAULTCURSORS, 0, 0 },
+
+        { DS_QueryContinueDrag, 0, S_OK, 0, 0 },
+        { DT_DragOver, DROPEFFECT_COPY | DROPEFFECT_MOVE, S_OK, DROPEFFECT_COPY, 0 },
+        { DS_GiveFeedback, DROPEFFECT_COPY, DRAGDROP_S_USEDEFAULTCURSORS, 0, 0 },
+
+        { DS_QueryContinueDrag, 0, DRAGDROP_S_DROP, 0, 0 },
+        { DT_Drop, DROPEFFECT_COPY | DROPEFFECT_MOVE, 0, 0, 0 },
+
+        { DoDragDrop_ret, DRAGDROP_S_DROP, 0, 0, 0 },
+        { DoDragDrop_effect_out, 0, 0, 0, 0 },
+        { end_seq, 0, 0, 0, 0 }
+    },
+    { /* First QueryContinueDrag cancels */
+        { DoDragDrop_effect_in, 0, 0, DROPEFFECT_COPY | DROPEFFECT_MOVE, 0 },
+        { DO_EnumFormatEtc, 0, S_OK, 0, 1 },
+        { EnumFMT_Next, 0, S_OK, 0, 1 },
+        { EnumFMT_Next, 0, S_FALSE, 0, 1 },
+        { EnumFMT_Reset, 0, S_OK, 0, 1 },
+        { EnumFMT_Next, 0, S_OK, 0, 1 },
+        { EnumFMT_Next, 0, S_FALSE, 0, 1 },
+        { DO_QueryGetData, 0, S_OK, 0, 1 },
+
+        { DS_QueryContinueDrag, 0, DRAGDROP_S_CANCEL, 0, 0 },
+
+        { DoDragDrop_ret, DRAGDROP_S_CANCEL, 0, 0, 0 },
+        { DoDragDrop_effect_out, 0, 0, 0, 0 },
+        { end_seq, 0, 0, 0, 0 }
+    },
+    { /* First couple of QueryContinueDrag return S_OK followed by a cancel */
+        { DoDragDrop_effect_in, 0, 0, DROPEFFECT_COPY | DROPEFFECT_MOVE, 0 },
+        { DO_EnumFormatEtc, 0, S_OK, 0, 1 },
+        { EnumFMT_Next, 0, S_OK, 0, 1 },
+        { EnumFMT_Next, 0, S_FALSE, 0, 1 },
+        { EnumFMT_Reset, 0, S_OK, 0, 1 },
+        { EnumFMT_Next, 0, S_OK, 0, 1 },
+        { EnumFMT_Next, 0, S_FALSE, 0, 1 },
+        { DO_QueryGetData, 0, S_OK, 0, 1 },
+
+        { DS_QueryContinueDrag, 0, S_OK, 0, 0 },
+        { DT_DragEnter, DROPEFFECT_COPY | DROPEFFECT_MOVE, S_OK, DROPEFFECT_COPY, 0 },
+        { DS_GiveFeedback, DROPEFFECT_COPY, DRAGDROP_S_USEDEFAULTCURSORS, 0, 0 },
+        { DT_DragOver, DROPEFFECT_COPY | DROPEFFECT_MOVE, S_OK, DROPEFFECT_COPY, 0 },
+        { DS_GiveFeedback, DROPEFFECT_COPY, DRAGDROP_S_USEDEFAULTCURSORS, 0, 0 },
+
+        { DS_QueryContinueDrag, 0, S_OK, 0, 0 },
+        { DT_DragOver, DROPEFFECT_COPY | DROPEFFECT_MOVE, S_OK, DROPEFFECT_COPY, 0 },
+        { DS_GiveFeedback, DROPEFFECT_COPY, DRAGDROP_S_USEDEFAULTCURSORS, 0, 0 },
+
+        { DS_QueryContinueDrag, 0, DRAGDROP_S_CANCEL, 0, 0 },
+        { DT_DragLeave, 0, 0, 0, 0 },
+
+        { DoDragDrop_ret, DRAGDROP_S_CANCEL, 0, 0, 0 },
+        { DoDragDrop_effect_out, 0, 0, 0, 0 },
+        { end_seq, 0, 0, 0, 0 }
+    },
+    { /* First couple of QueryContinueDrag return S_OK followed by a E_FAIL */
+        { DoDragDrop_effect_in, 0, 0, DROPEFFECT_COPY | DROPEFFECT_MOVE, 0 },
+        { DO_EnumFormatEtc, 0, S_OK, 0, 1 },
+        { EnumFMT_Next, 0, S_OK, 0, 1 },
+        { EnumFMT_Next, 0, S_FALSE, 0, 1 },
+        { EnumFMT_Reset, 0, S_OK, 0, 1 },
+        { EnumFMT_Next, 0, S_OK, 0, 1 },
+        { EnumFMT_Next, 0, S_FALSE, 0, 1 },
+        { DO_QueryGetData, 0, S_OK, 0, 1 },
+
+        { DS_QueryContinueDrag, 0, S_OK, 0, 0 },
+        { DT_DragEnter, DROPEFFECT_COPY | DROPEFFECT_MOVE, S_OK, DROPEFFECT_COPY, 0 },
+        { DS_GiveFeedback, DROPEFFECT_COPY, DRAGDROP_S_USEDEFAULTCURSORS, 0, 0 },
+        { DT_DragOver, DROPEFFECT_COPY | DROPEFFECT_MOVE, S_OK, DROPEFFECT_COPY, 0 },
+        { DS_GiveFeedback, DROPEFFECT_COPY, DRAGDROP_S_USEDEFAULTCURSORS, 0, 0 },
+
+        { DS_QueryContinueDrag, 0, S_OK, 0, 0 },
+        { DT_DragOver, DROPEFFECT_COPY | DROPEFFECT_MOVE, S_OK, DROPEFFECT_COPY, 0 },
+        { DS_GiveFeedback, DROPEFFECT_COPY, DRAGDROP_S_USEDEFAULTCURSORS, 0, 0 },
+
+        { DS_QueryContinueDrag, 0, E_FAIL, 0, 0 },
+        { DT_DragLeave, 0, 0, 0, 0 },
+
+        { DoDragDrop_ret, E_FAIL, 0, 0, 0 },
+        { DoDragDrop_effect_out, 0, 0, 0, 0 },
+        { end_seq, 0, 0, 0, 0 }
+    },
 };
 
 static int droptarget_refs;




More information about the wine-cvs mailing list