27 static 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,
158 #define ELEM_IFACES \ 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) 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};
3279 IDispatchEx *dispex;
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);
3333 IDispatchEx *dispex;
3334 IHTMLDOMAttribute *
attr;
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);
3372 IHTMLDOMAttribute_Release(
attr);
3375 IDispatchEx_Release(dispex);
3380 static const WCHAR testW[] = {
't',
'e',
's',
't',0};
3384 IHTMLDOMAttribute *dom_attr;
3385 IHTMLAttributeCollection *attr_col;
3391 hres = IHTMLElement_QueryInterface(
elem, &IID_IHTMLDOMNode, (
void**)&
node);
3394 hres = IHTMLDOMNode_get_attributes(
node, &disp);
3400 IDispatch_Release(
attr);
3401 IHTMLDOMNode_Release(
node);
3403 hres = IDispatch_QueryInterface(disp, &IID_IHTMLAttributeCollection, (
void**)&attr_col);
3406 hres = IHTMLAttributeCollection_get_length(attr_col, &
i);
3415 hres = IHTMLAttributeCollection_get_length(attr_col, &
len);
3417 ok(
len ==
i+1,
"get_length returned %d, expected %d\n",
len,
i+1);
3423 hres = IHTMLAttributeCollection_item(attr_col, &
id, &
attr);
3426 hres = IDispatch_QueryInterface(
attr, &IID_IHTMLDOMAttribute, (
void**)&dom_attr);
3428 IDispatch_Release(
attr);
3430 hres = IHTMLDOMAttribute_get_nodeName(dom_attr, &
name);
3435 hres = IHTMLDOMAttribute_get_nodeValue(dom_attr, &
val);
3443 hres = IHTMLDOMAttribute_get_nodeValue(dom_attr, &
val);
3451 hres = IHTMLDOMAttribute_get_nodeValue(dom_attr, &
val);
3454 ok(!
V_BSTR(&
val),
"attr2: V_BSTR(&val) != NULL\n");
3458 hres = IHTMLDOMAttribute_get_nodeValue(dom_attr, &
val);
3465 hres = IHTMLDOMAttribute_get_nodeValue(dom_attr, &
val);
3472 IHTMLDOMAttribute_Release(dom_attr);
3476 ok(checked==5,
"invalid number of specified attributes (%d)\n", checked);
3479 hres = IHTMLAttributeCollection_item(attr_col, &
id, &
attr);
3484 hres = IHTMLAttributeCollection_item(attr_col, &
id, &
attr);
3490 IDispatch_Release(disp);
3491 IHTMLAttributeCollection_Release(attr_col);
3494 #define test_elem_id(e,i) _test_elem_id(__LINE__,e,i) 3498 BSTR id = (
void*)0xdeadbeef;
3501 hres = IHTMLElement_get_id(
elem, &
id);
3502 IHTMLElement_Release(
elem);
3513 #define test_elem_language(e,i) _test_elem_language(__LINE__,e,i) 3530 #define set_elem_language(e,i) _set_elem_language(__LINE__,e,i) 3543 #define test_elem_put_id(u,i) _test_elem_put_id(__LINE__,u,i) 3550 hres = IHTMLElement_put_id(
elem, tmp);
3551 IHTMLElement_Release(
elem);
3564 hres = IHTMLElement3_get_contentEditable(elem3, &strDefault);
3568 hres = IHTMLElement3_put_contentEditable(elem3,
str);
3571 hres = IHTMLElement3_get_contentEditable(elem3, &
str);
3576 hres = IHTMLElement3_put_contentEditable(elem3, strDefault);
3580 IHTMLElement3_Release(elem3);
3583 #define test_input_type(i,t) _test_input_type(__LINE__,i,t)