mshtml: Added IHTMLElement::put_id implementation.
This commit is contained in:
parent
4ee45b2e4a
commit
148a7d50c5
|
@ -290,8 +290,23 @@ static HRESULT WINAPI HTMLElement_get_className(IHTMLElement *iface, BSTR *p)
|
|||
static HRESULT WINAPI HTMLElement_put_id(IHTMLElement *iface, BSTR v)
|
||||
{
|
||||
HTMLElement *This = HTMLELEM_THIS(iface);
|
||||
FIXME("(%p)->(%s)\n", This, debugstr_w(v));
|
||||
return E_NOTIMPL;
|
||||
nsAString id_str;
|
||||
nsresult nsres;
|
||||
|
||||
TRACE("(%p)->(%s)\n", This, debugstr_w(v));
|
||||
|
||||
if(!This->nselem) {
|
||||
FIXME("nselem == NULL\n");
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
nsAString_Init(&id_str, v);
|
||||
nsres = nsIDOMHTMLElement_SetId(This->nselem, &id_str);
|
||||
nsAString_Finish(&id_str);
|
||||
if(NS_FAILED(nsres))
|
||||
ERR("SetId failed: %08x\n", nsres);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI HTMLElement_get_id(IHTMLElement *iface, BSTR *p)
|
||||
|
|
|
@ -365,6 +365,17 @@ static void _test_disp(unsigned line, IUnknown *unk, const IID *diid)
|
|||
IDispatchEx_Release(dispex);
|
||||
}
|
||||
|
||||
#define get_elem_iface(u) _get_elem_iface(__LINE__,u)
|
||||
static IHTMLElement *_get_elem_iface(unsigned line, IUnknown *unk)
|
||||
{
|
||||
IHTMLElement *elem;
|
||||
HRESULT hres;
|
||||
|
||||
hres = IUnknown_QueryInterface(unk, &IID_IHTMLElement, (void**)&elem);
|
||||
ok_(__FILE__,line) (hres == S_OK, "Coule not get IHTMLElement: %08x\n", hres);
|
||||
return elem;
|
||||
}
|
||||
|
||||
#define test_node_name(u,n) _test_node_name(__LINE__,u,n)
|
||||
static void _test_node_name(unsigned line, IUnknown *unk, const char *exname)
|
||||
{
|
||||
|
@ -386,13 +397,10 @@ static void _test_node_name(unsigned line, IUnknown *unk, const char *exname)
|
|||
#define test_elem_tag(u,n) _test_elem_tag(__LINE__,u,n)
|
||||
static void _test_elem_tag(unsigned line, IUnknown *unk, const char *extag)
|
||||
{
|
||||
IHTMLElement *elem;
|
||||
IHTMLElement *elem = _get_elem_iface(line, unk);
|
||||
BSTR tag;
|
||||
HRESULT hres;
|
||||
|
||||
hres = IUnknown_QueryInterface(unk, &IID_IHTMLElement, (void**)&elem);
|
||||
ok_(__FILE__, line) (hres == S_OK, "QueryInterface(IID_IHTMLElement) failed: %08x\n", hres);
|
||||
|
||||
hres = IHTMLElement_get_tagName(elem, &tag);
|
||||
IHTMLElement_Release(elem);
|
||||
ok_(__FILE__, line) (hres == S_OK, "get_tagName failed: %08x\n", hres);
|
||||
|
@ -869,13 +877,10 @@ static IHTMLDOMNode *_get_child_item(unsigned line, IHTMLDOMChildrenCollection *
|
|||
#define test_elem_id(e,i) _test_elem_id(__LINE__,e,i)
|
||||
static void _test_elem_id(unsigned line, IUnknown *unk, const char *exid)
|
||||
{
|
||||
IHTMLElement *elem;
|
||||
IHTMLElement *elem = _get_elem_iface(line, unk);
|
||||
BSTR id = (void*)0xdeadbeef;
|
||||
HRESULT hres;
|
||||
|
||||
hres = IUnknown_QueryInterface(unk, &IID_IHTMLElement, (void**)&elem);
|
||||
ok_(__FILE__,line) (hres == S_OK, "Coule not get IHTMLElement: %08x\n", hres);
|
||||
|
||||
hres = IHTMLElement_get_id(elem, &id);
|
||||
IHTMLElement_Release(elem);
|
||||
ok_(__FILE__,line) (hres == S_OK, "get_id failed: %08x\n", hres);
|
||||
|
@ -888,6 +893,21 @@ static void _test_elem_id(unsigned line, IUnknown *unk, const char *exid)
|
|||
SysFreeString(id);
|
||||
}
|
||||
|
||||
#define test_elem_put_id(u,i) _test_elem_put_id(__LINE__,u,i)
|
||||
static void _test_elem_put_id(unsigned line, IUnknown *unk, const char *new_id)
|
||||
{
|
||||
IHTMLElement *elem = _get_elem_iface(line, unk);
|
||||
BSTR tmp = a2bstr(new_id);
|
||||
HRESULT hres;
|
||||
|
||||
hres = IHTMLElement_put_id(elem, tmp);
|
||||
IHTMLElement_Release(elem);
|
||||
SysFreeString(tmp);
|
||||
ok_(__FILE__,line) (hres == S_OK, "put_id failed: %08x\n", hres);
|
||||
|
||||
_test_elem_id(line, unk, new_id);
|
||||
}
|
||||
|
||||
static void test_elem_col_item(IHTMLElementCollection *col, LPCWSTR n,
|
||||
const elem_type_t *elem_types, long len)
|
||||
{
|
||||
|
@ -976,9 +996,8 @@ static IHTMLElement *get_elem_by_id(IHTMLDocument2 *doc, LPCWSTR id, BOOL expect
|
|||
if(!disp)
|
||||
return NULL;
|
||||
|
||||
hres = IDispatch_QueryInterface(disp, &IID_IHTMLElement, (void**)&elem);
|
||||
elem = get_elem_iface((IUnknown*)disp);
|
||||
IDispatch_Release(disp);
|
||||
ok(hres == S_OK, "Could not get IHTMLElement interface: %08x\n", hres);
|
||||
|
||||
return elem;
|
||||
}
|
||||
|
@ -1651,6 +1670,7 @@ static void test_elems(IHTMLDocument2 *doc)
|
|||
ok(hres == S_OK, "Could not get IHTMLInputElement: %08x\n", hres);
|
||||
|
||||
test_elem_id((IUnknown*)elem, "in");
|
||||
test_elem_put_id((IUnknown*)elem, "newin");
|
||||
test_input_get_disabled(input, VARIANT_FALSE);
|
||||
|
||||
IHTMLInputElement_Release(input);
|
||||
|
|
Loading…
Reference in New Issue