Module: wine Branch: master Commit: ebf406c163405018bc57403527f112a3528629a7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ebf406c163405018bc57403527... Author: Jacek Caban <jacek(a)codeweavers.com> Date: Thu May 3 12:19:33 2012 +0200 wininet: Clean up HTTP_QUERY_STATUS_CODE tests. --- dlls/wininet/tests/http.c | 126 ++++++++++++++++++++------------------------- 1 files changed, 56 insertions(+), 70 deletions(-) diff --git a/dlls/wininet/tests/http.c b/dlls/wininet/tests/http.c index 4974c88..6050220 100644 --- a/dlls/wininet/tests/http.c +++ b/dlls/wininet/tests/http.c @@ -178,6 +178,48 @@ static BOOL proxy_active(void) return proxy_enable != 0; } +#define test_status_code(a,b) _test_status_code(__LINE__,a,b) +static void _test_status_code(unsigned line, HINTERNET req, DWORD excode) +{ + DWORD code, size, index; + char exbuf[10], bufa[10]; + BOOL res; + + code = 0xdeadbeef; + size = sizeof(code); + res = HttpQueryInfo(req, HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &code, &size, NULL); + ok_(__FILE__,line)(res, "HttpQueryInfo(HTTP_QUERY_STATUS_CODE|number) failed: %u\n", GetLastError()); + ok_(__FILE__,line)(code == excode, "code = %d, expected %d\n", code, excode); + + code = 0xdeadbeef; + index = 0; + size = sizeof(code); + res = HttpQueryInfo(req, HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &code, &size, &index); + ok_(__FILE__,line)(res, "HttpQueryInfo(HTTP_QUERY_STATUS_CODE|number index) failed: %u\n", GetLastError()); + ok_(__FILE__,line)(code == excode, "code = %d, expected %d\n", code, excode); + ok_(__FILE__,line)(!index, "index = %d, expected 0\n", code); + + sprintf(exbuf, "%u", excode); + + size = sizeof(bufa); + res = HttpQueryInfo(req, HTTP_QUERY_STATUS_CODE, bufa, &size, NULL); + ok_(__FILE__,line)(res, "HttpQueryInfo(HTTP_QUERY_STATUS_CODE) failed: %u\n", GetLastError()); + ok_(__FILE__,line)(!strcmp(bufa, exbuf), "unexpected status code %s, expected %s", bufa, exbuf); + + code = 0xdeadbeef; + index = 1; + size = sizeof(code); + res = HttpQueryInfo(req, HTTP_QUERY_STATUS_CODE||HTTP_QUERY_FLAG_NUMBER, &code, &size, &index); + ok_(__FILE__,line)(!res && GetLastError() == ERROR_HTTP_HEADER_NOT_FOUND, + "HttpQueryInfo failed: %x(%d)\n", res, GetLastError()); + + code = 0xdeadbeef; + size = sizeof(code); + res = HttpQueryInfo(req, HTTP_QUERY_STATUS_CODE||HTTP_QUERY_FLAG_REQUEST_HEADERS, &code, &size, NULL); + ok_(__FILE__,line)(!res && GetLastError() == ERROR_HTTP_HEADER_NOT_FOUND, + "HttpQueryInfo failed: %x(%d)\n", res, GetLastError()); +} + static int close_handle_cnt; static VOID WINAPI callback( @@ -1848,7 +1890,7 @@ static void test_last_error(int port) static void test_proxy_indirect(int port) { HINTERNET hi, hc, hr; - DWORD r, sz, val; + DWORD r, sz; char buffer[0x40]; hi = InternetOpen(NULL, 0, NULL, NULL, 0); @@ -1873,15 +1915,7 @@ static void test_proxy_indirect(int port) } ok(!strcmp(buffer, "Basic realm=\"placebo\""), "proxy auth info wrong\n"); - sz = sizeof buffer; - r = HttpQueryInfo(hr, HTTP_QUERY_STATUS_CODE, buffer, &sz, NULL); - ok(r, "HttpQueryInfo failed\n"); - ok(!strcmp(buffer, "407"), "proxy code wrong\n"); - - sz = sizeof val; - r = HttpQueryInfo(hr, HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &val, &sz, NULL); - ok(r, "HttpQueryInfo failed\n"); - ok(val == 407, "proxy code wrong\n"); + test_status_code(hr, 407); sz = sizeof buffer; r = HttpQueryInfo(hr, HTTP_QUERY_STATUS_TEXT, buffer, &sz, NULL); @@ -1931,11 +1965,7 @@ static void test_proxy_direct(int port) r = HttpSendRequest(hr, NULL, 0, NULL, 0); ok(r, "HttpSendRequest failed\n"); - sz = sizeof buffer; - r = HttpQueryInfo(hr, HTTP_QUERY_STATUS_CODE, buffer, &sz, NULL); - ok(r, "HttpQueryInfo failed\n"); - ok(!strcmp(buffer, "407"), "proxy code wrong\n"); - + test_status_code(hr, 407); /* set the user + password then try again */ todo_wine { @@ -1986,11 +2016,7 @@ static void test_header_handling_order(int port) ret = HttpSendRequest(request, NULL, 0, NULL, 0); ok(ret, "HttpSendRequest failed\n"); - status = 0; - size = sizeof(status); - ret = HttpQueryInfo( request, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &status, &size, NULL ); - ok(ret, "HttpQueryInfo failed\n"); - ok(status == 200, "request failed with status %u\n", status); + test_status_code(request, 200); InternetCloseHandle(request); @@ -2031,7 +2057,6 @@ static void test_header_handling_order(int port) static void test_connection_header(int port) { HINTERNET ses, con, req; - DWORD size, status; BOOL ret; ses = InternetOpen("winetest", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); @@ -2046,11 +2071,7 @@ static void test_connection_header(int port) ret = HttpSendRequest(req, NULL, 0, NULL, 0); ok(ret, "HttpSendRequest failed\n"); - status = 0; - size = sizeof(status); - ret = HttpQueryInfo(req, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &status, &size, NULL); - ok(ret, "HttpQueryInfo failed\n"); - ok(status == 200, "request failed with status %u\n", status); + test_status_code(req, 200); InternetCloseHandle(req); @@ -2060,11 +2081,7 @@ static void test_connection_header(int port) ret = HttpSendRequest(req, NULL, 0, NULL, 0); ok(ret, "HttpSendRequest failed\n"); - status = 0; - size = sizeof(status); - ret = HttpQueryInfo(req, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &status, &size, NULL); - ok(ret, "HttpQueryInfo failed\n"); - ok(status == 200, "request failed with status %u\n", status); + test_status_code(req, 200); InternetCloseHandle(req); @@ -2074,11 +2091,7 @@ static void test_connection_header(int port) ret = HttpSendRequest(req, NULL, 0, NULL, 0); ok(ret, "HttpSendRequest failed\n"); - status = 0; - size = sizeof(status); - ret = HttpQueryInfo(req, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &status, &size, NULL); - ok(ret, "HttpQueryInfo failed\n"); - ok(status == 200, "request failed with status %u\n", status); + test_status_code(req, 200); InternetCloseHandle(req); @@ -2088,11 +2101,7 @@ static void test_connection_header(int port) ret = HttpSendRequest(req, NULL, 0, NULL, 0); ok(ret, "HttpSendRequest failed\n"); - status = 0; - size = sizeof(status); - ret = HttpQueryInfo(req, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &status, &size, NULL); - ok(ret, "HttpQueryInfo failed\n"); - ok(status == 200, "request failed with status %u\n", status); + test_status_code(req, 200); InternetCloseHandle(req); InternetCloseHandle(con); @@ -2301,7 +2310,7 @@ static void test_HttpSendRequestW(int port) static void test_cookie_header(int port) { HINTERNET ses, con, req; - DWORD size, status, error; + DWORD size, error; BOOL ret; char buffer[64]; @@ -2336,11 +2345,7 @@ static void test_cookie_header(int port) ret = HttpSendRequest(req, NULL, 0, NULL, 0); ok(ret, "HttpSendRequest failed: %u\n", GetLastError()); - status = 0; - size = sizeof(status); - ret = HttpQueryInfo(req, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &status, &size, NULL); - ok(ret, "HttpQueryInfo failed\n"); - ok(status == 200, "request failed with status %u\n", status); + test_status_code(req, 200); buffer[0] = 0; size = sizeof(buffer); @@ -2356,7 +2361,6 @@ static void test_cookie_header(int port) static void test_basic_authentication(int port) { HINTERNET session, connect, request; - DWORD size, status; BOOL ret; session = InternetOpen("winetest", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); @@ -2371,11 +2375,7 @@ static void test_basic_authentication(int port) ret = HttpSendRequest(request, NULL, 0, NULL, 0); ok(ret, "HttpSendRequest failed %u\n", GetLastError()); - status = 0; - size = sizeof(status); - ret = HttpQueryInfo( request, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &status, &size, NULL ); - ok(ret, "HttpQueryInfo failed\n"); - ok(status == 200, "request failed with status %u\n", status); + test_status_code(request, 200); InternetCloseHandle(request); InternetCloseHandle(connect); @@ -2385,7 +2385,7 @@ static void test_basic_authentication(int port) static void test_invalid_response_headers(int port) { HINTERNET session, connect, request; - DWORD size, status; + DWORD size; BOOL ret; char buffer[256]; @@ -2401,11 +2401,7 @@ static void test_invalid_response_headers(int port) ret = HttpSendRequest(request, NULL, 0, NULL, 0); ok(ret, "HttpSendRequest failed %u\n", GetLastError()); - status = 0; - size = sizeof(status); - ret = HttpQueryInfo( request, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &status, &size, NULL ); - ok(ret, "HttpQueryInfo failed\n"); - ok(status == 401, "unexpected status %u\n", status); + test_status_code(request, 401); buffer[0] = 0; size = sizeof(buffer); @@ -2545,17 +2541,7 @@ static void test_HttpQueryInfo(int port) ok(ret, "HttpQueryInfo failed %u\n", GetLastError()); ok(index == 0, "expected 0 got %u\n", index); - index = 0; - size = sizeof(buffer); - ret = HttpQueryInfo(hr, HTTP_QUERY_STATUS_CODE, buffer, &size, &index); - ok(ret, "HttpQueryInfo failed %u\n", GetLastError()); - ok(index == 0, "expected 0 got %u\n", index); - - index = 0; - size = sizeof(buffer); - ret = HttpQueryInfo(hr, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, buffer, &size, &index); - ok(ret, "HttpQueryInfo failed %u\n", GetLastError()); - ok(index == 0, "expected 0 got %u\n", index); + test_status_code(hr, 200); index = 0xdeadbeef; size = sizeof(buffer);