From: Fabian Maurer Subject: [PATCH 12/18] comctl32: TaskDialog - Simplified test structure Message-Id: <20170225160146.32556-12-dark.shadow4@web.de> Date: Sat, 25 Feb 2017 17:01:40 +0100 In-Reply-To: <20170225160146.32556-1-dark.shadow4@web.de> References: <20170225160146.32556-1-dark.shadow4@web.de> Signed-off-by: Fabian Maurer --- 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