Greg Geldorp : winhttp/tests: Fix tests when connecting via proxy.

Alexandre Julliard julliard at winehq.org
Mon Jan 17 10:59:50 CST 2011


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

Author: Greg Geldorp <ggeldorp at vmware.com>
Date:   Mon Jan 17 12:37:23 2011 +0100

winhttp/tests: Fix tests when connecting via proxy.

---

 dlls/winhttp/tests/winhttp.c |   62 +++++++++++++++++++++++++++++-------------
 1 files changed, 43 insertions(+), 19 deletions(-)

diff --git a/dlls/winhttp/tests/winhttp.c b/dlls/winhttp/tests/winhttp.c
index 3c725cf..37d71b8 100644
--- a/dlls/winhttp/tests/winhttp.c
+++ b/dlls/winhttp/tests/winhttp.c
@@ -34,6 +34,25 @@ static const WCHAR test_useragent[] =
 static const WCHAR test_server[] = {'w','i','n','e','h','q','.','o','r','g',0};
 static const WCHAR localhostW[] = {'l','o','c','a','l','h','o','s','t',0};
 
+static BOOL proxy_active(void)
+{
+    WINHTTP_PROXY_INFO proxy_info;
+    BOOL active = FALSE;
+
+    if (WinHttpGetDefaultProxyConfiguration(&proxy_info))
+    {
+        active = (proxy_info.lpszProxy != NULL);
+        if (active)
+            GlobalFree((HGLOBAL) proxy_info.lpszProxy);
+        if (proxy_info.lpszProxyBypass != NULL)
+            GlobalFree((HGLOBAL) proxy_info.lpszProxyBypass);
+    }
+    else
+       active = FALSE;
+
+    return active;
+}
+
 static void test_QueryOption(void)
 {
     BOOL ret;
@@ -796,7 +815,7 @@ static void test_secure_connection(void)
     ok(ret, "failed to send request %u\n", GetLastError());
 
     ret = WinHttpReceiveResponse(req, NULL);
-    ok(!ret, "succeeded unexpectedly\n");
+    ok(!ret || proxy_active(), "succeeded unexpectedly\n");
 
     size = 0;
     ret = WinHttpQueryHeaders(req, WINHTTP_QUERY_RAW_HEADERS_CRLF, NULL, NULL, &size, NULL);
@@ -1668,28 +1687,33 @@ static void test_resolve_timeout(void)
     DWORD timeout;
     BOOL ret;
 
-    ses = WinHttpOpen(test_useragent, 0, NULL, NULL, 0);
-    ok(ses != NULL, "failed to open session %u\n", GetLastError());
-
-    timeout = 10000;
-    ret = WinHttpSetOption(ses, WINHTTP_OPTION_RESOLVE_TIMEOUT, &timeout, sizeof(timeout));
-    ok(ret, "failed to set resolve timeout %u\n", GetLastError());
+    if (! proxy_active())
+    {
+        ses = WinHttpOpen(test_useragent, 0, NULL, NULL, 0);
+        ok(ses != NULL, "failed to open session %u\n", GetLastError());
 
-    con = WinHttpConnect(ses, nxdomain, 0, 0);
-    ok(con != NULL, "failed to open a connection %u\n", GetLastError());
+        timeout = 10000;
+        ret = WinHttpSetOption(ses, WINHTTP_OPTION_RESOLVE_TIMEOUT, &timeout, sizeof(timeout));
+        ok(ret, "failed to set resolve timeout %u\n", GetLastError());
 
-    req = WinHttpOpenRequest(con, NULL, NULL, NULL, NULL, NULL, 0);
-    ok(req != NULL, "failed to open a request %u\n", GetLastError());
+        con = WinHttpConnect(ses, nxdomain, 0, 0);
+        ok(con != NULL, "failed to open a connection %u\n", GetLastError());
 
-    SetLastError(0xdeadbeef);
-    ret = WinHttpSendRequest(req, NULL, 0, NULL, 0, 0, 0);
-    ok(!ret, "sent request\n");
-    ok(GetLastError() == ERROR_WINHTTP_NAME_NOT_RESOLVED,
-       "expected ERROR_WINHTTP_NAME_NOT_RESOLVED got %u\n", GetLastError());
+        req = WinHttpOpenRequest(con, NULL, NULL, NULL, NULL, NULL, 0);
+        ok(req != NULL, "failed to open a request %u\n", GetLastError());
 
-    WinHttpCloseHandle(req);
-    WinHttpCloseHandle(con);
-    WinHttpCloseHandle(ses);
+        SetLastError(0xdeadbeef);
+        ret = WinHttpSendRequest(req, NULL, 0, NULL, 0, 0, 0);
+        ok(!ret, "sent request\n");
+        ok(GetLastError() == ERROR_WINHTTP_NAME_NOT_RESOLVED,
+           "expected ERROR_WINHTTP_NAME_NOT_RESOLVED got %u\n", GetLastError());
+
+        WinHttpCloseHandle(req);
+        WinHttpCloseHandle(con);
+        WinHttpCloseHandle(ses);
+    }
+    else
+       skip("Skipping host resolution tests, host resolution preformed by proxy\n");
 
     ses = WinHttpOpen(test_useragent, 0, NULL, NULL, 0);
     ok(ses != NULL, "failed to open session %u\n", GetLastError());




More information about the wine-cvs mailing list