urlmon: Make sure to include query part of relative URI containing path in combine_uri.
This commit is contained in:
parent
2e46c671d6
commit
ebf9f12c29
|
@ -6078,6 +6078,87 @@ static const uri_combine_test uri_combine_tests[] = {
|
||||||
{URL_SCHEME_FILE,S_OK},
|
{URL_SCHEME_FILE,S_OK},
|
||||||
{URLZONE_INVALID,E_NOTIMPL}
|
{URLZONE_INVALID,E_NOTIMPL}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{ "http://winehq.org/dir/testfile",0,
|
||||||
|
"test?querystring",Uri_CREATE_ALLOW_RELATIVE,
|
||||||
|
0,S_OK,FALSE,
|
||||||
|
{
|
||||||
|
{"http://winehq.org/dir/test?querystring",S_OK},
|
||||||
|
{"winehq.org",S_OK},
|
||||||
|
{"http://winehq.org/dir/test?querystring",S_OK},
|
||||||
|
{"winehq.org",S_OK},
|
||||||
|
{"",S_FALSE},
|
||||||
|
{"",S_FALSE},
|
||||||
|
{"winehq.org",S_OK},
|
||||||
|
{"",S_FALSE},
|
||||||
|
{"/dir/test",S_OK},
|
||||||
|
{"/dir/test?querystring",S_OK},
|
||||||
|
{"?querystring",S_OK},
|
||||||
|
{"http://winehq.org/dir/test?querystring",S_OK},
|
||||||
|
{"http",S_OK},
|
||||||
|
{"",S_FALSE},
|
||||||
|
{"",S_FALSE}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
{Uri_HOST_DNS,S_OK},
|
||||||
|
{80,S_OK},
|
||||||
|
{URL_SCHEME_HTTP,S_OK},
|
||||||
|
{URLZONE_INVALID,E_NOTIMPL}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ "http://winehq.org/dir/test",0,
|
||||||
|
"test?querystring",Uri_CREATE_ALLOW_RELATIVE,
|
||||||
|
0,S_OK,FALSE,
|
||||||
|
{
|
||||||
|
{"http://winehq.org/dir/test?querystring",S_OK},
|
||||||
|
{"winehq.org",S_OK},
|
||||||
|
{"http://winehq.org/dir/test?querystring",S_OK},
|
||||||
|
{"winehq.org",S_OK},
|
||||||
|
{"",S_FALSE},
|
||||||
|
{"",S_FALSE},
|
||||||
|
{"winehq.org",S_OK},
|
||||||
|
{"",S_FALSE},
|
||||||
|
{"/dir/test",S_OK},
|
||||||
|
{"/dir/test?querystring",S_OK},
|
||||||
|
{"?querystring",S_OK},
|
||||||
|
{"http://winehq.org/dir/test?querystring",S_OK},
|
||||||
|
{"http",S_OK},
|
||||||
|
{"",S_FALSE},
|
||||||
|
{"",S_FALSE}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
{Uri_HOST_DNS,S_OK},
|
||||||
|
{80,S_OK},
|
||||||
|
{URL_SCHEME_HTTP,S_OK},
|
||||||
|
{URLZONE_INVALID,E_NOTIMPL}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ "http://winehq.org/dir/test?querystring",0,
|
||||||
|
"#hash",Uri_CREATE_ALLOW_RELATIVE,
|
||||||
|
0,S_OK,FALSE,
|
||||||
|
{
|
||||||
|
{"http://winehq.org/dir/test?querystring#hash",S_OK},
|
||||||
|
{"winehq.org",S_OK},
|
||||||
|
{"http://winehq.org/dir/test?querystring#hash",S_OK},
|
||||||
|
{"winehq.org",S_OK},
|
||||||
|
{"",S_FALSE},
|
||||||
|
{"#hash",S_OK},
|
||||||
|
{"winehq.org",S_OK},
|
||||||
|
{"",S_FALSE},
|
||||||
|
{"/dir/test",S_OK},
|
||||||
|
{"/dir/test?querystring",S_OK},
|
||||||
|
{"?querystring",S_OK},
|
||||||
|
{"http://winehq.org/dir/test?querystring#hash",S_OK},
|
||||||
|
{"http",S_OK},
|
||||||
|
{"",S_FALSE},
|
||||||
|
{"",S_FALSE}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
{Uri_HOST_DNS,S_OK},
|
||||||
|
{80,S_OK},
|
||||||
|
{URL_SCHEME_HTTP,S_OK},
|
||||||
|
{URLZONE_INVALID,E_NOTIMPL}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -6006,6 +6006,11 @@ static HRESULT combine_uri(Uri *base, Uri *relative, DWORD flags, IUri **result,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(relative->query_start > -1) {
|
||||||
|
data.query = relative->canon_uri+relative->query_start;
|
||||||
|
data.query_len = relative->query_len;
|
||||||
|
}
|
||||||
|
|
||||||
/* Make sure the path component is valid. */
|
/* Make sure the path component is valid. */
|
||||||
ptr = path;
|
ptr = path;
|
||||||
pptr = &ptr;
|
pptr = &ptr;
|
||||||
|
|
Loading…
Reference in New Issue