mshtml: Implement HTMLAnchorElement_get_port().
Signed-off-by: Hans Leidekker <hans@codeweavers.com> Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
6f8d366b57
commit
2bbb725bb0
|
@ -490,8 +490,35 @@ static HRESULT WINAPI HTMLAnchorElement_put_port(IHTMLAnchorElement *iface, BSTR
|
|||
static HRESULT WINAPI HTMLAnchorElement_get_port(IHTMLAnchorElement *iface, BSTR *p)
|
||||
{
|
||||
HTMLAnchorElement *This = impl_from_IHTMLAnchorElement(iface);
|
||||
FIXME("(%p)->(%p)\n", This, p);
|
||||
return E_NOTIMPL;
|
||||
IUri *uri;
|
||||
HRESULT hres;
|
||||
DWORD port;
|
||||
WCHAR buf[11];
|
||||
int len;
|
||||
BSTR str;
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, p);
|
||||
|
||||
uri = get_anchor_uri(This);
|
||||
if(!uri) {
|
||||
WARN("Could not create IUri\n");
|
||||
*p = NULL;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
hres = IUri_GetPort(uri, &port);
|
||||
IUri_Release(uri);
|
||||
if(FAILED(hres))
|
||||
return hres;
|
||||
|
||||
len = swprintf(buf, ARRAY_SIZE(buf), L"%u", port);
|
||||
str = SysAllocStringLen(buf, len);
|
||||
if (str)
|
||||
*p = str;
|
||||
else
|
||||
hres = E_OUTOFMEMORY;
|
||||
|
||||
return hres;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLAnchorElement_put_protocol(IHTMLAnchorElement *iface, BSTR v)
|
||||
|
|
|
@ -1673,6 +1673,22 @@ static void _test_anchor_hostname(unsigned line, IUnknown *unk, const WCHAR *hos
|
|||
SysFreeString(str);
|
||||
}
|
||||
|
||||
#define test_anchor_port(a,p) _test_anchor_port(__LINE__,a,p)
|
||||
static void _test_anchor_port(unsigned line, IUnknown *unk, const WCHAR *port)
|
||||
{
|
||||
IHTMLAnchorElement *anchor = _get_anchor_iface(line, unk);
|
||||
BSTR str;
|
||||
HRESULT hres;
|
||||
|
||||
hres = IHTMLAnchorElement_get_port(anchor, &str);
|
||||
ok_(__FILE__,line)(hres == S_OK, "get_port failed: %08x\n", hres);
|
||||
if(port)
|
||||
ok_(__FILE__,line)(!lstrcmpW(str, port), "port = %s, expected %s\n", wine_dbgstr_w(str), wine_dbgstr_w(port));
|
||||
else
|
||||
ok_(__FILE__,line)(str == NULL, "port = %s, expected NULL\n", wine_dbgstr_w(str));
|
||||
SysFreeString(str);
|
||||
}
|
||||
|
||||
#define test_anchor_search(a,h,n) _test_anchor_search(__LINE__,a,h,n)
|
||||
static void _test_anchor_search(unsigned line, IUnknown *elem, const WCHAR *search, BOOL allowbroken)
|
||||
{
|
||||
|
@ -9203,11 +9219,13 @@ static void test_elems(IHTMLDocument2 *doc)
|
|||
elem = get_elem_by_id(doc, L"a", TRUE);
|
||||
if(elem) {
|
||||
test_anchor_href((IUnknown*)elem, L"http://test/");
|
||||
test_anchor_port((IUnknown*)elem, L"80");
|
||||
|
||||
/* Change the href */
|
||||
test_anchor_put_href((IUnknown*)elem, L"http://test1/");
|
||||
test_anchor_href((IUnknown*)elem, L"http://test1/");
|
||||
test_anchor_put_href((IUnknown*)elem, L"http://test1:8080/");
|
||||
test_anchor_href((IUnknown*)elem, L"http://test1:8080/");
|
||||
test_anchor_hostname((IUnknown*)elem, L"test1");
|
||||
test_anchor_port((IUnknown*)elem, L"8080");
|
||||
|
||||
/* Restore the href */
|
||||
test_anchor_put_href((IUnknown*)elem, L"http://test/");
|
||||
|
|
Loading…
Reference in New Issue