wininet: Add more tests to InternetGetConnectedStateEx

Bruno Jesus 00cpxxx at gmail.com
Fri Oct 24 16:36:47 CDT 2014


These are the last tests before the next attempt to fix bug
http://bugs.winehq.org/show_bug.cgi?id=17796

They intend to test what happens when less buffer than required is
sent to the function and that the function clears the buffer if
size==1
-------------- next part --------------
diff --git a/dlls/wininet/tests/internet.c b/dlls/wininet/tests/internet.c
index 688f786..fc965e2 100644
--- a/dlls/wininet/tests/internet.c
+++ b/dlls/wininet/tests/internet.c
@@ -1556,6 +1556,12 @@ todo_wine
     sz = strlen(buffer);
     ok(sz > 0, "Expected a connection name\n");
 
+    flags = 0;
+    res = pInternetGetConnectedStateExA(&flags, NULL, sizeof(buffer), 0);
+todo_wine
+    ok(res == TRUE, "Expected TRUE, got %d\n", res);
+    ok(flags, "Expected at least one flag set\n");
+
     /* no space for complete string this time */
     buffer[0] = 0;
     flags = 0;
@@ -1566,11 +1572,34 @@ todo_wine
 
     buffer[0] = 0;
     flags = 0;
+    res = pInternetGetConnectedStateExA(&flags, buffer, sz / 2, 0);
+    ok(res == TRUE, "Expected TRUE, got %d\n", res);
+    ok(flags, "Expected at least one flag set\n");
+    ok(sz / 2 - 1 == strlen(buffer), "Expected %u bytes, got %u\n", sz / 2 - 1, lstrlenA(buffer));
+
+    buffer[0] = 0;
+    flags = 0;
     res = pInternetGetConnectedStateExA(&flags, buffer, 1, 0);
 todo_wine
     ok(res == TRUE, "Expected TRUE, got %d\n", res);
     ok(flags, "Expected at least one flag set\n");
     ok(strlen(buffer) == 0, "Expected 0 bytes, got %u\n", lstrlenA(buffer));
+
+    buffer[0] = 0;
+    flags = 0;
+    res = pInternetGetConnectedStateExA(&flags, buffer, 2, 0);
+    ok(res == TRUE, "Expected TRUE, got %d\n", res);
+    ok(flags, "Expected at least one flag set\n");
+    ok(strlen(buffer) == 1, "Expected 1 byte, got %u\n", lstrlenA(buffer));
+
+    flags = 0;
+    buffer[0] = 0xDE;
+    res = pInternetGetConnectedStateExA(&flags, buffer, 1, 0);
+todo_wine
+    ok(res == TRUE, "Expected TRUE, got %d\n", res);
+    ok(flags, "Expected at least one flag set\n");
+todo_wine
+    ok(strlen(buffer) == 0, "Expected 0 bytes, got %u\n", lstrlenA(buffer));
 }
 
 static void test_InternetGetConnectedStateExW(void)
@@ -1623,6 +1652,12 @@ todo_wine
     sz = lstrlenW(buffer);
     ok(sz > 0, "Expected a connection name\n");
 
+    flags = 0;
+    res = pInternetGetConnectedStateExW(&flags, NULL, sizeof(buffer) / sizeof(buffer[0]), 0);
+todo_wine
+    ok(res == TRUE, "Expected TRUE, got %d\n", res);
+    ok(flags, "Expected at least one flag set\n");
+
     /* no space for complete string this time */
     buffer[0] = 0;
     flags = 0;
@@ -1633,11 +1668,34 @@ todo_wine
 
     buffer[0] = 0;
     flags = 0;
+    res = pInternetGetConnectedStateExW(&flags, buffer, sz / 2, 0);
+    ok(res == TRUE, "Expected TRUE, got %d\n", res);
+    ok(flags, "Expected at least one flag set\n");
+    ok(sz / 2 - 1 == lstrlenW(buffer), "Expected %u bytes, got %u\n", sz / 2 - 1, lstrlenW(buffer));
+
+    buffer[0] = 0;
+    flags = 0;
     res = pInternetGetConnectedStateExW(&flags, buffer, 1, 0);
 todo_wine
     ok(res == TRUE, "Expected TRUE, got %d\n", res);
     ok(flags, "Expected at least one flag set\n");
     ok(lstrlenW(buffer) == 0, "Expected 0 bytes, got %u\n", lstrlenW(buffer));
+
+    buffer[0] = 0;
+    flags = 0;
+    res = pInternetGetConnectedStateExW(&flags, buffer, 2, 0);
+    ok(res == TRUE, "Expected TRUE, got %d\n", res);
+    ok(flags, "Expected at least one flag set\n");
+    ok(lstrlenW(buffer) == 1, "Expected 1 byte, got %u\n", lstrlenW(buffer));
+
+    buffer[0] = 0xDEAD;
+    flags = 0;
+    res = pInternetGetConnectedStateExW(&flags, buffer, 1, 0);
+todo_wine
+    ok(res == TRUE, "Expected TRUE, got %d\n", res);
+    ok(flags, "Expected at least one flag set\n");
+todo_wine
+    ok(lstrlenW(buffer) == 0, "Expected 0 bytes, got %u\n", lstrlenW(buffer));
 }
 
 /* ############################### */


More information about the wine-patches mailing list