Nikolay Sivov : msxml3/httpreq: Support HEAD request.
Alexandre Julliard
julliard at winehq.org
Fri Sep 8 15:03:21 CDT 2017
Module: wine
Branch: master
Commit: 79f11f228216f6b6fa6aaf02704a86592b44aba3
URL: http://source.winehq.org/git/wine.git/?a=commit;h=79f11f228216f6b6fa6aaf02704a86592b44aba3
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Fri Sep 8 17:47:27 2017 +0300
msxml3/httpreq: Support HEAD request.
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/msxml3/httprequest.c | 2 ++
dlls/msxml3/tests/httpreq.c | 22 ++++++++++++++++++++++
2 files changed, 24 insertions(+)
diff --git a/dlls/msxml3/httprequest.c b/dlls/msxml3/httprequest.c
index 55339e1..d9f3f98 100644
--- a/dlls/msxml3/httprequest.c
+++ b/dlls/msxml3/httprequest.c
@@ -880,6 +880,7 @@ static HRESULT verify_uri(httprequest *This, IUri *uri)
static HRESULT httprequest_open(httprequest *This, BSTR method, BSTR url,
VARIANT async, VARIANT user, VARIANT password)
{
+ static const WCHAR MethodHeadW[] = {'H','E','A','D',0};
static const WCHAR MethodGetW[] = {'G','E','T',0};
static const WCHAR MethodPutW[] = {'P','U','T',0};
static const WCHAR MethodPostW[] = {'P','O','S','T',0};
@@ -915,6 +916,7 @@ static HRESULT httprequest_open(httprequest *This, BSTR method, BSTR url,
This->verb = BINDVERB_POST;
}
else if (!strcmpiW(method, MethodDeleteW) ||
+ !strcmpiW(method, MethodHeadW) ||
!strcmpiW(method, MethodPropFindW))
{
This->verb = BINDVERB_CUSTOM;
diff --git a/dlls/msxml3/tests/httpreq.c b/dlls/msxml3/tests/httpreq.c
index 55ea8b6..a744b95 100644
--- a/dlls/msxml3/tests/httpreq.c
+++ b/dlls/msxml3/tests/httpreq.c
@@ -1731,6 +1731,28 @@ static void test_XMLHTTP(void)
EXPECT_HR(hr, S_OK);
IObjectWithSite_Release(obj_site);
+
+ /* HEAD request */
+ hr = IXMLHttpRequest_put_onreadystatechange(xhr, NULL);
+ ok(hr == S_OK, "Failed to reset state change handler, hr %#x.\n", hr);
+
+ test_open(xhr, "HEAD", xmltestA, S_OK);
+
+ V_VT(&varbody) = VT_EMPTY;
+ hr = IXMLHttpRequest_send(xhr, varbody);
+ ok(hr == S_OK, "Failed to send HEAD request, hr %#x.\n", hr);
+
+ str = NULL;
+ hr = IXMLHttpRequest_get_responseText(xhr, &str);
+ ok(hr == S_OK, "Failed to get response text, hr %#x.\n", hr);
+ ok(!*str, "Unexpected text %s.\n", wine_dbgstr_w(str));
+ SysFreeString(str);
+
+ hr = IXMLHttpRequest_getAllResponseHeaders(xhr, &str);
+ ok(hr == S_OK, "Failed to get response headers, hr %#x.\n", hr);
+ ok(str && *str, "Expected response headers.\n");
+ SysFreeString(str);
+
IXMLHttpRequest_Release(xhr);
free_bstrs();
}
More information about the wine-cvs
mailing list