Commit 79f11f22 authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

msxml3/httpreq: Support HEAD request.

parent cbacc556
......@@ -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;
......
......@@ -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();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment