Jeff Latimer : user32/tests: Add tests for DdeGetData Ascii interface.
Alexandre Julliard
julliard at winehq.org
Wed Jan 14 09:03:47 CST 2009
Module: wine
Branch: master
Commit: 1f5b2f7e0c3b699205e6758486647280be12f65c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=1f5b2f7e0c3b699205e6758486647280be12f65c
Author: Jeff Latimer <lats at yless4u.com.au>
Date: Wed Jan 14 18:29:28 2009 +1100
user32/tests: Add tests for DdeGetData Ascii interface.
---
dlls/user32/tests/dde.c | 70 +++++++++++++++++++++++++++++++++++------------
1 files changed, 52 insertions(+), 18 deletions(-)
diff --git a/dlls/user32/tests/dde.c b/dlls/user32/tests/dde.c
index e1ccf66..53b216f 100644
--- a/dlls/user32/tests/dde.c
+++ b/dlls/user32/tests/dde.c
@@ -559,7 +559,7 @@ static HDDEDATA CALLBACK server_ddeml_callback(UINT uType, UINT uFmt, HCONV hcon
ULONG_PTR dwData1, ULONG_PTR dwData2)
{
char str[MAX_PATH], *ptr;
- HDDEDATA ret;
+ HDDEDATA ret = NULL;
DWORD size;
static int msg_index = 0;
@@ -711,7 +711,7 @@ static HDDEDATA CALLBACK server_ddeml_callback(UINT uType, UINT uFmt, HCONV hcon
case XTYP_EXECUTE:
{
- ok(msg_index == 9 || msg_index == 10, "Expected 9 or 10, got %d\n", msg_index);
+ ok(msg_index >= 9 && msg_index <= 11, "Expected 9 or 11, got %d\n", msg_index);
ok(uFmt == 0, "Expected 0, got %d\n", uFmt);
ok(hconv == conversation, "Expected conversation handle, got %p\n", hconv);
ok(dwData1 == 0, "Expected 0, got %08lx\n", dwData1);
@@ -722,29 +722,50 @@ static HDDEDATA CALLBACK server_ddeml_callback(UINT uType, UINT uFmt, HCONV hcon
ok(!lstrcmpA(str, "TestDDETopic"), "Expected TestDDETopic, got %s\n", str);
ok(size == 12, "Expected 12, got %d\n", size);
- ptr = (LPSTR)DdeAccessData(hdata, &size);
-
- if (msg_index == 9)
+ if (msg_index == 9 || msg_index == 11)
{
- ok(!lstrcmpA(ptr, "[Command(Var)]"), "Expected '[Command(Var)]', got %s\n", ptr);
- ok(size == 15, "Expected 15, got %d\n", size);
- ret = (HDDEDATA)DDE_FACK;
+ ptr = (LPSTR)DdeAccessData(hdata, &size);
+
+ if (msg_index == 9)
+ {
+ ok(!lstrcmpA(ptr, "[Command(Var)]"), "Expected '[Command(Var)]', got %s\n", ptr);
+ ok(size == 15, "Expected 15, got %d\n", size);
+ ret = (HDDEDATA)DDE_FACK;
+ }
+ else
+ {
+ ok(!lstrcmpA(ptr, "[BadCommand(Var)]"), "Expected '[BadCommand(Var)]', got %s\n", ptr);
+ ok(size == 18, "Expected 18, got %d\n", size);
+ ret = (HDDEDATA)DDE_FNOTPROCESSED;
+ }
+
+ DdeUnaccessData(hdata);
}
- else
+ else if (msg_index == 10)
{
- ok(!lstrcmpA(ptr, "[BadCommand(Var)]"), "Expected '[BadCommand(Var)]', got %s\n", ptr);
- ok(size == 18, "Expected 18, got %d\n", size);
- ret = (HDDEDATA)DDE_FNOTPROCESSED;
- }
+ DWORD rsize = 0;
+ size = 0;
+
+ size = DdeGetData(hdata, NULL, 0, 0);
+ ok(size == 17, "DdeGetData should have returned 17 not %d\n", size);
+ ptr = HeapAlloc(GetProcessHeap(), 0, size);
+ ok(ptr != NULL,"HeapAlloc should have returned ptr not NULL\n");
+ rsize = DdeGetData(hdata, (LPBYTE)ptr, size, 0);
+ ok(rsize == size, "DdeGetData did not return %d bytes but %d\n", size, rsize);
+
+ ok(!lstrcmpA(ptr, "[Command-2(Var)]"), "Expected '[Command-2(Var)]' got %s\n", ptr);
+ ok(size == 17, "Expected 17, got %d\n", size);
+ ret = (HDDEDATA)DDE_FACK;
- DdeUnaccessData(hdata);
+ HeapFree(GetProcessHeap(), 0, ptr);
+ }
return ret;
}
case XTYP_DISCONNECT:
{
- ok(msg_index == 11, "Expected 11, got %d\n", msg_index);
+ ok(msg_index == 12, "Expected 12, got %d\n", msg_index);
ok(uFmt == 0, "Expected 0, got %d\n", uFmt);
ok(hconv == conversation, "Expected conversation handle, got %p\n", hconv);
ok(dwData1 == 0, "Expected 0, got %08lx\n", dwData1);
@@ -833,8 +854,8 @@ static LRESULT WINAPI dde_msg_client_wndproc(HWND hwnd, UINT msg, WPARAM wparam,
case WM_DDE_ACK:
{
- ok((msg_index >= 2 && msg_index <= 4) || (msg_index >= 6 && msg_index <= 10),
- "Expected 2, 3, 4, 6, 7, 8, 9 or 10, got %d\n", msg_index);
+ ok((msg_index >= 2 && msg_index <= 4) || (msg_index >= 6 && msg_index <= 11),
+ "Expected 2, 3, 4, 6, 7, 8, 9, 10 or 11, got %d\n", msg_index);
if (msg_index == 2)
{
@@ -851,7 +872,7 @@ static LRESULT WINAPI dde_msg_client_wndproc(HWND hwnd, UINT msg, WPARAM wparam,
ok(!lstrcmpA(str, "TestDDETopic"), "Expected TestDDETopic, got %s\n", str);
ok(size == 12, "Expected 12, got %d\n", size);
}
- else if (msg_index == 9 || msg_index == 10)
+ else if (msg_index >= 9 && msg_index <= 11)
{
ok(wparam == (WPARAM)server_hwnd, "Expected server hwnd, got %08lx\n", wparam);
@@ -869,6 +890,10 @@ static LRESULT WINAPI dde_msg_client_wndproc(HWND hwnd, UINT msg, WPARAM wparam,
{
ok(ack->fAck == TRUE, "Expected TRUE, got %d\n", ack->fAck);
ok(!lstrcmpA(ptr, "[Command(Var)]"), "Expected '[Command(Var)]', got %s\n", ptr);
+ } else if (msg_index == 10)
+ {
+ ok(ack->fAck == TRUE, "Expected TRUE, got %d\n", ack->fAck);
+ ok(!lstrcmpA(ptr, "[Command-2(Var)]"), "Expected '[Command-2(Var)]', got %s\n", ptr);
}
else
{
@@ -1107,6 +1132,15 @@ static void test_msg_client()
flush_events();
GlobalFree(execute_hglobal);
+ execute_hglobal = create_execute("[Command-2(Var)]");
+
+ /* WM_DDE_EXECUTE, all params correct */
+ lparam = PackDDElParam(WM_DDE_EXECUTE, 0, (UINT_PTR)execute_hglobal);
+ PostMessageA(server_hwnd, WM_DDE_EXECUTE, (WPARAM)client_hwnd, lparam);
+
+ flush_events();
+
+ GlobalFree(execute_hglobal);
execute_hglobal = create_execute("[BadCommand(Var)]");
/* WM_DDE_EXECUTE that will get rejected */
More information about the wine-cvs
mailing list