[PATCH 12/18] comctl32: TaskDialog - Simplified test structure

Fabian Maurer dark.shadow4 at web.de
Sat Feb 25 10:01:40 CST 2017


Signed-off-by: Fabian Maurer <dark.shadow4 at web.de>
---
 dlls/comctl32/tests/taskdialog.c | 43 ++++++++++++++++++++++++++++------------
 1 file changed, 30 insertions(+), 13 deletions(-)

diff --git a/dlls/comctl32/tests/taskdialog.c b/dlls/comctl32/tests/taskdialog.c
index b8feeffc69..6d0477a5e8 100644
--- a/dlls/comctl32/tests/taskdialog.c
+++ b/dlls/comctl32/tests/taskdialog.c
@@ -222,11 +222,38 @@ static HRESULT CALLBACK TaskDialogCallbackProc(HWND hwnd, UINT uNotification, WP
     return S_OK; /* Fallback in case we got a message mismatch */
 }
 
+#define run_test( info, expect_button, expect_radio, expect_checkbox, expect_messages, send_messages ) \
+        run_test_( (info), (expect_button), (expect_radio), (expect_checkbox), \
+                   (expect_messages), (send_messages), __FILE__, __LINE__)
+
+/* Helper function to run a test and check the return values */
+static void run_test_(TASKDIALOGCONFIG *info, int expect_button, int expect_radio, BOOL expect_checkbox,
+                     const message_data *expect_messages, const message_send_data *send_messages,
+                     const char *file, int line)
+{
+    HRESULT ret;
+    int ret_button = 0;
+    int ret_radio = 0;
+    BOOL ret_checkbox = 0;
+
+    message_list = expect_messages;
+    message_send_list = send_messages;
+
+    ret = pTaskDialogIndirect(info, &ret_button, &ret_radio, &ret_checkbox);
+    ok_( file, line)(ret == S_OK, "Expected S_OK, got %x\n", ret);
+    ok_sequence_(message_list, file, line);
+    ok_( file, line)(ret_button == expect_button,
+                     "Wrong button. Expected %d, got %d\n", expect_button, ret_button);
+    ok_( file, line)(ret_radio == expect_radio,
+                     "Wrong radio button. Expected %d, got %d\n", expect_radio, ret_radio);
+    ok_( file, line)(ret_checkbox == expect_checkbox,
+                     "Wrong checkbox state. Expected %d, got %d\n", expect_checkbox, ret_checkbox);
+}
+
 static void test_TaskDialogIndirect(void)
 {
     TASKDIALOGCONFIG info = {0};
     HRESULT ret;
-    INT ret_button = 0;
 
     ret = pTaskDialogIndirect(NULL, NULL, NULL, NULL);
     ok(ret == E_INVALIDARG, "Expected E_INVALIDARG, got %x\n", ret);
@@ -238,18 +265,8 @@ static void test_TaskDialogIndirect(void)
     info.pfCallback = TaskDialogCallbackProc;
     info.lpCallbackData = backup_ref_data = 0x12345678; /* Set data for callback tests */
 
-    message_list = mes_simple_show;
-    message_send_list = mes_send_return;
-    ret = pTaskDialogIndirect(&info, NULL, NULL, NULL);
-    ok(ret == S_OK, "Expected S_OK, got %x\n", ret);
-    ok_sequence(message_list);
-
-    message_list = mes_cancel_button_press;
-    message_send_list = mes_send_3_click_button_ok;
-    ret = pTaskDialogIndirect(&info, &ret_button, NULL, NULL);
-    ok(ret == S_OK, "Expected S_OK, got %x\n", ret);
-    ok(ret_button == IDOK, "Expected IDOK, got %d\n", ret_button);
-    ok_sequence(message_list);
+    run_test(&info, IDOK, 0, 0, mes_simple_show, mes_send_return);
+    run_test(&info, IDOK, 0, 0, mes_cancel_button_press, mes_send_3_click_button_ok);
 }
 
 START_TEST(taskdialog)
-- 
2.12.0




More information about the wine-patches mailing list