Jacek Caban : wininet: Added INTERNET_OPTION_REQUEST_FLAGS tests.

Alexandre Julliard julliard at winehq.org
Thu May 24 14:58:13 CDT 2012


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu May 24 15:24:55 2012 +0200

wininet: Added INTERNET_OPTION_REQUEST_FLAGS tests.

---

 dlls/wininet/tests/http.c |   57 +++++++++++++++++++++++++++++++++++++--------
 1 files changed, 47 insertions(+), 10 deletions(-)

diff --git a/dlls/wininet/tests/http.c b/dlls/wininet/tests/http.c
index 2909df2..72ee56e 100644
--- a/dlls/wininet/tests/http.c
+++ b/dlls/wininet/tests/http.c
@@ -220,6 +220,26 @@ static void _test_status_code(unsigned line, HINTERNET req, DWORD excode)
                        "[invalid 2] HttpQueryInfo failed: %x(%d)\n", res, GetLastError());
 }
 
+#define test_request_flags(a,b) _test_request_flags(__LINE__,a,b,FALSE)
+#define test_request_flags_todo(a,b) _test_request_flags(__LINE__,a,b,TRUE)
+static void _test_request_flags(unsigned line, HINTERNET req, DWORD exflags, BOOL is_todo)
+{
+    DWORD flags, size;
+    BOOL res;
+
+    flags = 0xdeadbeef;
+    size = sizeof(flags);
+    res = InternetQueryOptionW(req, INTERNET_OPTION_REQUEST_FLAGS, &flags, &size);
+    ok_(__FILE__,line)(res, "InternetQueryOptionW(INTERNET_OPTION_REQUEST_FLAGS) failed: %u\n", GetLastError());
+
+    /* FIXME: Remove once we have INTERNET_REQFLAG_CACHE_WRITE_DISABLED implementation */
+    flags &= ~INTERNET_REQFLAG_CACHE_WRITE_DISABLED;
+    if(!is_todo)
+        ok_(__FILE__,line)(flags == exflags, "flags = %x, expected %x\n", flags, exflags);
+    else
+        todo_wine ok_(__FILE__,line)(flags == exflags, "flags = %x, expected %x\n", flags, exflags);
+}
+
 static int close_handle_cnt;
 
 static VOID WINAPI callback(
@@ -377,7 +397,6 @@ static void InternetReadFile_test(int flags, const test_data_t *test)
     BOOL res, on_async = TRUE;
     CHAR buffer[4000];
     DWORD length, post_len = 0;
-    DWORD out;
     const char *types[2] = { "*", NULL };
     HINTERNET hi, hic = 0, hor = 0;
 
@@ -410,7 +429,7 @@ static void InternetReadFile_test(int flags, const test_data_t *test)
 
     trace("HttpOpenRequestA <--\n");
     hor = HttpOpenRequestA(hic, test->post_data ? "POST" : "GET", test->path, NULL, NULL, types,
-                           INTERNET_FLAG_KEEP_CONNECTION | INTERNET_FLAG_RESYNCHRONIZE,
+                           INTERNET_FLAG_KEEP_CONNECTION | INTERNET_FLAG_RELOAD,
                            0xdeadbead);
     if (hor == 0x0 && GetLastError() == ERROR_INTERNET_NAME_NOT_RESOLVED) {
         /*
@@ -426,6 +445,8 @@ static void InternetReadFile_test(int flags, const test_data_t *test)
 
     if (hor == 0x0) goto abort;
 
+    test_request_flags(hor, INTERNET_REQFLAG_NO_HEADERS);
+
     length = sizeof(buffer);
     res = InternetQueryOptionA(hor, INTERNET_OPTION_URL, buffer, &length);
     ok(res, "InternetQueryOptionA(INTERNET_OPTION_URL) failed: %u\n", GetLastError());
@@ -529,9 +550,7 @@ static void InternetReadFile_test(int flags, const test_data_t *test)
     CLEAR_NOTIFIED(INTERNET_STATUS_CONNECTING_TO_SERVER);
     CLEAR_NOTIFIED(INTERNET_STATUS_CONNECTED_TO_SERVER);
 
-    length = 4;
-    res = InternetQueryOptionA(hor,INTERNET_OPTION_REQUEST_FLAGS,&out,&length);
-    ok(res, "InternetQueryOptionA(INTERNET_OPTION_REQUEST) failed with error %d\n", GetLastError());
+    test_request_flags(hor, 0);
 
     length = 100;
     res = InternetQueryOptionA(hor,INTERNET_OPTION_URL,buffer,&length);
@@ -662,7 +681,7 @@ static void InternetReadFile_chunked_test(void)
 
     trace("HttpOpenRequestA <--\n");
     hor = HttpOpenRequestA(hic, "GET", "/tests/chunked", NULL, NULL, types,
-                           INTERNET_FLAG_KEEP_CONNECTION | INTERNET_FLAG_RESYNCHRONIZE,
+                           INTERNET_FLAG_KEEP_CONNECTION | INTERNET_FLAG_RELOAD,
                            0xdeadbead);
     if (hor == 0x0 && GetLastError() == ERROR_INTERNET_NAME_NOT_RESOLVED) {
         /*
@@ -685,6 +704,8 @@ static void InternetReadFile_chunked_test(void)
        "Synchronous HttpSendRequest returning 0, error %u\n", GetLastError());
     trace("HttpSendRequestA <--\n");
 
+    test_request_flags(hor, 0);
+
     length = 100;
     res = HttpQueryInfoA(hor,HTTP_QUERY_CONTENT_TYPE,buffer,&length,0x0);
     buffer[length]=0;
@@ -781,7 +802,7 @@ static void InternetReadFileExA_test(int flags)
 
     trace("HttpOpenRequestA <--\n");
     hor = HttpOpenRequestA(hic, "GET", "/tests/redirect", NULL, NULL, types,
-                           INTERNET_FLAG_KEEP_CONNECTION | INTERNET_FLAG_RESYNCHRONIZE,
+                           INTERNET_FLAG_KEEP_CONNECTION | INTERNET_FLAG_RELOAD,
                            0xdeadbead);
     if (hor == 0x0 && GetLastError() == ERROR_INTERNET_NAME_NOT_RESOLVED) {
         /*
@@ -878,6 +899,8 @@ static void InternetReadFileExA_test(int flags)
         rc ? "TRUE" : "FALSE", GetLastError());
     HeapFree(GetProcessHeap(), 0, inetbuffers.lpvBuffer);
 
+    test_request_flags(hor, 0);
+
     /* tests to see whether lpcszHeader is used - it isn't */
     inetbuffers.dwStructSize = sizeof(INTERNET_BUFFERS);
     inetbuffers.lpcszHeader = (LPCTSTR)0xdeadbeef;
@@ -1039,6 +1062,7 @@ static void HttpSendRequestEx_test(void)
     }
     ok( hRequest != NULL, "Failed to open request handle err %u\n", GetLastError());
 
+    test_request_flags(hRequest, INTERNET_REQFLAG_NO_HEADERS);
 
     BufferIn.dwStructSize = sizeof( INTERNET_BUFFERS);
     BufferIn.Next = (LPINTERNET_BUFFERS)0xdeadcab;
@@ -1057,12 +1081,18 @@ static void HttpSendRequestEx_test(void)
     ok(ret, "HttpSendRequestEx Failed with error %u\n", error);
     ok(error == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", error);
 
+    test_request_flags(hRequest, INTERNET_REQFLAG_NO_HEADERS);
+
     for (i = 3; szPostData[i]; i++)
         ok(InternetWriteFile(hRequest, &szPostData[i], 1, &dwBytesWritten),
                 "InternetWriteFile failed\n");
 
+    test_request_flags(hRequest, INTERNET_REQFLAG_NO_HEADERS);
+
     ok(HttpEndRequest(hRequest, NULL, 0, 0), "HttpEndRequest Failed\n");
 
+    test_request_flags(hRequest, 0);
+
     ok(InternetReadFile(hRequest, szBuffer, 255, &dwBytesRead),
             "Unable to read response\n");
     szBuffer[dwBytesRead] = 0;
@@ -1918,6 +1948,7 @@ static void test_proxy_indirect(int port)
     ok(!strcmp(buffer, "Basic realm=\"placebo\""), "proxy auth info wrong\n");
 
     test_status_code(hr, 407);
+    test_request_flags(hr, 0);
 
     sz = sizeof buffer;
     r = HttpQueryInfo(hr, HTTP_QUERY_STATUS_TEXT, buffer, &sz, NULL);
@@ -2019,6 +2050,7 @@ static void test_header_handling_order(int port)
     ok(ret, "HttpSendRequest failed\n");
 
     test_status_code(request, 200);
+    test_request_flags(request, 0);
 
     InternetCloseHandle(request);
 
@@ -2378,6 +2410,7 @@ static void test_basic_authentication(int port)
     ok(ret, "HttpSendRequest failed %u\n", GetLastError());
 
     test_status_code(request, 200);
+    test_request_flags(request, 0);
 
     InternetCloseHandle(request);
     InternetCloseHandle(connect);
@@ -2404,6 +2437,7 @@ static void test_invalid_response_headers(int port)
     ok(ret, "HttpSendRequest failed %u\n", GetLastError());
 
     test_status_code(request, 401);
+    test_request_flags(request, 0);
 
     buffer[0] = 0;
     size = sizeof(buffer);
@@ -2441,10 +2475,14 @@ static void test_response_without_headers(int port)
     hr = HttpOpenRequest(hc, NULL, "/testG", NULL, NULL, NULL, 0, 0);
     ok(hr != NULL, "HttpOpenRequest failed %u\n", GetLastError());
 
+    test_request_flags(hr, INTERNET_REQFLAG_NO_HEADERS);
+
     SetLastError(0xdeadbeef);
     r = HttpSendRequest(hr, NULL, 0, NULL, 0);
     ok(r, "HttpSendRequest failed %u\n", GetLastError());
 
+    test_request_flags_todo(hr, INTERNET_REQFLAG_NO_HEADERS);
+
     count = 0;
     memset(buffer, 0, sizeof buffer);
     SetLastError(0xdeadbeef);
@@ -2454,6 +2492,7 @@ static void test_response_without_headers(int port)
     todo_wine ok(!memcmp(buffer, page1, sizeof page1), "http data wrong\n");
 
     test_status_code(hr, 200);
+    test_request_flags_todo(hr, INTERNET_REQFLAG_NO_HEADERS);
 
     buffer[0] = 0;
     size = sizeof(buffer);
@@ -3535,9 +3574,7 @@ static void test_InternetCloseHandle(void)
     ok(!res && (GetLastError() == ERROR_IO_PENDING),
        "Asynchronous HttpSendRequest NOT returning 0 with error ERROR_IO_PENDING\n");
 
-    len = sizeof(flags);
-    res = InternetQueryOptionA(closetest_req, INTERNET_OPTION_REQUEST_FLAGS, &flags, &len);
-    ok(res, "InternetQueryOptionA(%p INTERNET_OPTION_URL) failed: %u\n", closetest_req, GetLastError());
+    test_request_flags(closetest_req, INTERNET_REQFLAG_NO_HEADERS);
 
     res = InternetCloseHandle(closetest_session);
     ok(res, "InternetCloseHandle failed: %u\n", GetLastError());




More information about the wine-cvs mailing list