27static const char doc_str1[] =
"<html><body>test</body></html>";
29 "<html><body>test \na<font size=\"2\">bc\t123<br /> it's\r\n \t</font>text<br /></body></html>";
31 "<html><body>abc<hr />123<br /><hr />def</body></html>";
33 "<html><head><title>test</title><style id=\"styleid\">.body { margin-right: 0px; }</style>"
34 "<meta id=\"metaid\" name=\"meta name\" http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">"
35 "<link id=\"linkid\"></head>"
36 "<body onload=\"Testing()\">text test<!-- a comment -->"
37 "<a id=\"a\" href=\"http://test\" name=\"x\">link</a>"
38 "<label for=\"in\" id=\"labelid\">Label:</label>"
39 "<input id=\"in\" class=\"testclass\" tabIndex=\"2\" title=\"test title\" />"
40 "<button id=\"btnid\"></button>"
41 "<select id=\"s\"><option id=\"x\" value=\"val1\">opt1</option><option id=\"y\">opt2</option></select>"
42 "<textarea id=\"X\">text text</textarea>"
43 "<table id=\"tbl\"><tbody><tr></tr><tr id=\"row2\"><td id=\"td1\">td1 text</td><td id=\"td2\">td2 text</td></tr></tbody></table>"
44 "<script id=\"sc\" type=\"text/javascript\"><!--\nfunction Testing() {}\n// -->\n</script>"
45 "<test /><object id=\"objid\" name=\"objname\" vspace=100></object><embed />"
46 "<img id=\"imgid\" name=\"WineImg\"/>"
47 "<iframe src=\"about:blank\" id=\"ifr\"></iframe>"
48 "<form id=\"frm\"></form>"
49 "<div id=\"attr\" attr1=\"attr1\" attr2 attr3=\"attr3\"></div>"
52 "<html><head><title>test</title><style>.body { margin-right: 0px; }</style>"
53 "<link id=\"linkid\" rel=\"stylesheet\" href=\"about:blank\" type=\"text/css\"></head>"
54 "<body><div id=\"divid\" emptyattr=\"\" onclick=\"parseInt();\"></div></body>"
58 "<html><head><title>test</title></head><body>abc<br /><a href=\"about:blank\">123</a></body></html>";
60 "<html><head><title>test</title></head><body>"
61 "<!--[if gte IE 4]> <br> <![endif]-->"
64 "<html><head><title>frameset test</title></head><frameset rows=\"25, 25, *\">"
65 "<frame src=\"about:blank\" name=\"nm1\" id=\"fr1\"><frame src=\"about:blank\" name=\"nm2\" id=\"fr2\">"
66 "<frame src=\"about:blank\" id=\"fr3\">"
69 "<html><head><title>emptydiv test</title></head>"
70 "<body><div id=\"divid\"></div></body></html>";
72 "<html><head><title>noscript test</title><noscript><style>.body { margin-right: 0px; }</style></noscript></head>"
73 "<body><noscript><div>test</div></noscript></body></html>";
76 "<html><head><title>emptydiv test</title></head>"
77 "<body><div id=\"divid\"></div></body></html>";
135 &IID_IInternetHostSecurityManager,
154 &IID_ITargetContainer,
160 &IID_IHTMLDOMNode2, \
162 &IID_IHTMLElement2, \
163 &IID_IHTMLElement3, \
164 &IID_IHTMLElement4, \
175 &IID_IHTMLTextContainer,
176 &IID_IHTMLBodyElement,
183 &IID_IHTMLAnchorElement,
190 &IID_IHTMLInputElement,
191 &IID_IHTMLInputTextElement,
198 &IID_IHTMLButtonElement,
205 &IID_IHTMLLabelElement,
212 &IID_IHTMLSelectElement,
219 &IID_IHTMLTextAreaElement,
226 &IID_IHTMLOptionElement,
242 &IID_IHTMLScriptElement,
250 &IID_IHTMLDOMTextNode,
251 &IID_IHTMLDOMTextNode2,
256 &IID_IHTMLDOMAttribute,
257 &IID_IHTMLDOMAttribute2,
273 &IID_IServiceProvider,
279 &IID_IHTMLCommentElement,
286 &IID_IHTMLImgElement,
308 &IID_IHTMLFrameBase2,
315 &IID_IHTMLHeadElement,
322 &IID_IHTMLTitleElement,
329 &IID_IHTMLMetaElement,
336 &IID_IHTMLLinkElement,
343 &IID_IHTMLObjectElement,
344 &IID_IHTMLObjectElement2,
351 &IID_IHTMLEmbedElement,
359 &IID_IHTMLFrameBase2,
360 &IID_IHTMLIFrameElement,
361 &IID_IHTMLIFrameElement2,
368 &IID_IHTMLFormElement,
370 &DIID_DispHTMLFormElement,
376 &IID_IHTMLStyleElement,
383 &IID_IHTMLGenericElement,
403 &IID_IHTMLCurrentStyle,
404 &IID_IHTMLCurrentStyle2,
405 &IID_IHTMLCurrentStyle3,
413 &IID_IHTMLImageElementFactory,
421 &IID_IHTMLSelectionObject,
422 &IID_IHTMLSelectionObject2,
435 {
"HEAD",
head_iids, &DIID_DispHTMLHeadElement},
436 {
"TITLE",
title_iids, &DIID_DispHTMLTitleElement},
439 {
"INPUT",
input_iids, &DIID_DispHTMLInputElement},
440 {
"SELECT",
select_iids, &DIID_DispHTMLSelectElement},
442 {
"OPTION",
option_iids, &DIID_DispHTMLOptionElement},
449 {
"SCRIPT",
script_iids, &DIID_DispHTMLScriptElement},
450 {
"TEST",
elem_iids, &DIID_DispHTMLUnknownElement},
453 {
"IMG",
img_iids, &DIID_DispHTMLImg},
454 {
"TR",
tr_iids, &DIID_DispHTMLTableRow},
455 {
"TD",
td_iids, &DIID_DispHTMLTableCell},
457 {
"FORM",
form_iids, &DIID_DispHTMLFormElement},
458 {
"FRAME",
frame_iids, &DIID_DispHTMLFrameElement},
459 {
"OBJECT",
object_iids, &DIID_DispHTMLObjectElement},
462 {
"META",
meta_iids, &DIID_DispHTMLMetaElement},
464 {
"LINK",
link_iids, &DIID_DispHTMLLinkElement},
465 {
"LABEL",
label_iids, &DIID_DispHTMLLabelElement},
466 {
"BUTTON",
button_iids, &DIID_DispHTMLButtonElement}
507 static char buf[400];
541 IUnknown_Release(
unk1);
542 IUnknown_QueryInterface(iface2, &
IID_IUnknown, (
void**)&unk2);
543 IUnknown_Release(unk2);
551 IHTMLDocument5 *doc5;
555 &IID_IHTMLDocument2, (
void**)&doc);
560 hres = IHTMLDocument2_QueryInterface(doc, &IID_IHTMLDocument5, (
void**)&doc5);
562 win_skip(
"Could not get IHTMLDocument5, probably too old IE\n");
563 IHTMLDocument2_Release(doc);
567 IHTMLDocument5_Release(doc5);
571#define get_dispex_iface(u) _get_dispex_iface(__LINE__,u)
577 hres = IUnknown_QueryInterface(unk, &IID_IDispatchEx, (
void**)&dispex);
582#define test_ifaces(i,ids) _test_ifaces(__LINE__,i,ids)
585 const IID *
const *piid;
589 for(piid = iids; *piid; piid++) {
590 hres = IUnknown_QueryInterface(iface, *piid, (
void**)&unk);
593 IUnknown_Release(unk);
597#define test_no_iface(a,b) _test_no_iface(__LINE__,a,b)
603 unk = (
void*)0xdeadbeef;
604 hres = IUnknown_QueryInterface(iface, iid, (
void**)&unk);
606 ok_(__FILE__,
line)(!unk,
"unk = %p\n", unk);
609#define test_get_dispid(u,id) _test_get_dispid(__LINE__,u,id)
619 hres = IDispatchEx_GetTypeInfoCount(dispex, &ticnt);
621 ok_(__FILE__,
line) (ticnt == 1,
"ticnt=%u\n", ticnt);
623 hres = IDispatchEx_GetTypeInfo(dispex, 0, 0, &
typeinfo);
632 *iid = type_attr->guid;
636 ITypeInfo_ReleaseTypeAttr(
typeinfo, type_attr);
640 IDispatchEx_Release(dispex);
644#define test_disp_value(u) _test_disp_value(__LINE__,u,v)
654 IDispatchEx_Release(dispex);
662#define test_disp(u,id,v) _test_disp(__LINE__,u,id,v)
674#define test_disp2(u,id,id2,v) _test_disp2(__LINE__,u,id,id2,v)
687#define test_class_info(u) _test_class_info(__LINE__,u)
696 ok_(__FILE__,
line)(
hres ==
S_OK,
"Could not get IProvideClassInfo interface: %08x\n",
hres);
715 "unexpected typekind %d\n", type_attr->typekind);
716 ITypeInfo_ReleaseTypeAttr(
typeinfo, type_attr);
723#define set_dispex_value(a,b,c) _set_dispex_value(__LINE__,a,b,c)
727 DISPPARAMS dp = {
val,
NULL, 1, 0};
734 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameEnsure|fdexNameCaseInsensitive, &
id);
738 memset(&ei, 0,
sizeof(ei));
744#define get_elem_iface(u) _get_elem_iface(__LINE__,u)
750 hres = IUnknown_QueryInterface(unk, &IID_IHTMLElement, (
void**)&
elem);
755#define get_elem2_iface(u) _get_elem2_iface(__LINE__,u)
761 hres = IUnknown_QueryInterface(unk, &IID_IHTMLElement2, (
void**)&
elem);
766#define get_elem3_iface(u) _get_elem3_iface(__LINE__,u)
772 hres = IUnknown_QueryInterface(unk, &IID_IHTMLElement3, (
void**)&
elem);
777#define get_elem4_iface(u) _get_elem4_iface(__LINE__,u)
783 hres = IUnknown_QueryInterface(unk, &IID_IHTMLElement4, (
void**)&
elem);
788#define get_doc3_iface(u) _get_doc3_iface(__LINE__,u)
791 IHTMLDocument3 *doc3;
794 hres = IHTMLDocument2_QueryInterface(doc, &IID_IHTMLDocument3, (
void**)&doc3);
800#define get_node_iface(u) _get_node_iface(__LINE__,u)
806 hres = IUnknown_QueryInterface(unk, &IID_IHTMLDOMNode, (
void**)&
node);
811#define get_node2_iface(u) _get_node2_iface(__LINE__,u)
817 hres = IUnknown_QueryInterface(unk, &IID_IHTMLDOMNode2, (
void**)&
node);
822#define get_htmldoc5_iface(u) _get_htmldoc5_iface(__LINE__,u)
828 hres = IUnknown_QueryInterface(unk, &IID_IHTMLDocument5, (
void**)&doc);
833#define get_img_iface(u) _get_img_iface(__LINE__,u)
836 IHTMLImgElement *
img;
839 hres = IUnknown_QueryInterface(unk, &IID_IHTMLImgElement, (
void**)&
img);
844#define get_anchor_iface(u) _get_anchor_iface(__LINE__,u)
847 IHTMLAnchorElement *anchor;
850 hres = IUnknown_QueryInterface(unk, &IID_IHTMLAnchorElement, (
void**)&anchor);
855#define get_textarea_iface(u) _get_textarea_iface(__LINE__,u)
858 IHTMLTextAreaElement *textarea;
861 hres = IUnknown_QueryInterface(unk, &IID_IHTMLTextAreaElement, (
void**)&textarea);
866#define get_select_iface(u) _get_select_iface(__LINE__,u)
869 IHTMLSelectElement *
select;
872 hres = IUnknown_QueryInterface(unk, &IID_IHTMLSelectElement, (
void**)&
select);
877#define get_option_iface(u) _get_option_iface(__LINE__,u)
880 IHTMLOptionElement *
option;
883 hres = IUnknown_QueryInterface(unk, &IID_IHTMLOptionElement, (
void**)&
option);
888#define get_form_iface(u) _get_form_iface(__LINE__,u)
891 IHTMLFormElement *
form;
894 hres = IUnknown_QueryInterface(unk, &IID_IHTMLFormElement, (
void**)&
form);
899#define get_text_iface(u) _get_text_iface(__LINE__,u)
902 IHTMLDOMTextNode *
text;
905 hres = IUnknown_QueryInterface(unk, &IID_IHTMLDOMTextNode, (
void**)&
text);
910#define get_text2_iface(u) _get_text2_iface(__LINE__,u)
913 IHTMLDOMTextNode2 *text2;
916 hres = IUnknown_QueryInterface(unk, &IID_IHTMLDOMTextNode2, (
void**)&text2);
921#define get_comment_iface(u) _get_comment_iface(__LINE__,u)
927 hres = IUnknown_QueryInterface(unk, &IID_IHTMLCommentElement, (
void**)&
comment);
932#define get_object_iface(u) _get_object_iface(__LINE__,u)
935 IHTMLObjectElement *
obj;
938 hres = IUnknown_QueryInterface(unk, &IID_IHTMLObjectElement, (
void**)&
obj);
943#define get_style_iface(u) _get_style_iface(__LINE__,u)
946 IHTMLStyleElement *
obj;
949 hres = IUnknown_QueryInterface(unk, &IID_IHTMLStyleElement, (
void**)&
obj);
954#define get_metaelem_iface(u) _get_metaelem_iface(__LINE__,u)
957 IHTMLMetaElement *
ret;
960 hres = IUnknown_QueryInterface(unk, &IID_IHTMLMetaElement, (
void**)&
ret);
965#define get_link_iface(u) _get_link_iface(__LINE__,u)
968 IHTMLLinkElement *
ret;
971 hres = IUnknown_QueryInterface(unk, &IID_IHTMLLinkElement, (
void**)&
ret);
976#define get_iframe2_iface(u) _get_iframe2_iface(__LINE__,u)
979 IHTMLIFrameElement2 *
ret;
982 hres = IUnknown_QueryInterface(unk, &IID_IHTMLIFrameElement2, (
void**)&
ret);
987#define get_button_iface(u) _get_button_iface(__LINE__,u)
990 IHTMLButtonElement *
ret;
993 hres = IUnknown_QueryInterface(unk, &IID_IHTMLButtonElement, (
void**)&
ret);
998#define get_label_iface(u) _get_label_iface(__LINE__,u)
1001 IHTMLLabelElement *
ret;
1004 hres = IUnknown_QueryInterface(unk, &IID_IHTMLLabelElement, (
void**)&
ret);
1009#define get_attr2_iface(u) _get_attr2_iface(__LINE__,u)
1012 IHTMLDOMAttribute2 *
ret;
1015 hres = IUnknown_QueryInterface(unk, &IID_IHTMLDOMAttribute2, (
void**)&
ret);
1020#define test_node_name(u,n) _test_node_name(__LINE__,u,n)
1028 IHTMLDOMNode_Release(
node);
1035#define get_owner_doc(u) _get_owner_doc(__LINE__,u)
1040 IHTMLDocument2 *doc =
NULL;
1043 hres = IHTMLDOMNode2_get_ownerDocument(
node, &disp);
1044 IHTMLDOMNode2_Release(
node);
1048 hres = IDispatch_QueryInterface(disp, &IID_IHTMLDocument2, (
void**)&doc);
1049 IDispatch_Release(disp);
1056#define get_doc_window(d) _get_doc_window(__LINE__,d)
1063 hres = IHTMLDocument2_get_parentWindow(doc, &
window);
1070#define clone_node(n,d) _clone_node(__LINE__,n,d)
1078 IHTMLDOMNode_Release(
node);
1086#define test_elem_tag(u,n) _test_elem_tag(__LINE__,u,n)
1094 IHTMLElement_Release(
elem);
1101#define test_elem_type(ifc,t) _test_elem_type(__LINE__,ifc,t)
1111#define get_node_type(n) _get_node_type(__LINE__,n)
1121 IHTMLDOMNode_Release(
node);
1126#define get_child_nodes(u) _get_child_nodes(__LINE__,u)
1130 IHTMLDOMChildrenCollection *col =
NULL;
1134 hres = IHTMLDOMNode_get_childNodes(
node, &disp);
1135 IHTMLDOMNode_Release(
node);
1140 hres = IDispatch_QueryInterface(disp, &IID_IHTMLDOMChildrenCollection, (
void**)&col);
1141 IDispatch_Release(disp);
1142 ok_(__FILE__,
line) (
hres ==
S_OK,
"Could not get IHTMLDOMChildrenCollection: %08x\n",
hres);
1147#define get_child_item(c,i) _get_child_item(__LINE__,c,i)
1154 hres = IHTMLDOMChildrenCollection_item(col,
idx, &disp);
1158 IDispatch_Release(disp);
1163#define test_elem_attr(e,n,v) _test_elem_attr(__LINE__,e,n,v)
1187#define test_elem_offset(a,b) _test_elem_offset(__LINE__,a,b)
1191 IHTMLElement *off_parent;
1195 hres = IHTMLElement_get_offsetTop(
elem, &
l);
1198 hres = IHTMLElement_get_offsetHeight(
elem, &
l);
1201 hres = IHTMLElement_get_offsetWidth(
elem, &
l);
1204 hres = IHTMLElement_get_offsetLeft(
elem, &
l);
1207 hres = IHTMLElement_get_offsetParent(
elem, &off_parent);
1211 IHTMLElement_Release(off_parent);
1213 IHTMLElement_Release(
elem);
1216#define test_elem_source_index(a,b) _test_elem_source_index(__LINE__,a,b)
1219 LONG l = 0xdeadbeef;
1222 hres = IHTMLElement_get_sourceIndex(
elem, &
l);
1227#define get_doc_node(d) _get_doc_node(__LINE__,d)
1231 IHTMLDocument2 *
ret;
1234 hres = IHTMLDocument2_get_parentWindow(doc, &
window);
1244#define test_window_name(d,e) _test_window_name(__LINE__,d,e)
1259#define set_window_name(w,n) _set_window_name(__LINE__,w,n)
1273#define test_window_status(d) _test_window_status(__LINE__,d)
1279 status = (
void*)0xdeadbeef;
1286#define set_window_status(w,n) _set_window_status(__LINE__,w,n)
1298#define test_window_length(w,l) _test_window_length(__LINE__,w,l)
1309#define get_frame_content_window(e) _get_frame_content_window(__LINE__,e)
1312 IHTMLFrameBase2 *base2;
1316 hres = IUnknown_QueryInterface(
elem, &IID_IHTMLFrameBase2, (
void**)&base2);
1317 ok(
hres ==
S_OK,
"Could not get IHTMFrameBase2 iface: %08x\n",
hres);
1320 hres = IHTMLFrameBase2_get_contentWindow(base2, &
window);
1321 IHTMLFrameBase2_Release(base2);
1331 IHTMLDocument3 *doc3;
1337 hres = IHTMLDocument2_QueryInterface(doc, &IID_IHTMLDocument3, (
void**)&doc3);
1338 ok(
hres ==
S_OK,
"QueryInterface(IID_IHTMLDocument3) failed: %08x\n",
hres);
1340 hres = IHTMLDocument3_get_documentElement(doc3, &
elem);
1341 IHTMLDocument3_Release(doc3);
1345 bstr =
a2bstr(
"notAnAttribute");
1346 hres = IHTMLElement_getAttribute(
elem, bstr, 0, &
val);
1353 bstr =
a2bstr(
"scrollHeight");
1354 hres = IHTMLElement_getAttribute(
elem, bstr, 0, &
val);
1361 bstr =
a2bstr(
"newAttribute");
1365 hres = IHTMLElement_setAttribute(
elem, bstr,
val, 0);
1369 hres = IHTMLElement_getAttribute(
elem, bstr, 0, &
val);
1378 hres = IHTMLElement_setAttribute(
elem, bstr,
val, 0);
1382 hres = IHTMLElement_getAttribute(
elem, bstr, 0, &
val);
1385 ok(
V_BOOL(&
val) == VARIANT_TRUE,
"variant value should have been VARIANT_TRUE (0x%x), was %d\n", VARIANT_TRUE,
V_BOOL(&
val));
1391 bstr =
a2bstr(
"newattribute");
1392 hres = IHTMLElement_getAttribute(
elem, bstr, 0, &
val);
1395 ok(
V_BOOL(&
val) == VARIANT_TRUE,
"variant value should have been VARIANT_TRUE (0x%x), was %d\n", VARIANT_TRUE,
V_BOOL(&
val));
1399 IHTMLElement_Release(
elem);
1402#define get_doc_elem(d) _get_doc_elem(__LINE__,d)
1406 IHTMLDocument3 *doc3;
1409 hres = IHTMLDocument2_QueryInterface(doc, &IID_IHTMLDocument3, (
void**)&doc3);
1410 ok_(__FILE__,
line) (
hres ==
S_OK,
"Could not get IHTMLDocument3 interface: %08x\n",
hres);
1411 hres = IHTMLDocument3_get_documentElement(doc3, &
elem);
1413 IHTMLDocument3_Release(doc3);
1418#define test_anchor_href(a,h) _test_anchor_href(__LINE__,a,h)
1425 hres = IHTMLAnchorElement_get_href(anchor, &
str);
1433#define test_anchor_put_href(a,h) _test_anchor_put_href(__LINE__,a,h)
1441 hres = IHTMLAnchorElement_put_href(anchor,
str);
1448#define test_anchor_rel(a,h) _test_anchor_rel(__LINE__,a,h)
1455 hres = IHTMLAnchorElement_get_rel(anchor, &
str);
1464#define test_anchor_put_rel(a,h) _test_anchor_put_rel(__LINE__,a,h)
1472 hres = IHTMLAnchorElement_put_rel(anchor,
str);
1477#define test_anchor_get_target(a,h) _test_anchor_get_target(__LINE__,a,h)
1484 hres = IHTMLAnchorElement_get_target(anchor, &
str);
1493#define test_anchor_put_target(a,h) _test_anchor_put_target(__LINE__,a,h)
1501 hres = IHTMLAnchorElement_put_target(anchor,
str);
1506#define test_anchor_name(a,h) _test_anchor_name(__LINE__,a,h)
1513 hres = IHTMLAnchorElement_get_name(anchor, &
str);
1522#define test_anchor_put_name(a,h) _test_anchor_put_name(__LINE__,a,h)
1530 hres = IHTMLAnchorElement_put_name(anchor,
str);
1537#define test_anchor_hostname(a,h) _test_anchor_hostname(__LINE__,a,h)
1544 hres = IHTMLAnchorElement_get_hostname(anchor, &
str);
1553#define test_anchor_search(a,h,n) _test_anchor_search(__LINE__,a,h,n)
1560 hres = IHTMLAnchorElement_get_search(anchor, &
str);
1562 if ( !
str && allowbroken)
1563 win_skip(
"skip ie6 incorrect behavior\n");
1571#define test_anchor_put_search(a,h) _test_anchor_put_search(__LINE__,a,h)
1579 hres = IHTMLAnchorElement_put_search(anchor,
str);
1584#define test_anchor_hash(a,h) _test_anchor_hash(__LINE__,a,h)
1591 hres = IHTMLAnchorElement_get_hash(anchor, &
str);
1600#define test_option_text(o,t) _test_option_text(__LINE__,o,t)
1606 hres = IHTMLOptionElement_get_text(
option, &bstr);
1612#define test_option_put_text(o,t) _test_option_put_text(__LINE__,o,t)
1619 hres = IHTMLOptionElement_put_text(
option, bstr);
1626#define test_option_value(o,t) _test_option_value(__LINE__,o,t)
1632 hres = IHTMLOptionElement_get_value(
option, &bstr);
1638#define test_option_put_value(o,t) _test_option_put_value(__LINE__,o,t)
1645 hres = IHTMLOptionElement_put_value(
option, bstr);
1652#define test_option_selected(o,s) _test_option_selected(__LINE__,o,s)
1658 hres = IHTMLOptionElement_get_selected(
option, &
b);
1660 ok_(__FILE__,
line)(
b ==
ex,
"selected = %x, expected %x\n",
b,
ex);
1663#define test_option_put_selected(o,s) _test_option_put_selected(__LINE__,o,s)
1668 hres = IHTMLOptionElement_put_selected(
option,
b);
1673#define test_option_get_index(o,s) _test_option_get_index(__LINE__,o,s)
1686 "value = %d, expected = %d\n",
val, exval);
1689#define test_option_put_defaultSelected(o,d) _test_option_put_defaultSelected(__LINE__,o,d)
1694 hres = IHTMLOptionElement_put_defaultSelected(
option,
b);
1698#define test_option_defaultSelected(o,e) _test_option_defaultSelected(__LINE__,o,e)
1708 hres = IHTMLOptionElement_get_defaultSelected(
option, &
b);
1710 ok_(__FILE__,
line)(
b ==
ex,
"b = %x, expected = %x\n",
b,
ex);
1743#define test_textarea_value(t,v) _test_textarea_value(__LINE__,t,v)
1750 hres = IHTMLTextAreaElement_get_value(textarea, &
value);
1751 IHTMLTextAreaElement_Release(textarea);
1760#define test_textarea_put_value(t,v) _test_textarea_put_value(__LINE__,t,v)
1767 hres = IHTMLTextAreaElement_put_value(textarea, tmp);
1768 IHTMLTextAreaElement_Release(textarea);
1775#define test_textarea_defaultvalue(t,v) _test_textarea_defaultvalue(__LINE__,t,v)
1782 hres = IHTMLTextAreaElement_get_defaultValue(textarea, &
value);
1783 IHTMLTextAreaElement_Release(textarea);
1792#define test_textarea_put_defaultvalue(t,v) _test_textarea_put_defaultvalue(__LINE__,t,v)
1799 hres = IHTMLTextAreaElement_put_defaultValue(textarea, tmp);
1800 IHTMLTextAreaElement_Release(textarea);
1807#define test_textarea_readonly(t,v) _test_textarea_readonly(__LINE__,t,v)
1814 hres = IHTMLTextAreaElement_get_readOnly(textarea, &
b);
1815 IHTMLTextAreaElement_Release(textarea);
1817 ok_(__FILE__,
line)(
b ==
ex,
"readOnly = %x, expected %x\n",
b,
ex);
1820#define test_textarea_put_readonly(t,v) _test_textarea_put_readonly(__LINE__,t,v)
1826 hres = IHTMLTextAreaElement_put_readOnly(textarea,
b);
1827 IHTMLTextAreaElement_Release(textarea);
1833#define test_textarea_type(t) _test_textarea_type(__LINE__,t)
1840 hres = IHTMLTextAreaElement_get_type(textarea, &
type);
1841 IHTMLTextAreaElement_Release(textarea);
1847#define get_textarea_form(t) _get_textarea_form(__LINE__,t)
1851 IHTMLFormElement *
form;
1854 hres = IHTMLTextAreaElement_get_form(textarea, &
form);
1855 IHTMLTextAreaElement_Release(textarea);
1861#define test_comment_text(c,t) _test_comment_text(__LINE__,c,t)
1873 IHTMLCommentElement_Release(
comment);
1877#define test_attr_specified(a,b) _test_attr_specified(__LINE__,a,b)
1883 hres = IHTMLDOMAttribute_get_specified(
attr, &specified);
1888#define test_attr_expando(a,b) _test_attr_expando(__LINE__,a,b)
1895 hres = IHTMLDOMAttribute2_get_expando(attr2, &expando);
1899 IHTMLDOMAttribute2_Release(attr2);
1902#define test_attr_value(a,b) _test_attr_value(__LINE__,a,b)
1909 hres = IHTMLDOMAttribute2_get_value(attr2, &
val);
1916 IHTMLDOMAttribute2_Release(attr2);
1920#define test_comment_attrs(c) _test_comment_attrs(__LINE__,c)
1926 IHTMLDOMAttribute *
attr;
1931 hres = IHTMLElement4_getAttributeNode(elem4,
name, &
attr);
1940 hres = IHTMLElement4_getAttributeNode(elem4,
name, &
attr);
1946 IHTMLDOMAttribute_Release(
attr);
1947 IHTMLCommentElement_Release(
comment);
1948 IHTMLElement_Release(
elem);
1949 IHTMLElement4_Release(elem4);
1953#define test_object_vspace(u,s) _test_object_vspace(__LINE__,u,s)
1961 hres = IHTMLObjectElement_get_vspace(
object, &
l);
1963 ok_(__FILE__,
line)(
l == exl,
"vspace=%d, expected %d\n",
l, exl);
1964 IHTMLObjectElement_Release(
object);
1967#define test_object_name(a,b) _test_object_name(__LINE__,a,b)
1974 str = (
void*)0xdeadbeef;
1975 hres = IHTMLObjectElement_get_name(
object, &
str);
1982 IHTMLObjectElement_Release(
object);
1985#define set_object_name(a,b) _set_object_name(__LINE__,a,b)
1993 hres = IHTMLObjectElement_put_name(
object,
str);
1996 IHTMLObjectElement_Release(
object);
2001#define create_option_elem(d,t,v) _create_option_elem(__LINE__,d,t,v)
2003 const char *txt,
const char *
val)
2005 IHTMLOptionElementFactory *
factory;
2006 IHTMLOptionElement *
option;
2011 hres = IHTMLDocument2_get_parentWindow(doc, &
window);
2015 IHTMLWindow2_Release(
window);
2029 IHTMLOptionElementFactory_Release(
factory);
2040#define test_img_width(o,w) _test_img_width(__LINE__,o,w)
2046 hres = IHTMLImgElement_get_width(
img, &found);
2048 ok_(__FILE__,
line) (found ==
exp,
"width=%d\n", found);
2051#define test_img_put_width(o,w) _test_img_put_width(__LINE__,o,w)
2062#define test_img_height(o,h) _test_img_height(__LINE__,o,h)
2068 hres = IHTMLImgElement_get_height(
img, &found);
2070 ok_(__FILE__,
line) (found ==
exp,
"height=%d\n", found);
2073#define test_img_put_height(o,w) _test_img_put_height(__LINE__,o,w)
2084#define create_img_elem(d,t,v) _create_img_elem(__LINE__,d,t,v)
2088 IHTMLImageElementFactory *
factory;
2089 IHTMLImgElement *
img;
2095 hres = IHTMLDocument2_get_parentWindow(doc, &
window);
2099 IHTMLWindow2_Release(
window);
2126 IHTMLImageElementFactory_Release(
factory);
2139#define test_select_length(s,l) _test_select_length(__LINE__,s,l)
2150#define test_select_put_length(s,l) _test_select_put_length(__LINE__,s,l)
2159 IHTMLSelectElement_Release(
select);
2162#define test_select_selidx(s,i) _test_select_selidx(__LINE__,s,i)
2173#define test_select_put_selidx(s,i) _test_select_put_selidx(__LINE__,s,i)
2183#define test_select_value(s,v) _test_select_value(__LINE__,s,v)
2198#define test_select_set_value(s,v) _test_select_set_value(__LINE__,s,v)
2205 hres = IHTMLSelectElement_put_value(
select, bstr);
2210#define test_select_type(s,t) _test_select_type(__LINE__,s,t)
2222#define test_select_multiple(s,t) _test_select_multiple(__LINE__,s,t)
2228 hres = IHTMLSelectElement_get_multiple(
select, &
b);
2230 ok_(__FILE__,
line) (
b == exmultiple,
"multiple=%x, expected %x\n",
b, exmultiple);
2233#define test_select_set_multiple(s,v) _test_select_set_multiple(__LINE__,s,v)
2244#define test_select_size(s,v) _test_select_size(__LINE__,s,v)
2256 ok_(__FILE__,
line) (
val == exval,
"size = %d, expected %d\n",
val, exval);
2259#define test_select_set_size(s,v,e) _test_select_set_size(__LINE__,s,v,e)
2265 ok_(__FILE__,
line) (
hres == exhres,
"put_size(%d) got %08x, expect %08x\n",
val,
hres, exhres);
2268#define test_select_name(s,v) _test_select_name(__LINE__,s,v)
2286#define test_select_set_name(s,v) _test_select_set_name(__LINE__,s,v)
2294 hres = IHTMLSelectElement_put_name(
select, bstr);
2299#define test_range_text(r,t) _test_range_text(__LINE__,r,t)
2319#define test_range_collapse(r,b) _test_range_collapse(__LINE__,r,b)
2329#define test_range_expand(r,u,b,t) _test_range_expand(__LINE__,r,u,b,t)
2338 ok_(__FILE__,
line) (
b == exb,
"b=%x, expected %x\n",
b, exb);
2342#define test_range_move(r,u,c,e) _test_range_move(__LINE__,r,u,c,e)
2345 LONG c = 0xdeadbeef;
2350 ok_(__FILE__,
line) (
c == excnt,
"count=%d, expected %d\n",
c, excnt);
2354#define test_range_movestart(r,u,c,e) _test_range_movestart(__LINE__,r,u,c,e)
2358 LONG c = 0xdeadbeef;
2363 ok_(__FILE__,
line) (
c == excnt,
"count=%d, expected %d\n",
c, excnt);
2366#define test_range_moveend(r,u,c,e) _test_range_moveend(__LINE__,r,u,c,e)
2369 LONG c = 0xdeadbeef;
2374 ok_(__FILE__,
line) (
c == excnt,
"count=%d, expected %d\n",
c, excnt);
2377#define test_range_put_text(r,t) _test_range_put_text(__LINE__,r,t)
2383 hres = IHTMLTxtRange_put_text(
range, bstr);
2389#define test_range_inrange(r1,r2,b) _test_range_inrange(__LINE__,r1,r2,b)
2396 hres = IHTMLTxtRange_inRange(range1, range2, &
b);
2398 ok_(__FILE__,
line) (
b == exb,
"(1->2) b=%x, expected %x\n",
b, exb);
2401#define test_range_isequal(r1,r2,b) _test_range_isequal(__LINE__,r1,r2,b)
2408 hres = IHTMLTxtRange_isEqual(range1, range2, &
b);
2410 ok_(__FILE__,
line) (
b == exb,
"(1->2) b=%x, expected %x\n",
b, exb);
2413 hres = IHTMLTxtRange_isEqual(range2, range1, &
b);
2415 ok_(__FILE__,
line) (
b == exb,
"(2->1) b=%x, expected %x\n",
b, exb);
2423#define test_range_paste_html(a,b) _test_range_paste_html(__LINE__,a,b)
2434#define test_range_parent(r,t) _test_range_parent(__LINE__,r,t)
2445 IHTMLElement_Release(
elem);
2448#define get_elem_col_item_idx(a,b) _get_elem_col_item_idx(__LINE__,a,b)
2459 hres = IHTMLElementCollection_item(col,
name,
index, &disp);
2461 ok_(__FILE__,
line)(disp !=
NULL,
"disp == NULL\n");
2464 IDispatch_Release(disp);
2468#define test_elem_collection(c,t,l) _test_elem_collection(__LINE__,c,t,l)
2472 IHTMLElementCollection *col;
2482 hres = IUnknown_QueryInterface(unk, &IID_IHTMLElementCollection, (
void**)&col);
2487 hres = IHTMLElementCollection_get_length(col, &
len);
2489 ok_(__FILE__,
line) (
len == exlen,
"len=%d, expected %d\n",
len, exlen);
2496 hres = IHTMLElementCollection_get__newEnum(col, &enum_unk);
2499 hres = IUnknown_QueryInterface(enum_unk, &IID_IEnumVARIANT, (
void**)&enum_var);
2500 IUnknown_Release(enum_unk);
2506 disp = (
void*)0xdeadbeef;
2507 hres = IHTMLElementCollection_item(col,
name,
index, &disp);
2509 ok_(__FILE__,
line) (disp !=
NULL,
"item returned NULL\n");
2518 disp2 = (
void*)0xdeadbeef;
2519 hres = IHTMLElementCollection_item(col,
name,
index, &disp2);
2523 IDispatch_Release(disp2);
2528 hres = IEnumVARIANT_Next(enum_var, 1, &
v,
i ? &fetched :
NULL);
2531 ok_(__FILE__,
line)(fetched == 1,
"fetched = %d\n", fetched);
2536 IDispatch_Release(disp);
2539 fetched = 0xdeadbeef;
2541 hres = IEnumVARIANT_Next(enum_var, 1, &
v, &fetched);
2543 ok_(__FILE__,
line)(fetched == 0,
"fetched = %d\n", fetched);
2546 hres = IEnumVARIANT_Reset(enum_var);
2549 fetched = 0xdeadbeef;
2551 hres = IEnumVARIANT_Next(enum_var, 0, &
v, &fetched);
2553 ok_(__FILE__,
line)(fetched == 0,
"fetched = %d\n", fetched);
2556 hres = IEnumVARIANT_Skip(enum_var,
len > 2 ?
len-2 : 0);
2561 hres = IEnumVARIANT_Next(enum_var,
sizeof(
vs)/
sizeof(*
vs),
vs, &fetched);
2563 ok_(__FILE__,
line)(fetched == (
len > 2 ? 2 :
len),
"fetched = %d\n", fetched);
2573 hres = IEnumVARIANT_Reset(enum_var);
2576 hres = IEnumVARIANT_Skip(enum_var,
len+1);
2579 IEnumVARIANT_Release(enum_var);
2583 disp = (
void*)0xdeadbeef;
2584 hres = IHTMLElementCollection_item(col,
name,
index, &disp);
2586 ok_(__FILE__,
line) (disp ==
NULL,
"disp != NULL\n");
2590 disp = (
void*)0xdeadbeef;
2591 hres = IHTMLElementCollection_item(col,
name,
index, &disp);
2593 ok_(__FILE__,
line) (disp ==
NULL,
"disp != NULL\n");
2597 disp = (
void*)0xdeadbeef;
2598 hres = IHTMLElementCollection_item(col,
name,
index, &disp);
2600 ok_(__FILE__,
line) (disp ==
NULL,
"disp != NULL\n");
2604 disp = (
void*)0xdeadbeef;
2605 hres = IHTMLElementCollection_item(col,
name,
index, &disp);
2607 ok_(__FILE__,
line) (disp ==
NULL,
"disp != NULL\n");
2611 disp = (
void*)0xdeadbeef;
2612 hres = IHTMLElementCollection_item(col,
name,
index, &disp);
2614 ok_(__FILE__,
line) (disp ==
NULL,
"disp != NULL\n");
2616 IHTMLElementCollection_Release(col);
2619#define test_elem_all(c,t,l) _test_elem_all(__LINE__,c,t,l)
2626 hres = IHTMLElement_get_all(
elem, &disp);
2627 IHTMLElement_Release(
elem);
2631 IDispatch_Release(disp);
2634#define test_doc_all(a,b,c) _test_doc_all(__LINE__,a,b,c)
2637 IHTMLElementCollection *col;
2640 hres = IHTMLDocument2_get_all(doc, &col);
2644 IHTMLElementCollection_Release(col);
2647#define test_elem_getelembytag(a,b,c,d) _test_elem_getelembytag(__LINE__,a,b,c,d)
2651 IHTMLElementCollection *col =
NULL;
2658 hres = IHTMLElement2_getElementsByTagName(
elem, tmp, &col);
2660 IHTMLElement2_Release(
elem);
2662 ok_(__FILE__,
line) (col !=
NULL,
"col == NULL\n");
2666 for(
i=0;
i<exlen;
i++)
2676 IHTMLElementCollection_Release(col);
2679#define test_elem_innertext(e,t) _test_elem_innertext(__LINE__,e,t)
2695#define test_elem_set_innertext(e,t) _test_elem_set_innertext(__LINE__,e,t)
2698 IHTMLDOMChildrenCollection *col;
2711 ok(col !=
NULL,
"col == NULL\n");
2716 hres = IHTMLDOMChildrenCollection_get_length(col, &
length);
2725 IHTMLDOMNode_Release(
node);
2728 IHTMLDOMChildrenCollection_Release(col);
2733#define test_elem_innerhtml(e,t) _test_elem_innerhtml(__LINE__,e,t)
2740 hres = IHTMLElement_get_innerHTML(
elem, &html);
2747 IHTMLElement_Release(
elem);
2751#define test_elem_set_innerhtml(e,t) _test_elem_set_innerhtml(__LINE__,e,t)
2758 html =
a2bstr(inner_html);
2759 hres = IHTMLElement_put_innerHTML(
elem, html);
2762 IHTMLElement_Release(
elem);
2766#define test_elem_set_outerhtml(e,t) _test_elem_set_outerhtml(__LINE__,e,t)
2773 html =
a2bstr(outer_html);
2774 hres = IHTMLElement_put_outerHTML(
elem, html);
2777 IHTMLElement_Release(
elem);
2781#define test_elem_outerhtml(e,t) _test_elem_outerhtml(__LINE__,e,t)
2788 hres = IHTMLElement_get_outerHTML(
elem, &html);
2792 IHTMLElement_Release(
elem);
2796#define test_elem_contains(a,b,c) _test_elem_contains(__LINE__,a,b,c)
2803 hres = IHTMLElement_contains(
elem, elem2, &
b);
2805 ok_(__FILE__,
line)(
b == exval,
"contains returned %x, expected %x\n",
b, exval);
2808#define test_elem_istextedit(a,b) _test_elem_istextedit(__LINE__,a,b)
2815 hres = IHTMLElement_get_isTextEdit(
elem, &
b);
2817 ok_(__FILE__,
line)(
b == exval,
"isTextEdit = %x\n",
b);
2820#define get_first_child(n) _get_first_child(__LINE__,n)
2828 IHTMLDOMNode_Release(
node);
2834#define test_node_has_child(u,b) _test_node_has_child(__LINE__,u,b)
2841 hres = IHTMLDOMNode_hasChildNodes(
node, &
b);
2843 ok_(__FILE__,
line) (
b == exb,
"hasChildNodes=%x, expected %x\n",
b, exb);
2845 IHTMLDOMNode_Release(
node);
2848#define test_node_get_parent(u) _test_node_get_parent(__LINE__,u)
2856 IHTMLDOMNode_Release(
node);
2862#define node_get_next(u) _node_get_next(__LINE__,u)
2870 IHTMLDOMNode_Release(
node);
2876#define node_get_prev(u) _node_get_prev(__LINE__,u)
2883 hres = IHTMLDOMNode_get_previousSibling(
node, &prev);
2884 IHTMLDOMNode_Release(
node);
2890#define test_elem_get_parent(u) _test_elem_get_parent(__LINE__,u)
2898 IHTMLElement_Release(
elem);
2904#define test_elem3_get_disabled(i,b) _test_elem3_get_disabled(__LINE__,i,b)
2912 hres = IHTMLElement3_get_disabled(elem3, &disabled);
2914 ok_(__FILE__,
line) (disabled == exb,
"disabled=%x, expected %x\n", disabled, exb);
2915 IHTMLElement3_Release(elem3);
2918#define test_elem3_set_disabled(i,b) _test_elem3_set_disabled(__LINE__,i,b)
2925 hres = IHTMLElement3_put_disabled(elem3,
b);
2928 IHTMLElement3_Release(elem3);
2932#define test_select_get_disabled(i,b) _test_select_get_disabled(__LINE__,i,b)
2938 hres = IHTMLSelectElement_get_disabled(
select, &disabled);
2940 ok_(__FILE__,
line) (disabled == exb,
"disabled=%x, expected %x\n", disabled, exb);
2953 hres = IHTMLSelectElement_remove(
select, -1);
2962#define test_text_length(u,l) _test_text_length(__LINE__,u,l)
2972 IHTMLDOMTextNode_Release(
text);
2975#define test_text_data(a,b) _test_text_data(__LINE__,a,b)
2985 IHTMLDOMTextNode_Release(
text);
2989#define set_text_data(a,b) _set_text_data(__LINE__,a,b)
2998 IHTMLDOMTextNode_Release(
text);
3002#define text_append_data(a,b) _text_append_data(__LINE__,a,b)
3011 IHTMLDOMTextNode2_Release(
text);
3015#define test_select_set_disabled(i,b) _test_select_set_disabled(__LINE__,i,b)
3020 hres = IHTMLSelectElement_put_disabled(
select,
b);
3026#define test_elem_dir(u,n) _test_elem_dir(__LINE__,u,n)
3034 IHTMLElement2_Release(
elem);
3044#define set_elem_dir(u,n) _set_elem_dir(__LINE__,u,n)
3052 IHTMLElement2_Release(
elem);
3059#define elem_get_scroll_height(u) _elem_get_scroll_height(__LINE__,u)
3063 IHTMLTextContainer *txtcont;
3064 LONG l = -1, l2 = -1;
3067 hres = IHTMLElement2_get_scrollHeight(
elem, &
l);
3069 IHTMLElement2_Release(
elem);
3071 hres = IUnknown_QueryInterface(unk, &IID_IHTMLTextContainer, (
void**)&txtcont);
3074 hres = IHTMLTextContainer_get_scrollHeight(txtcont, &l2);
3075 IHTMLTextContainer_Release(txtcont);
3076 ok_(__FILE__,
line) (
hres ==
S_OK,
"IHTMLTextContainer::get_scrollHeight failed: %d\n", l2);
3077 ok_(__FILE__,
line) (
l == l2,
"unexpected height %d, expected %d\n", l2,
l);
3082#define elem_get_scroll_width(u) _elem_get_scroll_width(__LINE__,u)
3086 IHTMLTextContainer *txtcont;
3087 LONG l = -1, l2 = -1;
3090 hres = IHTMLElement2_get_scrollWidth(
elem, &
l);
3092 IHTMLElement2_Release(
elem);
3094 hres = IUnknown_QueryInterface(unk, &IID_IHTMLTextContainer, (
void**)&txtcont);
3097 hres = IHTMLTextContainer_get_scrollWidth(txtcont, &l2);
3098 IHTMLTextContainer_Release(txtcont);
3099 ok_(__FILE__,
line) (
hres ==
S_OK,
"IHTMLTextContainer::get_scrollWidth failed: %d\n", l2);
3100 ok_(__FILE__,
line) (
l == l2,
"unexpected width %d, expected %d\n", l2,
l);
3105#define elem_get_scroll_top(u) _elem_get_scroll_top(__LINE__,u)
3109 IHTMLTextContainer *txtcont;
3110 LONG l = -1, l2 = -1;
3113 hres = IHTMLElement2_get_scrollTop(
elem, &
l);
3115 IHTMLElement2_Release(
elem);
3117 hres = IUnknown_QueryInterface(unk, &IID_IHTMLTextContainer, (
void**)&txtcont);
3120 hres = IHTMLTextContainer_get_scrollTop(txtcont, &l2);
3121 IHTMLTextContainer_Release(txtcont);
3122 ok_(__FILE__,
line) (
hres ==
S_OK,
"IHTMLTextContainer::get_scrollTop failed: %d\n", l2);
3123 ok_(__FILE__,
line) (
l == l2,
"unexpected top %d, expected %d\n", l2,
l);
3128#define elem_get_scroll_left(u) _elem_get_scroll_left(__LINE__,u)
3132 IHTMLTextContainer *txtcont;
3133 LONG l = -1, l2 = -1;
3139 hres = IHTMLElement2_get_scrollLeft(
elem, &
l);
3141 IHTMLElement2_Release(
elem);
3143 hres = IUnknown_QueryInterface(unk, &IID_IHTMLTextContainer, (
void**)&txtcont);
3144 ok(
hres ==
S_OK,
"Could not get IHTMLTextContainer: %08x\n",
hres);
3146 hres = IHTMLTextContainer_get_scrollLeft(txtcont, &l2);
3147 IHTMLTextContainer_Release(txtcont);
3148 ok(
hres ==
S_OK,
"IHTMLTextContainer::get_scrollLeft failed: %d\n", l2);
3149 ok(
l == l2,
"unexpected left %d, expected %d\n", l2,
l);
3152#define test_img_src(a,b,c) _test_img_src(__LINE__,a,b,c)
3160 IHTMLImgElement_Release(
img);
3167#define test_img_set_src(u,s) _test_img_set_src(__LINE__,u,s)
3175 hres = IHTMLImgElement_put_src(
img, tmp);
3176 IHTMLImgElement_Release(
img);
3181#define test_img_alt(u,a) _test_img_alt(__LINE__,u,a)
3188 hres = IHTMLImgElement_get_alt(
img, &alt);
3193 ok_(__FILE__,
line) (!alt,
"alt != NULL\n");
3197#define test_img_set_alt(u,a) _test_img_set_alt(__LINE__,u,a)
3205 hres = IHTMLImgElement_put_alt(
img, tmp);
3212#define test_img_align(u,a) _test_img_align(__LINE__,u,a)
3220 hres = IHTMLImgElement_put_align(
img, tmp);
3224 hres = IHTMLImgElement_get_align(
img, &tmp);
3230#define test_img_name(u, c) _test_img_name(__LINE__,u, c)
3237 hres = IHTMLImgElement_get_name(
img, &sName);
3240 IHTMLImgElement_Release(
img);
3244#define test_img_complete(a,b) _test_img_complete(__LINE__,a,b)
3251 hres = IHTMLImgElement_get_complete(
img, &
b);
3253 ok_(__FILE__,
line) (
b == exb,
"complete = %x, expected %x\n",
b, exb);
3254 IHTMLImgElement_Release(
img);
3257#define test_img_isMap(u, c) _test_img_isMap(__LINE__,u, c)
3264 hres = IHTMLImgElement_put_isMap(
img,
v);
3267 hres = IHTMLImgElement_get_isMap(
img, &
b);
3269 ok_(__FILE__,
line) (
b ==
v,
"isMap = %x, expected %x\n",
b,
v);
3273 IHTMLImgElement_Release(
img);
3278 static const WCHAR attr1W[] = {
'a',
't',
't',
'r',
'1',0};
3284 DISPID id = DISPID_STARTENUM;
3287 hres = IHTMLElement_QueryInterface(
elem, &IID_IDispatchEx, (
void**)&dispex);
3290 hres = IHTMLElement_removeAttribute(
elem, attr1, 0, &succ);
3292 ok(succ,
"removeAttribute set succ to FALSE\n");
3295 hres = IDispatchEx_GetNextDispID(dispex, fdexEnumAll,
id, &
id);
3300 hres = IDispatchEx_GetMemberName(dispex,
id, &
name);
3304 ok(0,
"attr1 should be removed\n");
3309 ok(checked_no == 2,
"checked_no=%d, expected 2\n", checked_no);
3310 IDispatchEx_Release(dispex);
3314 hres = IHTMLElement_setAttribute(
elem, attr1,
val, 0);
3319#define test_attr_node_name(a,b) _test_attr_node_name(__LINE__,a,b)
3325 hres = IHTMLDOMAttribute_get_nodeName(
attr, &
str);
3334 IHTMLDOMAttribute *
attr;
3335 DISPPARAMS dp = {
NULL,
NULL, 0, 0};
3342 hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (
void**)&dispex);
3346 hres = IDispatchEx_GetDispID(dispex, bstr, fdexNameCaseSensitive, &
id);
3358 hres = IDispatchEx_GetDispID(dispex, bstr, fdexNameCaseSensitive, &
id);