48#define XML_E_UNEXPECTED_ATTRIBUTE 0xC00CE56C
51#undef CLSID_DOMDocument
53DEFINE_GUID(
GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
54DEFINE_GUID(IID_transformdest_unknown,0xf5078f3a,0xc551,0x11d3,0x89,0xb9,0x00,0x00,0xf8,0x1f,0xe2,0x21);
56#define check_interface(a, b, c) check_interface_(__LINE__, a, b, c)
65 hr = IUnknown_QueryInterface(iface, iid, (
void **)&unk);
66 ok_(__FILE__,
line)(
hr == expected_hr,
"Got hr %#lx, expected %#lx.\n",
hr, expected_hr);
68 IUnknown_Release(unk);
83 { &
CLSID_DOMDocument,
"DOMDocument", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2} },
84 { &CLSID_DOMDocument2,
"DOMDocument2", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2} },
85 { &CLSID_DOMDocument30,
"DOMDocument30", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2} },
86 { &CLSID_DOMDocument40,
"DOMDocument40", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2} },
87 { &CLSID_DOMDocument60,
"DOMDocument60", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2, &IID_IXMLDOMDocument3} },
88 { &CLSID_FreeThreadedDOMDocument,
"FreeThreadedDOMDocument", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2} },
89 { &CLSID_XMLSchemaCache,
"XMLSchemaCache", {&IID_IXMLDOMSchemaCollection} },
90 { &CLSID_XSLTemplate,
"XSLTemplate", {&IID_IXSLTemplate} },
91 { &CLSID_MXNamespaceManager40,
"MXNamespaceManager40", {&IID_IMXNamespaceManager} },
101 return "IXMLDOMDocument";
103 return "IXMLDOMDocument2";
105 return "IXMLDOMDocument3";
107 return "IXMLDOMSchemaCollection";
109 return "IXSLTemplate";
111 return "IMXNamespaceManager";
127 if (
hr ==
S_OK) IUnknown_Release(unk);
178 IDispatch_AddRef( iface );
223 EXCEPINFO *excepInfo,
UINT *argErr)
235 ok(excepInfo ==
NULL,
"got %p\n", excepInfo);
236 ok(argErr ==
NULL,
"got %p\n", argErr);
260 return &
event->IDispatch_iface;
289 ok(0,
"unexpected call\n");
301 ok(0,
"unexpected call\n");
307 ok(0,
"unexpected call\n");
314 ok(0,
"unexpected call\n");
320 ok(0,
"unexpected call\n");
326 ok(0,
"unexpected call\n");
333 ok(0,
"unexpected call\n");
340 ok(0,
"unexpected call\n");
346 ok(0,
"unexpected call\n");
352 ok(0,
"unexpected call\n");
386 ok(0,
"unexpected call\n");
402 ok(0,
"unexpected call\n");
408 ok(0,
"unexpected call\n");
415 ok(0,
"unexpected call\n");
422 ok(0,
"unexpected call\n");
428 ok(0,
"unexpected call\n");
434 ok(0,
"unexpected call\n");
440 ok(0,
"unexpected call\n");
446 ok(0,
"unexpected call\n");
452 ok(0,
"unexpected call\n");
458 ok(0,
"unexpected call\n");
464 ok(0,
"unexpected call\n");
470 ok(0,
"unexpected call\n");
476 ok(0,
"unexpected call\n");
482 ok(0,
"unexpected call\n");
488 ok(0,
"unexpected call\n");
494 ok(0,
"unexpected call\n");
500 ok(0,
"unexpected call\n");
506 ok(0,
"unexpected call\n");
519 ok(dim == 1,
"got wrong array dimensions %u\n", dim);
524 ok(bound == 0,
"wrong array low bound %ld\n", bound);
529 ok(bound > 0,
"wrong array high bound %ld\n", bound);
536 ok(0,
"unexpected call\n");
542 ok(0,
"unexpected call\n");
548 ok(0,
"unexpected call\n");
554 ok(0,
"unexpected call\n");
560 ok(0,
"unexpected call\n");
566 ok(0,
"unexpected call\n");
572 ok(0,
"unexpected call\n");
578 ok(0,
"unexpected call\n");
584 ok(0,
"unexpected call\n");
590 ok(0,
"unexpected call\n");
596 ok(0,
"unexpected call\n");
602 ok(0,
"unexpected call\n");
608 ok(0,
"unexpected call\n");
614 ok(0,
"unexpected call\n");
620 ok(0,
"unexpected call\n");
626 ok(0,
"unexpected call\n");
674#define EXPECT_CHILDREN(node) _expect_children((IXMLDOMNode*)node, __LINE__)
681 hr = IXMLDOMNode_hasChildNodes(
node, &
b);
683 ok_(__FILE__,
line)(
b == VARIANT_TRUE,
"no children, %d\n",
b);
686#define EXPECT_NO_CHILDREN(node) _expect_no_children((IXMLDOMNode*)node, __LINE__)
693 hr = IXMLDOMNode_hasChildNodes(
node, &
b);
695 ok_(__FILE__,
line)(
b == VARIANT_FALSE,
"no children, %d\n",
b);
698#define EXPECT_REF(node,ref) _expect_ref((IUnknown*)node, ref, __LINE__)
702 IUnknown_AddRef(
obj);
703 rc = IUnknown_Release(
obj);
704 ok_(__FILE__,
line)(rc ==
ref,
"expected refcount %ld, got %ld\n",
ref, rc);
707#define EXPECT_LIST_LEN(list,len) _expect_list_len(list, len, __LINE__)
719#define EXPECT_PARSE_ERROR(doc, hr_exp, hr_todo) _expect_parse_error(doc, hr_exp, hr_todo, __LINE__)
727 hr = IXMLDOMDocument_get_parseError(doc, &
error);
732 hr = IXMLDOMParseError_get_errorCode(
error, &
code);
738 ok_(__FILE__,
line)(hr_exp ==
code,
"expected %#lx, unexpected hr %#lx.\n", hr_exp,
code);
746 IXMLDOMParseError_Release(
error);
751 "<?xml version=\'1.0\'?>\n"
753 "<bs vr=\'str2\' sz=\'1234\'>"
756 "<pr id=\'str3\' vr=\'1.2.3\' pn=\'wine 20050804\'>\n"
768 L"<S:search xmlns:D=\"DAV:\" xmlns:C=\"urn:schemas-microsoft-com:office:clipgallery\" xmlns:S=\"urn:schemas-microsoft-com:office:clipgallery:search\">"
769 "<S:scope><S:deep>/</S:deep></S:scope><S:contentfreetext><C:textorproperty/>computer</S:contentfreetext></S:search>";
772 "<?xml version=\"1.0\"?>\n\t"
781"<?xml version=\"1.0\" encoding=\"gbk\"?>"
787#define DECL_ISO8859_1 \
788"<?xml version=\"1.0\" encoding=\"ISO8859-1\"?>"
794#define DECL_WIN_936 \
795"<?xml version=\"1.0\" encoding=\"Windows-936\"?>"
801#define DECL_WIN_1252 \
802"<?xml version=\"1.0\" encoding=\"Windows-1252\"?>"
815"<?xml version='1.0' encoding='utf-8'?>\n"
816"<root xmlns:foo='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' a=\"attr a\" foo:b=\"attr b\" >\n"
822" <description xmlns:foo='http://www.winehq.org' xmlns:bar='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'>\n"
823" <html xmlns='http://www.w3.org/1999/xhtml'>\n"
824" <![CDATA[]]> This is<strong> a</strong> <i>description</i><dot>. </dot><bar:x/>\n"
826" <html xml:space='preserve' xmlns='http://www.w3.org/1999/xhtml'>\n"
827" This is <strong>a</strong> <i>description</i> with preserved whitespace. <bar:x/>\n"
835" <c type=\"old\">C2 field</c>\n"
839" <elem xmlns='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'>\n"
848" <foo:c>C4 field</foo:c>\n"
854"<?xml version='1.0'?>"
856"<b1> Text A end </b1>"
857"<b2>AB C </b2>"
861"<?xml version='1.0'?>"
862"<!-- comment node 0 -->"
863"<root id='0' depth='0'>"
864" <!-- comment node 1 -->"
866" <x id='1' depth='1'>"
867" <?foo value='PI for x'?>"
868" <!-- comment node 2 -->"
870" <a id='3' depth='2'/>"
871" <b id='4' depth='2'/>"
872" <c id='5' depth='2'/>"
874" <y id='2' depth='1'>"
875" <?bar value='PI for y'?>"
876" <!-- comment node 3 -->"
878" <a id='6' depth='2'/>"
879" <b id='7' depth='2'/>"
880" <c id='8' depth='2'/>"
885"<?xml version=\"1.0\"?>\n"
891"<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">\n"
892" <xsl:output method=\"html\"/>\n"
893" <xsl:template match=\"/\">\n"
894" <xsl:apply-templates select=\"greeting\"/>\n"
896" <xsl:template match=\"greeting\">\n"
900" <xsl:value-of select=\".\"/>\n"
910"</h1></body></html>";
913"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
914"<root xmlns:dt=\"urn:schemas-microsoft-com:datatypes\">\n"
915" <string>Wine</string>\n"
916" <string2 dt:dt=\"string\">String </string2>\n"
917" <string3> Wine Wine </string3>\n"
918" <string4>\nWine Wine\t</string4>\n"
919" <string5> </string5>\n"
920" <nested><s1> s1 </s1><s2>\ns2 s2\t</s2></nested>\n"
921" <number dt:dt=\"number\">12.44</number>\n"
922" <number2 dt:dt=\"NUMbEr\">-3.71e3</number2>\n"
923" <int dt:dt=\"int\">-13</int>\n"
924" <fixed dt:dt=\"fixed.14.4\">7322.9371</fixed>\n"
925" <bool dt:dt=\"boolean\">1</bool>\n"
926" <datetime dt:dt=\"datetime\">2009-11-18T03:21:33.12</datetime>\n"
927" <datetimetz dt:dt=\"datetime.tz\">2003-07-11T11:13:57+03:00</datetimetz>\n"
928" <date dt:dt=\"date\">3721-11-01</date>\n"
929" <time dt:dt=\"time\">13:57:12.31321</time>\n"
930" <timetz dt:dt=\"time.tz\">23:21:01.13+03:21</timetz>\n"
931" <i1 dt:dt=\"i1\">-13</i1>\n"
932" <i2 dt:dt=\"i2\">31915</i2>\n"
933" <i4 dt:dt=\"i4\">-312232</i4>\n"
934" <ui1 dt:dt=\"ui1\">123</ui1>\n"
935" <ui2 dt:dt=\"ui2\">48282</ui2>\n"
936" <ui4 dt:dt=\"ui4\">949281</ui4>\n"
937" <r4 dt:dt=\"r4\">213124.0</r4>\n"
938" <r8 dt:dt=\"r8\">0.412</r8>\n"
939" <float dt:dt=\"float\">41221.421</float>\n"
940" <uuid dt:dt=\"uuid\">333C7BC4-460F-11D0-BC04-0080C7055a83</uuid>\n"
941" <binhex dt:dt=\"bin.hex\">fffca012003c</binhex>\n"
942" <binbase64 dt:dt=\"bin.base64\">YmFzZTY0IHRlc3Q=</binbase64>\n"
943" <binbase64_1 dt:dt=\"bin.base64\">\nYmFzZTY0\nIHRlc3Q=\n</binbase64_1>\n"
944" <binbase64_2 dt:dt=\"bin.base64\">\nYmF\r\t z ZTY0\nIHRlc3Q=\n</binbase64_2>\n"
948"<?xml version=\"1.0\"?>"
949"<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" >"
950"<xsl:output method=\"html\"/>\n"
951"<xsl:template match=\"/\">"
953" <xsl:apply-templates select='document(\"";
957" <xsl:sort select=\"cost\"/><xsl:sort select=\"name\"/>"
958" </xsl:apply-templates>"
959"</TABLE></BODY></HTML>"
961"<xsl:template match=\"bottle\">"
962" <TR><xsl:apply-templates select=\"name\" /><xsl:apply-templates select=\"cost\" /></TR>"
964"<xsl:template match=\"name\">"
965" <TD><xsl:apply-templates /></TD>"
967"<xsl:template match=\"cost\">"
968" <TD><xsl:apply-templates /></TD>"
973"<?xml version=\"1.0\"?><bottle><wine><name>Wine</name><cost>$25.00</cost></wine></bottle>";
976"<HTML><BODY><TABLE><TD>Wine</TD><TD>$25.00</TD></TABLE></BODY></HTML>";
978#define SZ_EMAIL_DTD \
980" <!ELEMENT email (recipients,from,reply-to?,subject,body,attachment*)>"\
981" <!ATTLIST email attachments IDREFS #REQUIRED>"\
982" <!ATTLIST email sent (yes|no) \"no\">"\
983" <!ELEMENT recipients (to+,cc*)>"\
984" <!ELEMENT to (#PCDATA)>"\
985" <!ATTLIST to name CDATA #IMPLIED>"\
986" <!ELEMENT cc (#PCDATA)>"\
987" <!ATTLIST cc name CDATA #IMPLIED>"\
988" <!ELEMENT from (#PCDATA)>"\
989" <!ATTLIST from name CDATA #IMPLIED>"\
990" <!ELEMENT reply-to (#PCDATA)>"\
991" <!ATTLIST reply-to name CDATA #IMPLIED>"\
992" <!ELEMENT subject ANY>"\
993" <!ELEMENT body ANY>"\
994" <!ATTLIST body enc CDATA #FIXED \"UTF-8\">"\
995" <!ELEMENT attachment (#PCDATA)>"\
996" <!ATTLIST attachment id ID #REQUIRED>"\
1000"<?xml version=\"1.0\"?>"
1002"<email attachments=\"patch1\">"
1004" <to>wine-patches@winehq.org</to>"
1006" <from name=\"Anonymous\">user@localhost</from>"
1007" <subject>msxml3/tests: DTD validation (try 87)</subject>"
1009" It no longer causes spontaneous combustion..."
1011" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1015"<?xml version=\"1.0\"?>"
1017"<email attachments=\"patch1\">"
1019" <to>wine-patches@winehq.org</to>"
1021" <from name=\"Anonymous\">user@localhost</from>"
1022" <subject>msxml3/tests: DTD validation (try 88)</subject>"
1025" XML_ELEMENT_UNDECLARED 0xC00CE00D"
1027" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1031"<?xml version=\"1.0\"?>"
1033"<email attachments=\"patch1\">"
1035" <to>wine-patches@winehq.org</to>"
1037" <from name=\"Anonymous\">user@localhost</from>"
1038" <subject>msxml3/tests: DTD validation (try 89)</subject>"
1040" XML_ELEMENT_ID_NOT_FOUND 0xC00CE00E"
1042" <attachment id=\"patch\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1046"<?xml version=\"1.0\"?>"
1048"<email attachments=\"patch1\">"
1051" <from name=\"Anonymous\">user@localhost</from>"
1052" <subject>msxml3/tests: DTD validation (try 90)</subject>"
1054" XML_EMPTY_NOT_ALLOWED 0xC00CE011"
1056" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1060"<?xml version=\"1.0\"?>"
1062"<msg attachments=\"patch1\">"
1064" <to>wine-patches@winehq.org</to>"
1066" <from name=\"Anonymous\">user@localhost</from>"
1067" <subject>msxml3/tests: DTD validation (try 91)</subject>"
1069" XML_ROOT_NAME_MISMATCH 0xC00CE013"
1071" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1075"<?xml version=\"1.0\"?>"
1077"<email attachments=\"patch1\">"
1078" <to>wine-patches@winehq.org</to>"
1079" <from name=\"Anonymous\">user@localhost</from>"
1080" <subject>msxml3/tests: DTD validation (try 92)</subject>"
1082" XML_INVALID_CONTENT 0xC00CE014"
1084" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1088"<?xml version=\"1.0\"?>"
1090"<email attachments=\"patch1\" ip=\"127.0.0.1\">"
1092" <to>wine-patches@winehq.org</to>"
1094" <from name=\"Anonymous\">user@localhost</from>"
1095" <subject>msxml3/tests: DTD validation (try 93)</subject>"
1097" XML_ATTRIBUTE_NOT_DEFINED 0xC00CE015"
1099" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1103"<?xml version=\"1.0\"?>"
1105"<email attachments=\"patch1\">"
1107" <to>wine-patches@winehq.org</to>"
1109" <from name=\"Anonymous\">user@localhost</from>"
1110" <subject>msxml3/tests: DTD validation (try 94)</subject>"
1111" <body enc=\"ASCII\">"
1112" XML_ATTRIBUTE_FIXED 0xC00CE016"
1114" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1118"<?xml version=\"1.0\"?>"
1120"<email attachments=\"patch1\" sent=\"true\">"
1122" <to>wine-patches@winehq.org</to>"
1124" <from name=\"Anonymous\">user@localhost</from>"
1125" <subject>msxml3/tests: DTD validation (try 95)</subject>"
1127" XML_ATTRIBUTE_VALUE 0xC00CE017"
1129" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1133"<?xml version=\"1.0\"?>"
1135"<email attachments=\"patch1\">"
1138" <to>wine-patches@winehq.org</to>"
1140" <from name=\"Anonymous\">user@localhost</from>"
1141" <subject>msxml3/tests: DTD validation (try 96)</subject>"
1143" XML_ILLEGAL_TEXT 0xC00CE018"
1145" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1149"<?xml version=\"1.0\"?>"
1153" <to>wine-patches@winehq.org</to>"
1155" <from name=\"Anonymous\">user@localhost</from>"
1156" <subject>msxml3/tests: DTD validation (try 97)</subject>"
1158" XML_REQUIRED_ATTRIBUTE_MISSING 0xC00CE020"
1160" <attachment id=\"patch1\">0001-msxml3-tests-DTD-validation.patch</attachment>"
1164"<?xml version=\"1.0\"?>"
1166" <a attr1=\"1\" attr2=\"2\" />"
1173 "<?xml version=\"1.0\"?>"
1174 "<a xmlns:ns=\"nshref\" xml:lang=\"ru\" ns:b=\"b attr\" xml:c=\"c attr\" "
1179 "<?xml version=\"1.0\"?>"
1180 "<a attr1=\"value1\" attr2=\"value2\" attr3=\"value3\" attr4=\"value4\" />"
1187#define expect_bstr_eq_and_free(bstr, expect) { \
1188 BSTR bstrExp = alloc_str_from_narrow(expect); \
1189 ok(lstrcmpW(bstr, bstrExp) == 0, "String differs\n"); \
1190 SysFreeString(bstr); \
1191 SysFreeString(bstrExp); \
1194#define expect_eq(expr, value, type, format) { type ret = (expr); ok((value) == ret, #expr " expected " format " got " format "\n", value, ret); }
1196#define ole_expect(expr, expect) { \
1198 ok(r == (expect), #expr " returned %x, expected %x\n", r, expect); \
1201#define double_eq(x, y) ok((x)-(y)<=1e-14*(x) && (x)-(y)>=-1e-14*(x), "expected %.16g, got %.16g\n", x, y)
1209 ok(
hr ==
S_OK,
"failed to create %s instance: hr %#lx.\n",
name,
hr);
1214#define _create(cls) cls, #cls
1216#define create_document(iid) _create_object(&_create(CLSID_DOMDocument2), iid, __LINE__)
1217#define create_document_version(v, iid) _create_object(&_create(CLSID_DOMDocument ## v), iid, __LINE__)
1218#define create_cache(iid) _create_object(&_create(CLSID_XMLSchemaCache), iid, __LINE__)
1219#define create_xsltemplate(iid) _create_object(&_create(CLSID_XSLTemplate), iid, __LINE__)
1259 while (*sLeft ==
'\r' || *sLeft ==
'\n') sLeft++;
1260 while (*sRight ==
'\r' || *sRight ==
'\n') sRight++;
1261 if (*sLeft != *sRight)
return FALSE;
1262 if (!*sLeft)
return TRUE;
1300 IXMLDOMNode_AddRef(
node);
1306 r = IXMLDOMNode_get_previousSibling(
node, &new_node);
1308 IXMLDOMNode_Release(
node);
1310 }
while (
r ==
S_OK);
1325 IXMLDOMNode_AddRef(
node);
1338 hr = IXMLDOMNode_get_nodeName(
node, &bstr);
1346 hr = IXMLDOMNode_selectSingleNode(
node,
_bstr_(
".."), &new_node);
1350 hr = IXMLDOMNode_get_parentNode(
node, &new_node);
1356 IXMLDOMNode_Release(
node);
1367 static char buf[4096];
1378 hr = IXMLDOMNodeList_get_length(
list, &
len);
1380 for (
i = 0;
i <
len;
i++)
1389 IXMLDOMNode_Release(
node);
1395#define expect_node(node, expstr) { char str[4096]; node_to_string(node, str); ok(strcmp(str, expstr)==0, "Invalid node: %s, expected %s\n", str, expstr); }
1396#define expect_list_and_release(list, expstr) { char *str = list_to_string(list); ok(strcmp(str, expstr)==0, "Invalid node list: %s, expected %s\n", str, expstr); if (list) IXMLDOMNodeList_Release(list); }
1411 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2", {{VARIANT_FALSE,
S_FALSE }, {VARIANT_FALSE,
S_FALSE } }},
1412 { &CLSID_DOMDocument26,
"CLSID_DOMDocument26", {{VARIANT_FALSE,
S_FALSE }, {VARIANT_TRUE,
S_OK } }},
1413 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30", {{VARIANT_FALSE,
S_FALSE }, {VARIANT_FALSE,
S_FALSE } }},
1414 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40", {{VARIANT_FALSE,
S_FALSE }, {VARIANT_FALSE,
S_FALSE } }},
1415 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60", {{VARIANT_FALSE,
S_FALSE }, {VARIANT_FALSE,
S_FALSE } }},
1420 "\n<?xml version=\"1.0\" encoding=\"UTF-16\" ?><root/>",
1421 " <?xml version=\"1.0\"?><root/>",
1422 "\n<?xml version=\"1.0\"?><root/>",
1423 "\t<?xml version=\"1.0\"?><root/>",
1424 "\r\n<?xml version=\"1.0\"?><root/>",
1425 "\r<?xml version=\"1.0\"?><root/>",
1426 "\r\r\r\r\t\t \n\n <?xml version=\"1.0\"?><root/>",
1442 const char **data_ptr;
1462 while (class_ptr->
clsid)
1494 hr = IXMLDOMDocument_load(doc,
var, &
b);
1495 ok(
hr == class_ptr->
ret[0].hr,
"Unexpected hr %#lx.\n",
hr);
1496 ok(
b == class_ptr->
ret[0].b,
"%d:%d, got %d, expected %d\n",
index,
i,
b, class_ptr->
ret[0].b);
1501 hr = IXMLDOMDocument_loadXML(doc,
data, &
b);
1502 ok(
hr == class_ptr->
ret[1].hr,
"Unexpected hr %#lx.\n",
hr);
1503 ok(
b == class_ptr->
ret[1].b,
"%d:%d, got %d, expected %d\n",
index,
i,
b, class_ptr->
ret[1].b);
1528 IXMLDOMDocument_loadXML( doc, (
BSTR)0x1,
NULL );
1532 hr = IXMLDOMDocument_loadXML( doc,
NULL,
NULL );
1536 hr = IXMLDOMDocument_loadXML( doc,
NULL, &
b );
1538 ok(
b == VARIANT_FALSE,
"failed to load XML string\n");
1547 hr = IXMLDOMDocument_load( doc,
var, &
b);
1549 ok(
b == VARIANT_FALSE,
"succeeded in loading XML string\n");
1552 str = (
void *)0xdeadbeef;
1553 hr = IXMLDOMDocument_get_url(doc, &
str);
1560 hr = IXMLDOMDocument_loadXML( doc,
str, &
b );
1562 ok(
b == VARIANT_FALSE,
"succeeded in loading XML string\n");
1565 hr = IXMLDOMDocument_get_async( doc, &
b );
1567 ok(
b == VARIANT_TRUE,
"Wrong default value\n");
1571 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
1572 ok(
hr ==
S_FALSE,
"should be no document element\n");
1577 hr = IXMLDOMDocument_selectSingleNode( doc,
str, &
node );
1583 hr = IXMLDOMDocument_loadXML( doc,
str, &
b );
1585 ok(
b == VARIANT_FALSE,
"succeeded in loading XML string\n");
1590 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
1591 ok(
hr ==
S_FALSE,
"should be no document element\n");
1599 hr = IXMLDOMDocument_loadXML( doc, &
buff[2], &
b );
1600 ok(
hr ==
S_OK,
"loadXML failed\n");
1601 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
1605 str =
SysAllocString(
L"<?xml version='1.0' encoding='Windows-1252'?>\n<open></open>\n" );
1606 hr = IXMLDOMDocument_loadXML( doc,
str, &
b );
1607 ok(
hr ==
S_OK,
"loadXML failed\n");
1608 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
1614 hr = IXMLDOMDocument_loadXML( doc,
str, &
b );
1616 ok(
b == VARIANT_FALSE,
"succeeded in loading XML string\n");
1622 hr = IXMLDOMDocument_loadXML( doc,
str, &
b );
1624 ok(
b == VARIANT_FALSE,
"succeeded in loading XML string\n");
1630 hr = IXMLDOMDocument_loadXML( doc,
str, &
b );
1631 ok(
hr ==
S_OK,
"loadXML failed\n");
1632 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
1636 hr = IXMLDOMDocument_get_nodeName( doc,
NULL );
1639 str = (
void *)0xdeadbeef;
1640 hr = IXMLDOMDocument_get_baseName( doc, &
str );
1646 hr = IXMLDOMDocument_get_nodeName( doc, &
str );
1647 ok (
hr ==
S_OK,
"get_nodeName wrong code\n");
1653 hr = IXMLDOMDocument_put_text( doc,
_bstr_(
"Should fail") );
1658 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
1659 ok(
hr ==
S_OK,
"should be a document element\n");
1664 hr = IXMLDOMElement_QueryInterface(
element, &IID_IObjectIdentity, (
void**)&
ident );
1667 IXMLDOMElement_Release(
element );
1673 hr = IXMLDOMDocument_loadXML( doc,
NULL,
NULL );
1675 ok(
b == 2,
"variant modified\n");
1676 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
1677 ok(
hr ==
S_FALSE,
"should be no document element\n");
1682 hr = IXMLDOMDocument_loadXML( doc,
str, &
b );
1683 ok(
hr ==
S_OK,
"loadXML failed\n");
1684 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
1690 ok(
hr ==
S_OK,
"loadXML failed\n");
1691 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
1693 hr = IXMLDOMDocument_get_parseError( doc, &
error );
1696 hr = IXMLDOMParseError_get_errorCode(
error, &
code );
1699 IXMLDOMParseError_Release(
error );
1702 hr = IXMLDOMDocument_createTextNode(doc,
_bstr_(
""), &nodetext);
1704 IXMLDOMText_Release(nodetext);
1707 hr = IXMLDOMDocument_createTextNode(doc,
str,
NULL);
1709 hr = IXMLDOMDocument_createTextNode(doc,
str, &nodetext);
1714 hr = IXMLDOMText_QueryInterface(nodetext, &IID_IXMLDOMElement, (
void**)&
element);
1718 hr = IXMLDOMText_get_lastChild(nodetext,
NULL);
1722 hr = IXMLDOMText_get_lastChild(nodetext, &nodeChild);
1724 ok(nodeChild ==
NULL,
"nodeChild not NULL\n");
1727 hr = IXMLDOMText_get_length(nodetext,
NULL);
1730 hr = IXMLDOMText_get_length(nodetext, &
nLength);
1735 hr = IXMLDOMText_put_data(nodetext,
_bstr_(
"This &is a ; test <>\\"));
1739 hr = IXMLDOMText_get_data(nodetext, &
str);
1741 ok(!
lstrcmpW(
str,
L"This &is a ; test <>\\"),
"incorrect put_data string\n");
1745 hr = IXMLDOMText_get_xml(nodetext, &
str);
1747 ok(!
lstrcmpW(
str,
L"This &is a ; test <>\\"),
"incorrect xml string\n");
1751 hr = IXMLDOMText_get_text(nodetext, &
str);
1753 ok(!
lstrcmpW(
str,
L"This &is a ; test <>\\"),
"incorrect xml string\n");
1757 hr = IXMLDOMText_substringData(nodetext, 0, 4,
NULL);
1761 str = (
void *)0xdeadbeef;
1762 hr = IXMLDOMText_substringData(nodetext, -1, 4, &
str);
1767 str = (
void *)0xdeadbeef;
1768 hr = IXMLDOMText_substringData(nodetext, 30, 0, &
str);
1773 str = (
void *)0xdeadbeef;
1774 hr = IXMLDOMText_substringData(nodetext, 0, -1, &
str);
1779 str = (
void *)0xdeadbeef;
1780 hr = IXMLDOMText_substringData(nodetext, 2, 0, &
str);
1785 hr = IXMLDOMText_substringData(nodetext, 0, 4, &
str);
1791 hr = IXMLDOMText_substringData(nodetext, 13, 4, &
str);
1797 hr = IXMLDOMText_substringData(nodetext, 20, 4, &
str);
1803 hr = IXMLDOMText_appendData(nodetext,
NULL);
1806 hr = IXMLDOMText_appendData(nodetext,
_bstr_(
""));
1809 hr = IXMLDOMText_appendData(nodetext,
_bstr_(
"Append"));
1812 hr = IXMLDOMText_get_text(nodetext, &
str);
1819 hr = IXMLDOMText_insertData(nodetext, -1,
str);
1822 hr = IXMLDOMText_insertData(nodetext, -1,
NULL);
1825 hr = IXMLDOMText_insertData(nodetext, 1000,
str);
1828 hr = IXMLDOMText_insertData(nodetext, 1000,
NULL);
1831 hr = IXMLDOMText_insertData(nodetext, 0,
NULL);
1834 hr = IXMLDOMText_insertData(nodetext, 0,
str);
1838 hr = IXMLDOMText_insertData(nodetext, -1,
_bstr_(
"Inserting"));
1841 hr = IXMLDOMText_insertData(nodetext, 1000,
_bstr_(
"Inserting"));
1844 hr = IXMLDOMText_insertData(nodetext, 0,
_bstr_(
"Begin "));
1847 hr = IXMLDOMText_insertData(nodetext, 17,
_bstr_(
"Middle"));
1850 hr = IXMLDOMText_insertData(nodetext, 39,
_bstr_(
" End"));
1853 hr = IXMLDOMText_get_text(nodetext, &
str);
1860 hr = IXMLDOMText_deleteData(nodetext, -1, 1);
1863 hr = IXMLDOMText_deleteData(nodetext, 0, 0);
1866 hr = IXMLDOMText_deleteData(nodetext, 0, -1);
1869 hr = IXMLDOMText_get_length(nodetext, &
nLength);
1873 hr = IXMLDOMText_deleteData(nodetext,
nLength, 1);
1876 hr = IXMLDOMText_deleteData(nodetext,
nLength+1, 1);
1880 hr = IXMLDOMText_deleteData(nodetext, 0, 5);
1883 hr = IXMLDOMText_get_length(nodetext, &
nLength);
1887 hr = IXMLDOMText_get_text(nodetext, &
str);
1893 hr = IXMLDOMText_deleteData(nodetext, 35, 3);
1896 hr = IXMLDOMText_get_length(nodetext, &
nLength);
1900 hr = IXMLDOMText_get_text(nodetext, &
str);
1906 hr = IXMLDOMText_deleteData(nodetext, 1, 33);
1909 hr = IXMLDOMText_get_length(nodetext, &
nLength);
1913 hr = IXMLDOMText_get_text(nodetext, &
str);
1919 hr = IXMLDOMText_get_length(nodetext, &
nLength);
1922 hr = IXMLDOMText_deleteData(nodetext, 0,
nLength);
1925 hr = IXMLDOMText_deleteData(nodetext, 0,
nLength);
1931 hr = IXMLDOMText_put_nodeValue(nodetext,
var);
1935 hr = IXMLDOMText_get_text(nodetext, &
str);
1943 hr = IXMLDOMText_put_nodeValue(nodetext,
var);
1947 hr = IXMLDOMText_get_text(nodetext, &
str);
1955 hr = IXMLDOMText_put_nodeValue(nodetext,
var);
1959 hr = IXMLDOMText_replaceData(nodetext, 6, 0,
NULL);
1961 hr = IXMLDOMText_get_text(nodetext, &
str);
1966 hr = IXMLDOMText_replaceData(nodetext, 0, 0,
NULL);
1968 hr = IXMLDOMText_get_text(nodetext, &
str);
1974 hr = IXMLDOMText_replaceData(nodetext, 0, 1,
NULL);
1976 hr = IXMLDOMText_get_text(nodetext, &
str);
1982 hr = IXMLDOMText_replaceData(nodetext, 0, 1,
_bstr_(
""));
1984 hr = IXMLDOMText_get_text(nodetext, &
str);
1990 hr = IXMLDOMText_replaceData(nodetext, 0, 0,
_bstr_(
"a"));
1992 hr = IXMLDOMText_get_text(nodetext, &
str);
1997 hr = IXMLDOMText_replaceData(nodetext, 0, 2,
NULL);
2000 hr = IXMLDOMText_insertData(nodetext, 0,
_bstr_(
"m"));
2002 hr = IXMLDOMText_get_text(nodetext, &
str);
2008 hr = IXMLDOMText_replaceData(nodetext, 0, 2,
_bstr_(
"a1.2"));
2010 hr = IXMLDOMText_get_text(nodetext, &
str);
2016 hr = IXMLDOMText_replaceData(nodetext, 0, 1,
_bstr_(
"wine"));
2018 hr = IXMLDOMText_get_text(nodetext, &
str);
2023 IXMLDOMText_Release( nodetext );
2027 hr = IXMLDOMDocument_createComment(doc,
NULL,
NULL);
2032 hr = IXMLDOMDocument_createComment(doc,
_bstr_(
""), &node_comment);
2035 hr = IXMLDOMComment_get_data(node_comment, &
str);
2038 IXMLDOMComment_Release(node_comment);
2041 hr = IXMLDOMDocument_createComment(doc,
NULL, &node_comment);
2044 hr = IXMLDOMComment_get_data(node_comment, &
str);
2047 IXMLDOMComment_Release(node_comment);
2051 hr = IXMLDOMDocument_createComment(doc,
str, &node_comment);
2057 hr = IXMLDOMComment_get_lastChild(node_comment,
NULL);
2061 hr = IXMLDOMComment_get_lastChild(node_comment, &nodeChild);
2063 ok(nodeChild ==
NULL,
"pLastChild not NULL\n");
2066 str = (
void *)0xdeadbeef;
2067 hr = IXMLDOMComment_get_baseName(node_comment, &
str);
2071 IXMLDOMComment_Release( node_comment );
2076 hr = IXMLDOMDocument_createAttribute(doc,
NULL,
NULL);
2078 hr = IXMLDOMDocument_createAttribute(doc,
str, &node_attr);
2080 IXMLDOMAttribute_Release( node_attr);
2085 hr = IXMLDOMDocument_createProcessingInstruction(doc,
str,
str,
NULL);
2087 hr = IXMLDOMDocument_createProcessingInstruction(doc,
NULL,
str, &nodePI);
2089 hr = IXMLDOMDocument_createProcessingInstruction(doc,
str,
str, &nodePI);
2093 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"xml"),
_bstr_(
"version=\"1.0\""), &nodePI);
2098 hr = IXMLDOMProcessingInstruction_get_lastChild(nodePI,
NULL);
2102 hr = IXMLDOMProcessingInstruction_get_lastChild(nodePI, &nodeChild);
2104 ok(nodeChild ==
NULL,
"nodeChild not NULL\n");
2107 hr = IXMLDOMProcessingInstruction_get_nodeName(nodePI, &
str);
2114 hr = IXMLDOMProcessingInstruction_get_baseName(nodePI, &
str);
2120 hr = IXMLDOMProcessingInstruction_get_target(nodePI, &
str);
2126 hr = IXMLDOMProcessingInstruction_get_data(nodePI, &
str);
2128 ok(!
lstrcmpW(
str,
L"version=\"1.0\""),
"incorrect data string\n");
2132 hr = IXMLDOMProcessingInstruction_put_data(nodePI,
_bstr_(
"version=\"1.0\" encoding=\"UTF-8\""));
2138 hr = IXMLDOMProcessingInstruction_put_nodeValue(nodePI,
var);
2143 hr = IXMLDOMProcessingInstruction_get_nodeName(nodePI, &
str);
2148 IXMLDOMProcessingInstruction_Release(nodePI);
2151 ref = IXMLDOMDocument_Release( doc );
2172 hr = IPersistStreamInit_InitNew(streaminit);
2175 hr = IPersistStreamInit_GetSizeMax(streaminit, &
size);
2185 hr = IPersistStreamInit_GetClassID(streaminit,
NULL);
2189 hr = IPersistStreamInit_GetClassID(streaminit, &
clsid);
2193 IPersistStream_Release(
stream);
2197 hr = IPersistStreamInit_Load(streaminit,
istream);
2203 hr = IPersistStreamInit_Load(streaminit,
istream);
2209 IPersistStreamInit_Release(streaminit);
2210 IXMLDOMDocument_Release(doc);
2232 ok(
hr ==
S_OK,
"loadXML failed\n");
2233 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
2237 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
2238 ok(
hr ==
S_OK,
"should be a document element\n");
2244 hr = IXMLDOMDocument_get_nodeValue( doc,
NULL );
2247 hr = IXMLDOMDocument_get_nodeValue( doc, &
var );
2248 ok(
hr ==
S_FALSE,
"get_nodeValue returned wrong code\n");
2257 hr = IXMLDOMElement_get_ownerDocument(
element, &owner );
2258 ok(
hr ==
S_OK,
"get_ownerDocument return code\n");
2259 ok( owner != doc,
"get_ownerDocument return\n");
2260 IXMLDOMDocument_Release(owner);
2269 ok(
hr ==
S_OK,
"get_baseName returned wrong code\n");
2312 ok(
attr !=
NULL,
"getAttributeNode returned NULL\n" );
2315 hr = IXMLDOMAttribute_get_parentNode(
attr,
NULL );
2320 hr = IXMLDOMAttribute_get_parentNode(
attr, &
node );
2324 IXMLDOMAttribute_Release(
attr);
2330 ok(
hr ==
S_OK,
"get_attributes returned wrong code\n");
2331 ok(
map !=
NULL,
"should be attributes\n");
2337 hr = IXMLDOMNodeList_nextNode(
list, &
node );
2339 IXMLDOMNode_Release(
node );
2340 hr = IXMLDOMNodeList_nextNode(
list, &
node );
2342 IXMLDOMNode_Release(
node );
2343 hr = IXMLDOMNodeList_nextNode(
list, &
node );
2345 hr = IXMLDOMNode_get_attributes(
node, &attributes );
2348 hr = IXMLDOMNamedNodeMap_nextNode( attributes, &
next );
2351 IXMLDOMNamedNodeMap_Release( attributes );
2352 IXMLDOMNode_Release(
node );
2355 IXMLDOMNodeList_Release(
list );
2364 hr = IXMLDOMNamedNodeMap_getNamedItem(
map,
str, &
node );
2365 ok(
hr ==
S_OK,
"getNamedItem returned wrong code\n");
2367 IXMLDOMNode_Release(
node);
2371 hr = IXMLDOMNamedNodeMap_getNamedItem(
map,
str,
NULL );
2378 hr = IXMLDOMNamedNodeMap_getNamedItem(
map,
str, &
node );
2379 ok(
hr ==
S_FALSE,
"getNamedItem found a node that wasn't there\n");
2380 ok(
node ==
NULL,
"getNamedItem should have returned NULL\n");
2384 hr = IXMLDOMNamedNodeMap_get_length(
map,
NULL );
2387 hr = IXMLDOMNamedNodeMap_get_length(
map, &
count );
2388 ok (
hr ==
S_OK,
"get_length wrong code\n");
2389 ok (
count == 1,
"get_length != 1\n");
2392 hr = IXMLDOMNamedNodeMap_get_item(
map, -1, &
node);
2393 ok (
hr ==
S_FALSE,
"get_item (-1) wrong code\n");
2397 hr = IXMLDOMNamedNodeMap_get_item(
map, 1, &
node);
2399 ok (
node ==
NULL,
"there is no attribute\n");
2402 hr = IXMLDOMNamedNodeMap_get_item(
map, 0, &
node);
2403 ok (
hr ==
S_OK,
"get_item (0) wrong code\n");
2411 hr = IXMLDOMNode_get_nodeName(
node, &
str );
2412 ok (
hr ==
S_OK,
"get_nodeName wrong code\n");
2416 IXMLDOMNode_Release(
node );
2420 hr = IXMLDOMNamedNodeMap_nextNode(
map, &
node );
2421 ok (
hr ==
S_OK,
"nextNode (first time) wrong code\n");
2422 ok (
node !=
NULL,
"nextNode, should be attribute\n");
2423 IXMLDOMNode_Release(
node );
2425 hr = IXMLDOMNamedNodeMap_nextNode(
map, &
node );
2426 ok (
hr !=
S_OK,
"nextNode (second time) wrong code\n");
2427 ok (
node ==
NULL,
"nextNode, there is no attribute\n");
2429 hr = IXMLDOMNamedNodeMap_reset(
map );
2430 ok (
hr ==
S_OK,
"reset should return S_OK\n");
2432 hr = IXMLDOMNamedNodeMap_nextNode(
map, &
node );
2433 ok (
hr ==
S_OK,
"nextNode (third time) wrong code\n");
2434 ok (
node !=
NULL,
"nextNode, should be attribute\n");
2443 ok(
hr ==
S_OK,
"get_nodeType returned wrong code\n");
2451 hr = IXMLDOMNode_get_baseName(
node, &
str );
2452 ok(
hr ==
S_OK,
"get_baseName returned wrong code\n");
2456 hr = IXMLDOMNode_get_childNodes(
node,
NULL );
2459 hr = IXMLDOMNode_get_childNodes(
node, &
list );
2460 ok(
hr ==
S_OK,
"get_childNodes returned wrong code\n");
2464 hr = IXMLDOMNodeList_nextNode(
list, &
next );
2465 ok(
hr ==
S_OK,
"nextNode returned wrong code\n");
2476 ok(
hr ==
S_OK,
"get_nodeType returned wrong code\n");
2479 str = (
void *)0xdeadbeef;
2480 hr = IXMLDOMNode_get_baseName(
next, &
str );
2481 ok(
hr ==
S_FALSE,
"get_baseName returned wrong code\n");
2482 ok(
str ==
NULL,
"basename was wrong\n");
2489 IXMLDOMNode_Release(
next );
2492 IXMLDOMNodeList_Release(
list );
2495 IXMLDOMNode_Release(
node );
2502 IXMLDOMNamedNodeMap_Release(
map );
2508 ok(
hr ==
S_OK,
"get_childNodes returned wrong code\n");
2511 hr = IXMLDOMNodeList_get_item(
list, 1, &
node);
2514 IXMLDOMNode_Release(
node);
2518 IXMLDOMNode_Release(
node);
2519 hr = IXMLDOMNodeList_reset(
list);
2522 IXMLDOMNodeList_AddRef(
list);
2524 hr = IXMLDOMNodeList_reset(
list);
2527 node = (
void*)0xdeadbeef;
2534 node = (
void*)0xdeadbeef;
2543 IXMLDOMNode_Release(
node );
2550 hr = IXMLDOMNodeList_get_item(
list, 0,
NULL);
2563 hr = IXMLDOMNodeList_nextNode(
list, &
node );
2564 ok(
hr ==
S_OK,
"nextNode returned wrong code\n");
2573 ok(
hr ==
S_OK,
"get_nodeType returned wrong code\n");
2576 hr = IXMLDOMNode_hasChildNodes(
node,
NULL );
2582 hr = IXMLDOMNode_get_baseName(
node, &
str );
2583 ok(
hr ==
S_OK,
"get_baseName returned wrong code\n");
2591 IXMLDOMNode_Release(
node );
2593 IXMLDOMNodeList_Release(
list );
2595 IXMLDOMElement_Release(
element );
2599 hr = IXMLDOMDocument_loadXML( doc,
str, &
b );
2600 ok(
hr ==
S_OK,
"loadXML failed\n");
2601 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
2606 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
2607 ok(
hr ==
S_OK,
"should be a document element\n");
2616 ok(
hr ==
S_OK,
"couldn't get tag name\n");
2621 IXMLDOMElement_Release(
element );
2623 ok(IXMLDOMDocument_Release( doc ) == 0,
"document is not destroyed\n");
2663 IUnknown *node_typed, *node_typed2;
2695 todo_wine ok(disp != disp2,
"%d: got %p and %p\n",
ptr->type, disp, disp2);
2699 IDispatch_Release(disp);
2700 IDispatch_Release(disp2);
2704 hr = IUnknown_QueryInterface(unk, &IID_IXMLDOMNode, (
void**)&node2);
2711 hr = IUnknown_QueryInterface(unk, &IID_IXMLDOMNode, (
void**)&node3);
2713 todo_wine ok(node2 != node3,
"%d: got %p and %p\n",
ptr->type, node2, node3);
2717 IXMLDOMNode_Release(node2);
2718 IXMLDOMNode_Release(node3);
2722 hr = IUnknown_QueryInterface(unk, &IID_IDispatchEx, (
void**)&dispex);
2724 ok(unk != (
IUnknown*)dispex,
"%d: got %p and %p\n",
ptr->type, unk, dispex);
2729 hr = IUnknown_QueryInterface(unk, &IID_IDispatchEx, (
void**)&dispex2);
2731 todo_wine ok(dispex != dispex2,
"%d: got %p and %p\n",
ptr->type, dispex, dispex2);
2735 IDispatchEx_Release(dispex);
2736 IDispatchEx_Release(dispex2);
2740 hr = IUnknown_QueryInterface(unk,
ptr->iid, (
void**)&node_typed);
2743 hr = IUnknown_QueryInterface(unk,
ptr->iid, (
void**)&node_typed2);
2746 todo_wine ok(node_typed != node_typed2,
"%d: got %p and %p\n",
ptr->type, node_typed, node_typed2);
2747 IUnknown_Release(node_typed);
2748 IUnknown_Release(node_typed2);
2751 hr = IUnknown_QueryInterface(unk, (
ptr+1)->iid, (
void**)&node_typed);
2754 IUnknown_Release(unk);
2757 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMNode, (
void**)&node2);
2760 ok(
node == node2,
"%d: got %p and %p\n",
ptr->type,
node, node2);
2763 hr = IXMLDOMNode_QueryInterface(
node,
ptr->iid, (
void**)&node_typed);
2770 IUnknown_Release(node_typed);
2772 IXMLDOMNode_Release(node2);
2773 IXMLDOMNode_Release(
node);
2779 ref = IXMLDOMDocument_Release(doc);
2785 hr = IXMLDOMDocument_QueryInterface(doc, &
IID_IUnknown, (
void**)&unk);
2791 IXMLDOMDocument_Release(doc);
2793 IUnknown_Release(unk);
2798 hr = IXMLDOMDocument_QueryInterface(doc, &
IID_IUnknown, (
void**)&unk);
2804 IUnknown_Release(unk);
2808 hr = IXMLDOMDocument_get_implementation(doc, &impl);
2812 hr = IXMLDOMDocument_get_implementation(doc, &impl2);
2816 ok(impl != impl2,
"got %p, %p\n", impl, impl2);
2817 IXMLDOMImplementation_Release(impl);
2818 IXMLDOMImplementation_Release(impl2);
2822 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
2825 IXMLDOMDocument_AddRef( doc );
2827 IXMLDOMDocument_AddRef( doc );
2830 IXMLDOMDocument_Release( doc );
2831 IXMLDOMDocument_Release( doc );
2834 hr = IXMLDOMDocument_QueryInterface(doc, &
IID_IUnknown, (
void**)&unk);
2840 hr = IXMLDOMDocument_get_documentElement(doc, &
element);
2846 hr = IXMLDOMDocument_get_documentElement(doc, &elem2);
2854 IXMLDOMElement_AddRef(
element);
2856 IXMLDOMElement_Release(
element);
2866 hr = IXMLDOMElement_QueryInterface(elem2, &
IID_IUnknown, (
void**)&unk2);
2875 todo_wine ok(unk == unk2,
"got %p and %p\n", unk, unk2);
2876 IUnknown_Release(unk);
2880 IXMLDOMElement_AddRef(elem2);
2882 IXMLDOMElement_Release(elem2);
2884 IXMLDOMElement_Release(elem2);
2887 IUnknown_Release(unk2);
2889 hr = IXMLDOMElement_get_childNodes(
element, &node_list );
2895 hr = IXMLDOMNodeList_get_item( node_list, 0, &
node );
2900 hr = IXMLDOMNodeList_get_item( node_list, 0, &node2 );
2905 ref = IXMLDOMNode_Release(
node );
2907 ref = IXMLDOMNode_Release( node2 );
2910 ref = IXMLDOMNodeList_Release( node_list );
2913 ok(
node != node2,
"node %p node2 %p\n",
node, node2 );
2915 ref = IXMLDOMDocument_Release( doc );
2924 hr = IXMLDOMElement_QueryInterface(
element, &IID_IXMLDOMNode, (
void**)&
node);
2930 ok(unk == unk2,
"unk %p unk2 %p\n", unk, unk2);
2933 IUnknown_Release( unk2 );
2934 IUnknown_Release( unk );
2935 IXMLDOMNode_Release(
node );
2938 IXMLDOMElement_Release(
element );
2969 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
2976 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
2983 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
2990 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3000 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMComment, (
void**)&
comment);
3002 IXMLDOMNode_Release(
node);
3008 IXMLDOMComment_Release(
comment);
3015 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMComment, (
void**)&
comment);
3017 IXMLDOMNode_Release(
node);
3023 IXMLDOMComment_Release(
comment);
3030 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMComment, (
void**)&
comment);
3032 IXMLDOMNode_Release(
node);
3038 IXMLDOMComment_Release(
comment);
3049 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMText, (
void**)&
text);
3051 IXMLDOMNode_Release(
node);
3057 IXMLDOMText_Release(
text);
3064 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMText, (
void**)&
text);
3066 IXMLDOMNode_Release(
node);
3072 IXMLDOMText_Release(
text);
3079 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMText, (
void**)&
text);
3081 IXMLDOMNode_Release(
node);
3087 IXMLDOMText_Release(
text);
3098 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMCDATASection, (
void**)&cdata);
3100 IXMLDOMNode_Release(
node);
3103 hr = IXMLDOMCDATASection_get_data(cdata, &
str);
3106 IXMLDOMCDATASection_Release(cdata);
3113 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMCDATASection, (
void**)&cdata);
3115 IXMLDOMNode_Release(
node);
3118 hr = IXMLDOMCDATASection_get_data(cdata, &
str);
3121 IXMLDOMCDATASection_Release(cdata);
3128 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMCDATASection, (
void**)&cdata);
3130 IXMLDOMNode_Release(
node);
3133 hr = IXMLDOMCDATASection_get_data(cdata, &
str);
3136 IXMLDOMCDATASection_Release(cdata);
3145 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3152 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3170 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3179 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3186 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3199 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3206 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3214 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3221 ok(
node == (
void*)0x1,
"expected same ptr, got %p\n",
node);
3261 hr = IXMLDOMDocument_appendChild( doc,
node, &
root );
3268 ref = IXMLDOMNode_Release(
node );
3294 IXMLDOMNode_Release(
child );
3295 IUnknown_Release( unk );
3302 IXMLDOMNode_Release(
child );
3308 IXMLDOMNode_Release(
node );
3310 hr = IXMLDOMNode_QueryInterface(
root, &IID_IXMLDOMElement, (
void**)&
element );
3313 hr = IXMLDOMElement_get_attributes(
element, &attr_map );
3315 hr = IXMLDOMNamedNodeMap_get_length( attr_map, &
num );
3318 IXMLDOMNamedNodeMap_Release( attr_map );
3325 hr = IXMLDOMElement_get_attributes(
element, &attr_map );
3327 hr = IXMLDOMNamedNodeMap_get_length( attr_map, &
num );
3330 IXMLDOMNamedNodeMap_Release( attr_map );
3337 hr = IXMLDOMElement_get_attributes(
element, &attr_map );
3339 hr = IXMLDOMNamedNodeMap_get_length( attr_map, &
num );
3342 IXMLDOMNamedNodeMap_Release( attr_map );
3355 hr = IXMLDOMElement_get_attributes(
element, &attr_map );
3357 hr = IXMLDOMNamedNodeMap_get_length( attr_map, &
num );
3360 IXMLDOMNamedNodeMap_Release( attr_map );
3385 IXMLDOMElement_Release(
element );
3386 IXMLDOMNode_Release(
root );
3387 IXMLDOMDocument_Release( doc );
3397 {
"",
"P1.D1 E2.D1 E1.E2.D1 T1.E1.E2.D1 E2.E2.D1 T1.E2.E2.D1 E3.E2.D1 E4.E2.D1 E1.E4.E2.D1 T1.E1.E4.E2.D1", 10 },
3398 {
"*",
"E2.D1 E1.E2.D1 E2.E2.D1 E3.E2.D1 E4.E2.D1 E1.E4.E2.D1", 6 },
3399 {
"bs",
"E1.E2.D1", 1 },
3420 ok(
hr ==
S_OK,
"loadXML failed\n");
3421 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3424 hr = IXMLDOMDocument_getElementsByTagName(doc,
NULL, &node_list);
3426 hr = IXMLDOMDocument_getElementsByTagName(doc,
_bstr_(
"*"),
NULL);
3431 hr = IXMLDOMDocument_getElementsByTagName(doc,
_bstr_(
ptr->query), &node_list);
3433 hr = IXMLDOMNodeList_get_length(node_list, &
len);
3435 ok(
len ==
ptr->len,
"%s: got len %ld, expected %d\n",
ptr->query,
len,
ptr->len);
3446 hr = IXMLDOMDocument_getElementsByTagName(doc, &
buff[2], &node_list);
3448 hr = IXMLDOMNodeList_get_length( node_list, &
len );
3451 IXMLDOMNodeList_Release( node_list );
3454 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
3460 hr = IXMLDOMElement_getElementsByTagName(
elem,
NULL, &node_list);
3465 hr = IXMLDOMElement_getElementsByTagName(
elem,
str, &node_list);
3467 hr = IXMLDOMNodeList_get_length( node_list, &
len );
3477 hr = IXMLDOMElement_getElementsByTagName(
elem, &
buff[2], &node_list);
3479 hr = IXMLDOMNodeList_get_length( node_list, &
len );
3482 IXMLDOMNodeList_Release( node_list );
3484 IXMLDOMElement_Release(
elem);
3486 IXMLDOMDocument_Release( doc );
3506 ok(
hr ==
S_OK,
"loadXML failed\n");
3507 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3510 hr = IXMLDOMDocument_getElementsByTagName( doc,
str, &node_list );
3515 hr = IXMLDOMDocument_QueryInterface(doc, &IID_IXMLDOMNode, (
void**)&nodeRoot);
3519 hr = IXMLDOMNode_get_text( nodeRoot, &
str );
3523 IXMLDOMNode_Release(nodeRoot);
3526 hr = IXMLDOMNodeList_get_length( node_list,
NULL );
3529 hr = IXMLDOMNodeList_get_length( node_list, &
len );
3531 ok(
len == 1,
"expect 1 got %ld\n",
len );
3533 hr = IXMLDOMNodeList_get_item( node_list, 0,
NULL );
3536 hr = IXMLDOMNodeList_nextNode( node_list,
NULL );
3539 hr = IXMLDOMNodeList_get_item( node_list, 0, &
node );
3541 IXMLDOMNodeList_Release( node_list );
3547 hr = IXMLDOMNode_get_text(
node, &
str );
3552 hr = IXMLDOMNode_get_attributes(
node, &node_map );
3556 hr = IXMLDOMNamedNodeMap_getNamedItem( node_map,
str, &node2 );
3560 hr = IXMLDOMNode_get_text( node2, &
str );
3565 hr = IXMLDOMNode_get_firstChild( node2, &node3 );
3568 hr = IXMLDOMNode_get_text( node3, &
str );
3574 IXMLDOMNode_Release( node3 );
3575 IXMLDOMNode_Release( node2 );
3576 IXMLDOMNamedNodeMap_Release( node_map );
3577 IXMLDOMNode_Release(
node );
3578 IXMLDOMDocument_Release( doc );
3602 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3604 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
3607 hr = IXMLDOMElement_get_childNodes(
element, &node_list );
3610 hr = IXMLDOMNodeList_get_length( node_list, &
len );
3616 hr = IXMLDOMNodeList_QueryInterface(node_list, &IID_IEnumVARIANT, (
void**)&enum1);
3622 hr = IXMLDOMNodeList_QueryInterface(node_list, &IID_IEnumVARIANT, (
void**)&enum2);
3625 ok(enum2 == enum1,
"got %p, %p\n", enum2, enum1);
3626 IEnumVARIANT_Release(enum2);
3630 hr = IEnumVARIANT_QueryInterface(enum1, &
IID_IUnknown, (
void**)&unk2);
3634 ok(
unk1 == unk2,
"got %p, %p\n",
unk1, unk2);
3635 IUnknown_Release(
unk1);
3636 IUnknown_Release(unk2);
3639 hr = IXMLDOMNodeList__newEnum(node_list, (
IUnknown**)&enum2);
3643 ok(enum2 != enum1,
"got %p, %p\n", enum2, enum1);
3648 hr = IEnumVARIANT_QueryInterface(enum2, &
IID_IUnknown, (
void**)&unk2);
3652 ok(
unk1 != unk2,
"got %p, %p\n",
unk1, unk2);
3653 IUnknown_Release(
unk1);
3654 IUnknown_Release(unk2);
3656 hr = IXMLDOMNodeList__newEnum(node_list, (
IUnknown**)&enum3);
3658 ok(enum2 != enum3,
"got %p, %p\n", enum2, enum3);
3659 IEnumVARIANT_Release(enum3);
3660 IEnumVARIANT_Release(enum2);
3663 hr = IXMLDOMNodeList_get_item(node_list, 0, &
node);
3665 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3669 IXMLDOMNode_Release(
node);
3671 hr = IXMLDOMNodeList_nextNode(node_list, &
node);
3673 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3677 IXMLDOMNode_Release(
node);
3680 hr = IEnumVARIANT_Next(enum1, 1, &
v[0],
NULL);
3683 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[0]), &IID_IXMLDOMNode, (
void**)&
node);
3685 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3689 IXMLDOMNode_Release(
node);
3694 hr = IEnumVARIANT_Next(enum1, 2,
v, &fetched);
3698 ok(fetched == 2,
"got %ld, expected 2\n", fetched);
3699 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[0]), &IID_IXMLDOMNode, (
void**)&
node);
3701 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3705 IXMLDOMNode_Release(
node);
3706 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[1]), &IID_IXMLDOMNode, (
void**)&
node);
3708 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3712 IXMLDOMNode_Release(
node);
3718 hr = IEnumVARIANT_Next(enum1, 2,
v, &fetched);
3722 ok(fetched == 1,
"got %ld, expected 1\n", fetched);
3723 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[0]), &IID_IXMLDOMNode, (
void**)&
node);
3725 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3731 hr = IXMLDOMNodeList_nextNode(node_list, &
node);
3733 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3737 IXMLDOMNode_Release(
node);
3739 IEnumVARIANT_Release(enum1);
3741 hr = IXMLDOMNodeList_get_item( node_list, 2, &
node );
3744 hr = IXMLDOMNode_get_childNodes(
node, &node_list2 );
3747 hr = IXMLDOMNodeList_get_length( node_list2, &
len );
3751 hr = IXMLDOMNodeList_get_item( node_list2, 0, &node2);
3754 IXMLDOMNodeList_Release( node_list2 );
3755 IXMLDOMNode_Release(
node );
3756 IXMLDOMNodeList_Release( node_list );
3757 IXMLDOMElement_Release(
element );
3760 hr = IXMLDOMDocument_get_firstChild(doc, &
node);
3764 hr = IXMLDOMNode_get_nodeName(
node, &
str);
3770 node_list = (
void*)0xdeadbeef;
3771 hr = IXMLDOMNode_get_childNodes(
node, &node_list);
3775 hr = IXMLDOMNodeList_get_length(node_list, &
len);
3779 IXMLDOMNodeList_Release( node_list );
3780 IXMLDOMNode_Release(
node);
3782 IXMLDOMDocument_Release( doc );
3797 ok(
hr ==
S_OK,
"loadXML failed\n");
3798 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3800 hr = IXMLDOMDocument_get_firstChild( doc, &
node );
3803 hr = IXMLDOMNode_get_nodeName(
node, &
str );
3809 IXMLDOMNode_Release(
node );
3810 IXMLDOMDocument_Release( doc );
3826 ok(
hr ==
S_OK,
"loadXML failed\n");
3827 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3829 hr = IXMLDOMDocument_get_lastChild( doc, &
node );
3832 hr = IXMLDOMNode_get_nodeName(
node, &
str );
3841 hr = IXMLDOMNode_get_nodeName(
child, &
str );
3847 IXMLDOMNode_Release(
child );
3848 IXMLDOMNode_Release(
node );
3849 IXMLDOMDocument_Release( doc );
3859 IXMLDOMNode *fo_node, *ba_node, *removed_node, *temp_node, *lc_node;
3866 ok(
hr ==
S_OK,
"loadXML failed\n");
3867 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3869 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
3873 hr = IXMLDOMElement_get_childNodes(
element, &root_list );
3877 hr = IXMLDOMNodeList_get_item( root_list, 3, &fo_node );
3881 hr = IXMLDOMNode_get_childNodes( fo_node, &fo_list );
3885 hr = IXMLDOMNodeList_get_item( fo_list, 0, &ba_node );
3890 removed_node = (
void*)0xdeadbeef;
3891 hr = IXMLDOMElement_removeChild(
element,
NULL, &removed_node );
3893 ok( removed_node == (
void*)0xdeadbeef,
"%p\n", removed_node );
3896 removed_node = (
void*)0xdeadbeef;
3899 hr = IXMLDOMElement_removeChild(
element, ba_node, &removed_node );
3901 ok( removed_node ==
NULL,
"%p\n", removed_node );
3907 hr = IXMLDOMElement_removeChild(
element, fo_node, &removed_node );
3909 ok( fo_node == removed_node,
"node %p node2 %p\n", fo_node, removed_node );
3914 temp_node = (
void*)0xdeadbeef;
3915 hr = IXMLDOMElement_removeChild(
element, fo_node, &temp_node );
3917 ok( temp_node ==
NULL,
"%p\n", temp_node );
3918 IXMLDOMNode_Release( fo_node );
3921 hr = IXMLDOMNode_get_parentNode( removed_node, &temp_node );
3923 ok( temp_node ==
NULL,
"%p\n", temp_node );
3925 IXMLDOMNode_Release( removed_node );
3926 IXMLDOMNode_Release( ba_node );
3927 IXMLDOMNodeList_Release( fo_list );
3929 hr = IXMLDOMNodeList_get_item( root_list, 0, &lc_node );
3932 hr = IXMLDOMNode_QueryInterface( lc_node, &IID_IXMLDOMElement, (
void**)&lc_element );
3938 IXMLDOMElement_Release( lc_element );
3940 temp_node = (
void*)0xdeadbeef;
3941 hr = IXMLDOMNode_get_parentNode( lc_node, &temp_node );
3943 ok( temp_node ==
NULL,
"%p\n", temp_node );
3945 IXMLDOMNode_Release( lc_node );
3946 IXMLDOMNodeList_Release( root_list );
3947 IXMLDOMElement_Release(
element );
3948 IXMLDOMDocument_Release( doc );
3958 IXMLDOMNode *fo_node, *ba_node, *lc_node, *removed_node, *temp_node;
3967 ok(
hr ==
S_OK,
"loadXML failed\n");
3968 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
3970 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
3973 hr = IXMLDOMElement_get_childNodes(
element, &root_list );
3976 hr = IXMLDOMNodeList_get_item( root_list, 0, &lc_node );
3979 hr = IXMLDOMNodeList_get_item( root_list, 3, &fo_node );
3982 hr = IXMLDOMNode_get_childNodes( fo_node, &fo_list );
3985 hr = IXMLDOMNodeList_get_item( fo_list, 0, &ba_node );
3988 IXMLDOMNodeList_Release( fo_list );
3991 removed_node = (
void*)0xdeadbeef;
3992 hr = IXMLDOMElement_replaceChild(
element, ba_node,
NULL, &removed_node );
3994 ok( removed_node == (
void*)0xdeadbeef,
"%p\n", removed_node );
3997 removed_node = (
void*)0xdeadbeef;
3998 hr = IXMLDOMElement_replaceChild(
element,
NULL, fo_node, &removed_node );
4000 ok( removed_node == (
void*)0xdeadbeef,
"%p\n", removed_node );
4003 removed_node = (
void*)0xdeadbeef;
4004 hr = IXMLDOMElement_replaceChild(
element, lc_node, ba_node, &removed_node );
4006 ok( removed_node ==
NULL,
"%p\n", removed_node );
4007 IXMLDOMNode_Release( lc_node );
4010 removed_node = (
void*)0xdeadbeef;
4011 hr = IXMLDOMNode_replaceChild( fo_node, fo_node, ba_node, &removed_node );
4013 ok( removed_node ==
NULL,
"%p\n", removed_node );
4015 hr = IXMLDOMElement_replaceChild(
element, ba_node, fo_node,
NULL );
4018 hr = IXMLDOMNodeList_get_item( root_list, 3, &temp_node );
4023 ok( ba_node != temp_node,
"ba_node %p temp_node %p\n", ba_node, temp_node);
4026 hr = IXMLDOMNode_QueryInterface( ba_node, &
IID_IUnknown, (
void**)&unk2);
4030 IUnknown_Release(
unk1 );
4031 IUnknown_Release( unk2 );
4034 hr = IXMLDOMNode_get_childNodes( fo_node, &fo_list );
4038 hr = IXMLDOMNode_QueryInterface( ba_node, &IID_IXMLDOMElement, (
void**)&ba_element);
4042 removed_node =
NULL;
4045 ok( removed_node !=
NULL,
"got %p\n", removed_node);
4047 IXMLDOMElement_Release( ba_element );
4049 hr = IXMLDOMNodeList_get_length( fo_list, &
len);
4053 IXMLDOMNodeList_Release( fo_list );
4055 IXMLDOMNode_Release(ba_node);
4056 IXMLDOMNode_Release(fo_node);
4057 IXMLDOMNode_Release(temp_node);
4058 IXMLDOMNodeList_Release( root_list );
4059 IXMLDOMElement_Release(
element );
4060 IXMLDOMDocument_Release( doc );
4080 ok(
hr ==
S_OK,
"loadXML failed\n");
4081 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4083 hr = IXMLDOMDocument_get_documentElement( doc, &
element );
4086 hr = IXMLDOMElement_get_childNodes(
element, &root_list );
4089 hr = IXMLDOMNodeList_get_item( root_list, 1, &
node );
4092 hr = IXMLDOMNode_get_attributes(
node, &
map );
4095 hr = IXMLDOMNamedNodeMap_get_length(
map, &
len );
4097 ok(
len == 3,
"length %ld\n",
len);
4099 removed_node = (
void*)0xdeadbeef;
4100 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
NULL, &removed_node );
4102 ok(removed_node == (
void*)0xdeadbeef,
"got %p\n", removed_node);
4104 removed_node = (
void*)0xdeadbeef;
4106 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
str, &removed_node );
4109 removed_node2 = (
void*)0xdeadbeef;
4110 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
str, &removed_node2 );
4112 ok(removed_node2 ==
NULL,
"got %p\n", removed_node2 );
4114 hr = IXMLDOMNamedNodeMap_get_length(
map, &
len );
4118 hr = IXMLDOMNamedNodeMap_setNamedItem(
map, removed_node,
NULL );
4120 IXMLDOMNode_Release(removed_node);
4122 hr = IXMLDOMNamedNodeMap_get_length(
map, &
len );
4126 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
str,
NULL );
4129 hr = IXMLDOMNamedNodeMap_get_length(
map, &
len );
4133 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
str,
NULL );
4138 IXMLDOMNamedNodeMap_Release(
map );
4139 IXMLDOMNode_Release(
node );
4140 IXMLDOMNodeList_Release( root_list );
4141 IXMLDOMElement_Release(
element );
4147 hr = IXMLDOMDocument_selectSingleNode( doc,
_bstr_(
"a"), &
node );
4150 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMElement, (
void**)&
element );
4152 IXMLDOMNode_Release(
node );
4157 removed_node = (
void*)0xdeadbeef;
4158 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
_bstr_(
"foo:bar"), &removed_node );
4160 ok ( removed_node ==
NULL,
"got %p\n", removed_node );
4162 removed_node =
NULL;
4163 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
_bstr_(
"d"), &removed_node );
4165 IXMLDOMNode_Release( removed_node );
4167 removed_node =
NULL;
4168 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
_bstr_(
"ns:b"), &removed_node );
4170 IXMLDOMNode_Release( removed_node );
4172 removed_node =
NULL;
4173 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
_bstr_(
"xml:lang"), &removed_node );
4175 IXMLDOMNode_Release( removed_node );
4178 hr = IXMLDOMNamedNodeMap_get_length(
map, &
len );
4180 ok(
len == 2,
"length %ld\n",
len );
4182 IXMLDOMNamedNodeMap_Release(
map );
4183 IXMLDOMElement_Release(
element );
4184 IXMLDOMDocument_Release( doc );
4188#define test_IObjectSafety_set(p, r, r2, s, m, e, e2) _test_IObjectSafety_set(__LINE__,p, r, r2, s, m, e, e2)
4196 hr = IObjectSafety_SetInterfaceSafetyOptions(safety,
NULL,
set,
mask);
4201 "SetInterfaceSafetyOptions: expected %#lx, got %#lx\n", result2,
hr );
4203 supported =
enabled = 0xCAFECAFE;
4204 hr = IObjectSafety_GetInterfaceSafetyOptions(safety,
NULL, &supported, &
enabled);
4205 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
4210 "Expected %#lx, got %#lx\n", expected2,
enabled);
4214 hr = IObjectSafety_SetInterfaceSafetyOptions(safety,
NULL,
4215 INTERFACESAFE_FOR_UNTRUSTED_CALLER|INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_SECURITY_MANAGER,
4219 hr = IObjectSafety_GetInterfaceSafetyOptions(safety,
NULL, &supported, &
enabled);
4224#define test_IObjectSafety_common(s) _test_IObjectSafety_common(__LINE__,s)
4233 hr = IObjectSafety_GetInterfaceSafetyOptions(safety,
NULL, &supported,
NULL);
4236 hr = IObjectSafety_GetInterfaceSafetyOptions(safety,
NULL, &supported, &
enabled);
4238 ok_(__FILE__,
line)(
broken(supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA)) ||
4239 supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER) ,
4240 "Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER), "
4241 "got %#lx\n", supported);
4247 INTERFACESAFE_FOR_UNTRUSTED_CALLER, INTERFACESAFE_FOR_UNTRUSTED_CALLER,
4248 INTERFACESAFE_FOR_UNTRUSTED_CALLER, INTERFACESAFE_FOR_UNTRUSTED_CALLER);
4251 INTERFACESAFE_FOR_UNTRUSTED_DATA, INTERFACESAFE_FOR_UNTRUSTED_DATA,
4252 INTERFACESAFE_FOR_UNTRUSTED_DATA, INTERFACESAFE_FOR_UNTRUSTED_DATA);
4255 INTERFACE_USES_SECURITY_MANAGER, INTERFACE_USES_SECURITY_MANAGER,
4256 0, INTERFACE_USES_SECURITY_MANAGER );
4261 INTERFACE_USES_DISPEX, INTERFACE_USES_DISPEX,
4265 INTERFACE_USES_DISPEX, 0,
4269 0, INTERFACE_USES_DISPEX,
4275 INTERFACESAFE_FOR_UNTRUSTED_CALLER|INTERFACESAFE_FOR_UNTRUSTED_DATA,
4276 INTERFACESAFE_FOR_UNTRUSTED_CALLER,
4277 INTERFACESAFE_FOR_UNTRUSTED_CALLER,
4278 INTERFACESAFE_FOR_UNTRUSTED_CALLER);
4281 INTERFACESAFE_FOR_UNTRUSTED_CALLER|INTERFACESAFE_FOR_UNTRUSTED_DATA,
4282 INTERFACESAFE_FOR_UNTRUSTED_DATA,
4283 INTERFACESAFE_FOR_UNTRUSTED_DATA,
4284 INTERFACESAFE_FOR_UNTRUSTED_DATA);
4287 INTERFACESAFE_FOR_UNTRUSTED_CALLER|INTERFACESAFE_FOR_UNTRUSTED_DATA,
4288 INTERFACE_USES_SECURITY_MANAGER,
4294 hr = IObjectSafety_SetInterfaceSafetyOptions(safety,
NULL,
4295 INTERFACESAFE_FOR_UNTRUSTED_CALLER,
4296 INTERFACESAFE_FOR_UNTRUSTED_CALLER);
4298 hr = IObjectSafety_GetInterfaceSafetyOptions(safety,
NULL, &supported, &
enabled);
4300 ok_(__FILE__,
line)(
enabled == INTERFACESAFE_FOR_UNTRUSTED_CALLER,
"Expected INTERFACESAFE_FOR_UNTRUSTED_CALLER got %#lx\n",
enabled);
4301 ok_(__FILE__,
line)(
broken(supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA)) ||
4302 supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER) ,
4303 "Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER), "
4304 "got %#lx.\n", supported);
4306 hr = IObjectSafety_SetInterfaceSafetyOptions(safety,
NULL,
4307 INTERFACESAFE_FOR_UNTRUSTED_DATA,
4308 INTERFACESAFE_FOR_UNTRUSTED_DATA);
4310 hr = IObjectSafety_GetInterfaceSafetyOptions(safety,
NULL, &supported, &
enabled);
4313 enabled == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA),
4314 "Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA) got %#lx\n",
enabled);
4315 ok_(__FILE__,
line)(
broken(supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA)) ||
4316 supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER) ,
4317 "Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER), "
4318 "got %#lx\n", supported);
4337 hr = IXMLDOMDocument_QueryInterface( doc, &IID_IXMLDOMDocument2, (
void**)&doc2 );
4341 hr = IXMLDOMDocument2_get_readyState(doc2,
NULL);
4343 hr = IXMLDOMDocument2_get_readyState(doc2, &
res);
4345 ok(
res == READYSTATE_COMPLETE,
"expected READYSTATE_COMPLETE (4), got %ld\n",
res);
4348 hr = IXMLDOMDocument2_validate(doc2,
NULL);
4350 hr = IXMLDOMDocument2_validate(doc2, &
err);
4352 ok(
err !=
NULL,
"expected a pointer\n");
4356 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4359 ok(
res == E_XML_NOTWF,
"Unexpected code %#lx.\n",
res);
4360 IXMLDOMParseError_Release(
err);
4364 ok(
hr ==
S_OK,
"loadXML failed\n");
4365 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4367 hr = IXMLDOMDocument_get_readyState(doc, &
res);
4369 ok(
res == READYSTATE_COMPLETE,
"expected READYSTATE_COMPLETE (4), got %ld\n",
res);
4372 hr = IXMLDOMDocument2_validate(doc2, &
err);
4374 ok(
err !=
NULL,
"expected a pointer\n");
4378 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4381 ok(
res == E_XML_NODTD,
"Unexpected code %#lx.\n",
res);
4382 IXMLDOMParseError_Release(
err);
4385 hr = IXMLDOMDocument_QueryInterface( doc, &IID_IDispatchEx, (
void**)&dispex );
4388 IDispatchEx_Release(dispex);
4391 IXMLDOMDocument2_AddRef(doc2);
4398 hr = IXMLDOMDocument2_getProperty(doc2,
_bstr_(
"askldhfaklsdf"), &
var);
4401 hr = IXMLDOMDocument2_getProperty(doc2,
_bstr_(
"SelectionLanguage"),
NULL);
4405 hr = IXMLDOMDocument2_getProperty(doc2,
_bstr_(
"SelectionLanguage"), &
var);
4412 expect_eq(IXMLDOMDocument2_Release(doc2), 2,
int,
"%d");
4415 hr = IXMLDOMDocument2_setProperty(doc2,
_bstr_(
"askldhfaklsdf"),
var);
4417 hr = IXMLDOMDocument2_setProperty(doc2,
_bstr_(
"SelectionLanguage"),
var);
4419 hr = IXMLDOMDocument2_setProperty(doc2,
_bstr_(
"SelectionLanguage"),
_variantbstr_(
"alskjdh faklsjd hfk"));
4430 hr = IXMLDOMDocument2_setProperty(doc2,
_bstr_(
"SelectionNamespaces"),
var);
4436 hr = IXMLDOMDocument2_setProperty(doc2,
_bstr_(
"SelectionNamespaces"),
var);
4440 hr = IXMLDOMDocument2_getProperty(doc2,
_bstr_(
"SelectionLanguage"), &
var);
4445 IXMLDOMDocument2_Release( doc2 );
4446 IXMLDOMDocument_Release( doc );
4449 hr = IXMLDOMDocument2_put_validateOnParse(dtddoc2, VARIANT_FALSE);
4453 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4455 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4461 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4463 ok(
res == 0,
"Unexpected code %#lx.\n",
res);
4464 IXMLDOMParseError_Release(
err);
4469 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4471 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4477 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4481 IXMLDOMParseError_Release(
err);
4486 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4488 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4494 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4498 IXMLDOMParseError_Release(
err);
4503 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4505 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4511 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4515 IXMLDOMParseError_Release(
err);
4520 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4522 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4528 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4532 IXMLDOMParseError_Release(
err);
4537 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4539 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4545 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4549 IXMLDOMParseError_Release(
err);
4554 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4556 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4562 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4566 IXMLDOMParseError_Release(
err);
4571 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4573 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4579 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4583 IXMLDOMParseError_Release(
err);
4588 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4590 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4596 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4600 IXMLDOMParseError_Release(
err);
4605 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4607 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4613 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4617 IXMLDOMParseError_Release(
err);
4622 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4624 hr = IXMLDOMDocument2_validate(dtddoc2, &
err);
4630 hr = IXMLDOMParseError_get_errorCode(
err, &
res);
4634 IXMLDOMParseError_Release(
err);
4637 IXMLDOMDocument2_Release( dtddoc2 );
4641#define helper_ole_check_ver(expr) { \
4642 HRESULT hr = expr; \
4643 ok_(__FILE__, line)(hr == S_OK, "-> %i (%s): " #expr " returned %#lx.\n", __LINE__, ver, hr); \
4646#define helper_expect_list_and_release(list, expstr) { \
4647 char *str = list_to_string(list); \
4648 ok_(__FILE__, line)(strcmp(str, expstr)==0, "=> %i (%s): Invalid node list: %s, expected %s\n", __LINE__, ver, str, expstr); \
4649 if (list) IXMLDOMNodeList_Release(list); \
4652#define helper_expect_bstr_and_release(bstr, str) { \
4653 ok_(__FILE__, line)(lstrcmpW(bstr, _bstr_(str)) == 0, \
4654 "=> %i (%s): got %s\n", __LINE__, ver, wine_dbgstr_w(bstr)); \
4655 SysFreeString(bstr); \
4658#define check_ws_ignored(ver, doc, str) _check_ws_ignored(__LINE__, ver, doc, str)
4673 "[4]1.E1.E5.E1.E2.D1 T2.E1.E5.E1.E2.D1 E3.E1.E5.E1.E2.D1 "
4674 "E4.E1.E5.E1.E2.D1 E5.E1.E5.E1.E2.D1 E6.E1.E5.E1.E2.D1");
4684 IXMLDOMNode_Release(node1);
4688 "T1.E2.E5.E1.E2.D1 E2.E2.E5.E1.E2.D1 T3.E2.E5.E1.E2.D1 "
4689 "E4.E2.E5.E1.E2.D1 T5.E2.E5.E1.E2.D1 E6.E2.E5.E1.E2.D1 T7.E2.E5.E1.E2.D1");
4692 "\n This is a description with preserved whitespace. \n ");
4693 IXMLDOMNode_Release(node2);
4696#define check_ws_preserved(ver, doc, str) _check_ws_preserved(__LINE__, ver, doc, str)
4711 "T1.E2.E10.E2.E2.D1 [4]2.E2.E10.E2.E2.D1 T3.E2.E10.E2.E2.D1 "
4712 "E4.E2.E10.E2.E2.D1 T5.E2.E10.E2.E2.D1 E6.E2.E10.E2.E2.D1 "
4713 "E7.E2.E10.E2.E2.D1 E8.E2.E10.E2.E2.D1 T9.E2.E10.E2.E2.D1");
4723 IXMLDOMNode_Release(node1);
4727 "T1.E4.E10.E2.E2.D1 E2.E4.E10.E2.E2.D1 T3.E4.E10.E2.E2.D1 "
4728 "E4.E4.E10.E2.E2.D1 T5.E4.E10.E2.E2.D1 E6.E4.E10.E2.E2.D1 T7.E4.E10.E2.E2.D1");
4731 "\n This is a description with preserved whitespace. \n ");
4732 IXMLDOMNode_Release(node2);
4745 hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc,
preserve);
4751 hr = IXMLDOMDocument2_get_documentElement(doc, &
root);
4754 hr = IXMLDOMElement_get_childNodes(
root, &
list);
4756 IXMLDOMElement_Release(
root);
4758 text =
preserve == VARIANT_TRUE ?
L" Text A end " :
L"Text A end";
4759 hr = IXMLDOMNodeList_get_item(
list, 0, &
node);
4761 hr = IXMLDOMNode_get_text(
node, &
s);
4765 IXMLDOMNode_Release(
node);
4768 hr = IXMLDOMNodeList_get_item(
list, 1, &
node);
4770 hr = IXMLDOMNode_get_text(
node, &
s);
4774 IXMLDOMNode_Release(
node);
4776 IXMLDOMNodeList_Release(
list);
4786 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2" },
4787 { &CLSID_DOMDocument26,
"CLSID_DOMDocument26" },
4788 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30" },
4789 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40" },
4790 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60" },
4798 while (class_ptr->
clsid)
4814 &IID_IXMLDOMDocument2, (
void**)&doc1);
4818 &IID_IXMLDOMDocument2, (
void**)&doc2);
4821 hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc2, VARIANT_TRUE);
4823 hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc1, &
b);
4825 ok(
b == VARIANT_FALSE,
"expected false\n");
4826 hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc2, &
b);
4828 ok(
b == VARIANT_TRUE,
"expected true\n");
4832 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4835 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4847 hr = IXMLDOMDocument2_QueryInterface(doc1, &IID_IXMLDOMDocument2, (
void**) &doc3);
4849 hr = IXMLDOMDocument2_QueryInterface(doc2, &IID_IXMLDOMDocument2, (
void**) &doc4);
4852 hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc3, &
b);
4854 ok(
b == VARIANT_FALSE,
"expected false\n");
4855 hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc4, &
b);
4857 ok(
b == VARIANT_TRUE,
"expected true\n");
4863 hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc1, VARIANT_TRUE);
4865 hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc2, VARIANT_FALSE);
4873 hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc1, &
b);
4875 ok(
b == VARIANT_TRUE,
"expected true\n");
4876 hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc2, &
b);
4878 ok(
b == VARIANT_FALSE,
"expected false\n");
4882 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4885 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
4891 hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc3, &
b);
4893 ok(
b == VARIANT_TRUE,
"expected true\n");
4894 hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc4, &
b);
4896 ok(
b == VARIANT_FALSE,
"expected false\n");
4901 IXMLDOMDocument2_Release(doc2);
4902 IXMLDOMDocument2_Release(doc3);
4903 IXMLDOMDocument2_Release(doc4);
4910 hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc1, VARIANT_FALSE);
4915 ok(
b == VARIANT_TRUE,
"for %x\n",
b);
4917 hr = IXMLDOMDocument2_get_documentElement(doc1, &
root);
4919 hr = IXMLDOMElement_get_childNodes(
root, &
list);
4922 hr = IXMLDOMNodeList_get_length(
list, &
len);
4925 IXMLDOMNodeList_Release(
list);
4926 IXMLDOMElement_Release(
root);
4928 IXMLDOMDocument2_Release(doc1);
4945 { &
CLSID_DOMDocument,
"CLSID_DOMDocument",
"\txmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4946 { &
CLSID_DOMDocument,
"CLSID_DOMDocument",
"\n\rxmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4947 { &
CLSID_DOMDocument,
"CLSID_DOMDocument",
" xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4948 { &
CLSID_DOMDocument,
"CLSID_DOMDocument",
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' ",
S_OK },
4950 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2",
"\txmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4951 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2",
"\n\rxmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4952 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2",
" xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4953 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2",
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' ",
S_OK },
4955 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30",
"\txmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4956 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30",
"\n\rxmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4957 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30",
" xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4958 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30",
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' ",
S_OK },
4960 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40",
"\txmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4961 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40",
"\n\rxmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4962 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40",
" xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4963 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40",
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' ",
S_OK },
4965 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60",
"\txmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4966 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60",
"\n\rxmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4967 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60",
" xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'",
S_OK },
4968 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60",
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' ",
S_OK },
4979 {
"*/a",
"E1.E1.E2.D1 E1.E2.E2.D1 E1.E4.E2.D1" },
4980 {
"*/b",
"E2.E1.E2.D1 E2.E2.E2.D1 E2.E4.E2.D1" },
4981 {
"*/c",
"E3.E1.E2.D1 E3.E2.E2.D1" },
4982 {
"*/d",
"E4.E1.E2.D1 E4.E2.E2.D1 E4.E4.E2.D1" },
4983 {
"//a",
"E1.E1.E2.D1 E1.E2.E2.D1 E1.E4.E2.D1" },
4984 {
"//b",
"E2.E1.E2.D1 E2.E2.E2.D1 E2.E4.E2.D1" },
4985 {
"//c",
"E3.E1.E2.D1 E3.E2.E2.D1" },
4986 {
"//d",
"E4.E1.E2.D1 E4.E2.E2.D1 E4.E4.E2.D1" },
4987 {
"//c[@type]",
"E3.E2.E2.D1" },
4988 {
"//c[@type]/ancestor::node()[1]",
"E2.E2.D1" },
4989 {
"//c[@type]/ancestor-or-self::node()[1]",
"E3.E2.E2.D1" },
4990 {
"//c[@type]/attribute::node()[1]",
"A'type'.E3.E2.E2.D1" },
4991 {
"//c[@type]/child::node()[1]",
"T1.E3.E2.E2.D1" },
4992 {
"//c[@type]/descendant::node()[1]",
"T1.E3.E2.E2.D1" },
4993 {
"//c[@type]/descendant-or-self::node()[1]",
"E3.E2.E2.D1" },
4994 {
"//c[@type]/following::node()[1]",
"E4.E2.E2.D1" },
4995 {
"//c[@type]/following-sibling::node()[1]",
"E4.E2.E2.D1" },
4996 {
"//c[@type]/parent::node()[1]",
"E2.E2.D1" },
4997 {
"//c[@type]/preceding::node()[1]",
"T1.E2.E2.E2.D1" },
4998 {
"//c[@type]/self::node()[1]",
"E3.E2.E2.D1" },
4999 {
"child::*",
"E1.E2.D1 E2.E2.D1 E3.E2.D1 E4.E2.D1" },
5000 {
"child::node()",
"E1.E2.D1 E2.E2.D1 E3.E2.D1 E4.E2.D1" },
5001 {
"child::text()",
"" },
5002 {
"child::*/..",
"E2.D1" },
5003 {
"child::*//@*/..",
"E2.E5.E1.E2.D1 E2.E2.D1 E3.E2.E2.D1" },
5004 {
"self::node()",
"E2.D1" },
5005 {
"ancestor::node()",
"D1" },
5006 {
"elem[c][last()]/a",
"E1.E2.E2.D1"},
5007 {
"ancestor-or-self::node()[1]",
"E2.D1" },
5008 {
"((//a)[1])[last()]",
"E1.E1.E2.D1" },
5009 {
"//elem[@*]",
"E2.E2.D1" },
5037 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
5045 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root"), &
list);
5051 hr = IXMLDOMNodeList_get_item(
list, 0, &rootNode);
5056 hr = IXMLDOMNodeList_reset(
list);
5061 for ( ; xptest->
query ; xptest++ )
5066 ok(
hr ==
S_OK,
"query evaluation failed for query=%s\n", xptest->
query);
5073 ok(!
strcmp(
str, xptest->
list),
"query=%s, invalid node list: \"%s\", expected \"%s\"\n",
5077 IXMLDOMNodeList_Release(
list);
5084 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"/root/namespace::*"), &
list);
5087 hr = IXMLDOMNodeList_get_length(
list, &
len);
5097 IXMLDOMNode_Release(
node);
5099 IXMLDOMNodeList_Release(
list);
5102 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root//c"), &
list);
5106 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"//c[@type]"), &
list);
5110 hr = IXMLDOMNode_selectNodes(rootNode,
_bstr_(
"elem"), &
list);
5113 hr = IXMLDOMNodeList_get_item(
list, 1, &
node);
5116 IXMLDOMNode_Release(
node);
5120 IXMLDOMNode_Release(
node);
5121 hr = IXMLDOMNodeList_reset(
list);
5125 hr = IXMLDOMNode_selectNodes(rootNode,
_bstr_(
"."), &
list);
5129 hr = IXMLDOMNode_selectNodes(rootNode,
_bstr_(
"elem[3]/preceding-sibling::*"), &
list);
5131 hr = IXMLDOMNodeList_get_item(
list, 0, &elem1Node);
5133 hr = IXMLDOMNodeList_reset(
list);
5138 hr = IXMLDOMNode_selectNodes(rootNode,
_bstr_(
".//@type"), &
list);
5143 hr = IXMLDOMNode_selectNodes(rootNode,
_bstr_(
"count(*)"), &
list);
5146 hr = IXMLDOMNode_selectNodes(rootNode,
_bstr_(
"position()>0"), &
list);
5149 hr = IXMLDOMNode_selectNodes(rootNode,
_bstr_(
"name()"), &
list);
5153 hr = IXMLDOMNode_selectNodes(rootNode,
_bstr_(
"c"), &
list);
5156 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"elem//c"), &
list);
5159 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"//elem[4]"), &
list);
5162 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root//elem[0]"), &
list);
5167 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root//foo:c"), &
list);
5170 hr = IXMLDOMNode_selectNodes(rootNode,
_bstr_(
".//foo:c"), &
list);
5173 hr = IXMLDOMNode_selectNodes(elem1Node,
_bstr_(
"//foo:c"), &
list);
5176 hr = IXMLDOMNode_selectNodes(elem1Node,
_bstr_(
"//*[name()='foo:c']"), &
list);
5181 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionNamespaces"),
5182 _variantbstr_(
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'"));
5186 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root//test:c"), &
list);
5189 hr = IXMLDOMNode_selectNodes(rootNode,
_bstr_(
".//test:c"), &
list);
5192 hr = IXMLDOMNode_selectNodes(elem1Node,
_bstr_(
"//test:c"), &
list);
5195 hr = IXMLDOMNode_selectNodes(elem1Node,
_bstr_(
".//test:x"), &
list);
5200 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionNamespaces"),
5201 _variantbstr_(
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' xmlns:foo=###"));
5204 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root//foo:c"), &
list);
5208 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"SelectionNamespaces"), &
var);
5215 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionNamespaces"),
5216 _variantbstr_(
"xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' param='test'"));
5218 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root//foo:c"), &
list);
5221 IXMLDOMNode_Release(rootNode);
5222 IXMLDOMNode_Release(elem1Node);
5225 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root"), &
list);
5229 hr = IXMLDOMDocument2_get_lastChild(doc, &rootNode);
5234 hr = IXMLDOMDocument2_removeChild(doc, rootNode,
NULL);
5236 IXMLDOMNode_Release(rootNode);
5240 hr = IXMLDOMNodeList_get_item(
list, 0, &rootNode);
5244 IXMLDOMNodeList_Release(
list);
5246 hr = IXMLDOMNode_get_nodeName(rootNode, &
str);
5250 IXMLDOMNode_Release(rootNode);
5255 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
5257 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root"), &
list);
5261 hr = IXMLDOMNodeList_get_item(
list, 0, &rootNode);
5264 hr = IXMLDOMNode_QueryInterface(rootNode, &IID_IXMLDOMElement, (
void**)&
elem);
5271 IXMLDOMElement_Release(
elem);
5272 IXMLDOMNode_Release(rootNode);
5275 hr = IXMLDOMNodeList_get_item(
list, 0, &rootNode);
5278 hr = IXMLDOMNode_QueryInterface(rootNode, &IID_IXMLDOMElement, (
void**)&
elem);
5283 IXMLDOMAttribute_Release(
attr);
5285 IXMLDOMElement_Release(
elem);
5286 IXMLDOMNode_Release(rootNode);
5289 hr = IXMLDOMDocument2_get_documentElement(doc, &
elem);
5294 IXMLDOMAttribute_Release(
attr);
5296 IXMLDOMElement_Release(
elem);
5303 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
5305 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root"), &
list);
5309 hr = IXMLDOMNodeList_get_item(
list, 0, &rootNode);
5313 hr = IXMLDOMDocument_appendChild(doc2, rootNode,
NULL);
5321 IXMLDOMNode_Release(rootNode);
5322 IXMLDOMNodeList_Release(
list);
5323 IXMLDOMDocument_Release(doc2);
5324 IXMLDOMDocument2_Release(doc);
5341 ok(
b == VARIANT_TRUE,
"failed to load, %s\n",
ptr->name);
5349 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionNamespaces"),
var);
5350 ok(
hr ==
ptr->hr,
"Unexpected hr %#lx., for %s, %s\n",
hr,
ptr->name,
ptr->ns);
5353 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"SelectionNamespaces"), &
var);
5359 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"root//test:c"), &
list);
5364 IXMLDOMDocument2_Release(doc);
5380 LONG attr_cnt, attr_cnt1;
5391 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
5393 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"SelectionLanguage"), &
v);
5400 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionLanguage"),
v);
5404 hr = IXMLDOMDocument2_cloneNode(doc, VARIANT_TRUE, &
node);
5405 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5409 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5412 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5414 IXMLDOMNodeList_Release(
pList);
5416 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMDocument2, (
void**)&doc_clone);
5420 hr = IXMLDOMDocument2_getProperty(doc_clone,
_bstr_(
"SelectionLanguage"), &
v);
5425 IXMLDOMDocument2_Release(doc_clone);
5426 IXMLDOMNode_Release(
node);
5428 hr = IXMLDOMDocument2_selectSingleNode(doc,
_bstr_(
"lc/pr"), &
node);
5429 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5433 hr = IXMLDOMNode_cloneNode(
node, VARIANT_TRUE,
NULL);
5438 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5441 hr = IXMLDOMNode_get_firstChild(
node_clone, &node_first);
5442 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5444 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5445 IXMLDOMDocument_Release(doc2);
5446 IXMLDOMNode_Release(node_first);
5449 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5452 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5454 IXMLDOMNodeList_Release(
pList);
5456 hr = IXMLDOMNode_get_attributes(
node, &mapAttr);
5457 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5459 hr = IXMLDOMNamedNodeMap_get_length(mapAttr, &attr_cnt);
5460 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5461 ok(attr_cnt == 3,
"got %ld\n", attr_cnt);
5462 IXMLDOMNamedNodeMap_Release(mapAttr);
5465 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5467 hr = IXMLDOMNodeList_get_length(
pList, &length1);
5468 ok(length1 == 1,
"got %ld\n", length1);
5469 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5470 IXMLDOMNodeList_Release(
pList);
5473 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5475 hr = IXMLDOMNamedNodeMap_get_length(mapAttr, &attr_cnt1);
5476 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5477 ok(attr_cnt1 == 3,
"got %ld\n", attr_cnt1);
5480 hr = IXMLDOMNamedNodeMap_getNamedItem(mapAttr,
_bstr_(
"id"), &
attr);
5482 IXMLDOMNode_Release(
attr);
5483 IXMLDOMNamedNodeMap_Release(mapAttr);
5485 ok(
length == length1,
"wrong Child count (%ld, %ld)\n",
length, length1);
5486 ok(attr_cnt == attr_cnt1,
"wrong Attribute count (%ld, %ld)\n", attr_cnt, attr_cnt1);
5491 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5494 hr = IXMLDOMNode_get_firstChild(
node_clone, &node_first);
5498 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5499 hr = IXMLDOMNodeList_get_length(
pList, &length1);
5500 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5501 ok( length1 == 0,
"Length should be 0 (%ld)\n", length1);
5502 IXMLDOMNodeList_Release(
pList);
5505 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5506 hr = IXMLDOMNamedNodeMap_get_length(mapAttr, &attr_cnt1);
5507 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5508 ok(attr_cnt1 == 3,
"Attribute count should be 3 (%ld)\n", attr_cnt1);
5509 IXMLDOMNamedNodeMap_Release(mapAttr);
5511 ok(
length != length1,
"wrong Child count (%ld, %ld)\n",
length, length1);
5512 ok(attr_cnt == attr_cnt1,
"wrong Attribute count (%ld, %ld)\n", attr_cnt, attr_cnt1);
5515 IXMLDOMNode_Release(
node);
5516 IXMLDOMDocument2_Release(doc);
5540 hr = IXMLDOMDocument_get_nextSibling(doc,
NULL);
5543 pNextChild = (
void*)0xdeadbeef;
5544 hr = IXMLDOMDocument_get_nextSibling(doc, &pNextChild);
5546 ok(pNextChild ==
NULL,
"pDocChild not NULL\n");
5549 hr = IXMLDOMDocument_get_previousSibling(doc,
NULL);
5552 pNextChild = (
void*)0xdeadbeef;
5553 hr = IXMLDOMDocument_get_previousSibling(doc, &pNextChild);
5555 ok(pNextChild ==
NULL,
"pNextChild not NULL\n");
5559 hr = IXMLDOMDocument_get_dataType(doc, &
v);
5565 hr = IXMLDOMDocument_get_implementation(doc,
NULL);
5568 hr = IXMLDOMDocument_get_implementation(doc, &pIXMLDOMImplementation);
5569 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5575 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
NULL, sEmpty, &hasFeature);
5578 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation, sEmpty, sEmpty,
NULL);
5581 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"DOM"), sEmpty, &hasFeature);
5582 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5583 ok(hasFeature == VARIANT_FALSE,
"hasFeature returned false\n");
5585 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation, sEmpty, sEmpty, &hasFeature);
5586 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5587 ok(hasFeature == VARIANT_FALSE,
"hasFeature returned true\n");
5589 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"DOM"),
NULL, &hasFeature);
5590 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5591 ok(hasFeature == VARIANT_TRUE,
"hasFeature returned false\n");
5593 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"DOM"), sEmpty, &hasFeature);
5594 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5595 ok(hasFeature == VARIANT_FALSE,
"hasFeature returned false\n");
5597 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"DOM"),
_bstr_(
"1.0"), &hasFeature);
5598 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5599 ok(hasFeature == VARIANT_TRUE,
"hasFeature returned true\n");
5601 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"XML"),
_bstr_(
"1.0"), &hasFeature);
5602 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5603 ok(hasFeature == VARIANT_TRUE,
"hasFeature returned true\n");
5605 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"MS-DOM"),
_bstr_(
"1.0"), &hasFeature);
5606 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5607 ok(hasFeature == VARIANT_TRUE,
"hasFeature returned true\n");
5609 hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation,
_bstr_(
"SSS"),
NULL, &hasFeature);
5610 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5611 ok(hasFeature == VARIANT_FALSE,
"hasFeature returned false\n");
5614 IXMLDOMImplementation_Release(pIXMLDOMImplementation);
5618 hr = IXMLDOMDocument_createElement(doc,
NULL, &pRoot);
5620 ok(pRoot == (
void*)0x1,
"Expect same ptr, got %p\n", pRoot);
5623 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
""), &pRoot);
5625 ok(pRoot == (
void*)0x1,
"Expect same ptr, got %p\n", pRoot);
5627 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing"), &pRoot);
5628 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5632 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5637 hr = IXMLDOMDocument_createComment(doc,
str, &pComment);
5639 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5643 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5645 hr = IXMLDOMComment_get_nodeName(pComment, &
str);
5646 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5647 ok( !
lstrcmpW(
str,
L"#comment" ),
"incorrect comment node Name\n");
5650 hr = IXMLDOMComment_get_xml(pComment, &
str);
5651 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5652 ok( !
lstrcmpW(
str,
L"<!--A Comment-->" ),
"incorrect comment xml\n");
5656 hr = IXMLDOMComment_put_data(pComment,
_bstr_(
"This &is a ; test <>\\"));
5657 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5660 hr = IXMLDOMComment_get_data(pComment, &
str);
5661 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5662 ok(!
lstrcmpW(
str,
L"This &is a ; test <>\\"),
"incorrect get_data string\n");
5666 hr = IXMLDOMComment_get_xml(pComment, &
str);
5667 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5668 ok(!
lstrcmpW(
str,
L"<!--This &is a ; test <>\\-->"),
"incorrect xml string\n");
5672 hr = IXMLDOMComment_get_text(pComment, &
str);
5673 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5674 ok(!
lstrcmpW(
str,
L"This &is a ; test <>\\"),
"incorrect xml string\n");
5678 hr = IXMLDOMComment_get_length(pComment, &
len);
5679 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5680 ok(
len == 21,
"expected 21 got %ld\n",
len);
5683 hr = IXMLDOMComment_substringData(pComment, 0, 4,
NULL);
5687 str = (
void *)0xdeadbeef;
5688 hr = IXMLDOMComment_substringData(pComment, -1, 4, &
str);
5693 str = (
void *)0xdeadbeef;
5694 hr = IXMLDOMComment_substringData(pComment, 30, 0, &
str);
5699 str = (
void *)0xdeadbeef;
5700 hr = IXMLDOMComment_substringData(pComment, 0, -1, &
str);
5705 str = (
void *)0xdeadbeef;
5706 hr = IXMLDOMComment_substringData(pComment, 2, 0, &
str);
5711 hr = IXMLDOMComment_substringData(pComment, 0, 4, &
str);
5712 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5717 hr = IXMLDOMComment_substringData(pComment, 13, 4, &
str);
5718 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5723 hr = IXMLDOMComment_substringData(pComment, 20, 4, &
str);
5724 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5729 hr = IXMLDOMComment_appendData(pComment,
NULL);
5730 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5732 hr = IXMLDOMComment_appendData(pComment,
_bstr_(
""));
5733 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5735 hr = IXMLDOMComment_appendData(pComment,
_bstr_(
"Append"));
5736 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5738 hr = IXMLDOMComment_get_text(pComment, &
str);
5739 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5745 hr = IXMLDOMComment_insertData(pComment, -1,
str);
5746 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5748 hr = IXMLDOMComment_insertData(pComment, -1,
NULL);
5749 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5751 hr = IXMLDOMComment_insertData(pComment, 1000,
str);
5752 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5754 hr = IXMLDOMComment_insertData(pComment, 1000,
NULL);
5755 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5757 hr = IXMLDOMComment_insertData(pComment, 0,
NULL);
5758 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5760 hr = IXMLDOMComment_insertData(pComment, 0,
str);
5761 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5764 hr = IXMLDOMComment_insertData(pComment, -1,
_bstr_(
"Inserting"));
5767 hr = IXMLDOMComment_insertData(pComment, 1000,
_bstr_(
"Inserting"));
5770 hr = IXMLDOMComment_insertData(pComment, 0,
_bstr_(
"Begin "));
5771 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5773 hr = IXMLDOMComment_insertData(pComment, 17,
_bstr_(
"Middle"));
5774 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5776 hr = IXMLDOMComment_insertData(pComment, 39,
_bstr_(
" End"));
5777 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5779 hr = IXMLDOMComment_get_text(pComment, &
str);
5780 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5786 hr = IXMLDOMComment_deleteData(pComment, -1, 1);
5789 hr = IXMLDOMComment_deleteData(pComment, 0, 0);
5790 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5792 hr = IXMLDOMComment_deleteData(pComment, 0, -1);
5795 hr = IXMLDOMComment_get_length(pComment, &
len);
5796 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5797 ok(
len == 43,
"expected 43 got %ld\n",
len);
5799 hr = IXMLDOMComment_deleteData(pComment,
len, 1);
5800 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5802 hr = IXMLDOMComment_deleteData(pComment,
len+1, 1);
5806 hr = IXMLDOMComment_deleteData(pComment, 0, 5);
5807 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5809 hr = IXMLDOMComment_get_length(pComment, &
len);
5810 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5811 ok(
len == 38,
"expected 38 got %ld\n",
len);
5813 hr = IXMLDOMComment_get_text(pComment, &
str);
5814 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5819 hr = IXMLDOMComment_deleteData(pComment, 35, 3);
5820 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5822 hr = IXMLDOMComment_get_length(pComment, &
len);
5823 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5824 ok(
len == 35,
"expected 35 got %ld\n",
len);
5826 hr = IXMLDOMComment_get_text(pComment, &
str);
5827 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5832 hr = IXMLDOMComment_deleteData(pComment, 1, 33);
5833 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5835 hr = IXMLDOMComment_get_length(pComment, &
len);
5836 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5837 ok(
len == 2,
"expected 2 got %ld\n",
len);
5839 hr = IXMLDOMComment_get_text(pComment, &
str);
5840 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5845 hr = IXMLDOMComment_get_length(pComment, &
len);
5846 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5848 hr = IXMLDOMComment_deleteData(pComment, 0,
len);
5849 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5851 hr = IXMLDOMComment_deleteData(pComment, 0,
len);
5852 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5857 hr = IXMLDOMComment_put_nodeValue(pComment,
v);
5858 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5861 hr = IXMLDOMComment_replaceData(pComment, 6, 0,
NULL);
5863 hr = IXMLDOMComment_get_text(pComment, &
str);
5864 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5868 hr = IXMLDOMComment_replaceData(pComment, 0, 0,
NULL);
5869 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5870 hr = IXMLDOMComment_get_text(pComment, &
str);
5871 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5876 hr = IXMLDOMComment_replaceData(pComment, 0, 1,
NULL);
5877 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5878 hr = IXMLDOMComment_get_text(pComment, &
str);
5879 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5884 hr = IXMLDOMComment_replaceData(pComment, 0, 1,
_bstr_(
""));
5885 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5886 hr = IXMLDOMComment_get_text(pComment, &
str);
5887 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5892 hr = IXMLDOMComment_replaceData(pComment, 0, 0,
_bstr_(
"a"));
5893 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5894 hr = IXMLDOMComment_get_text(pComment, &
str);
5895 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5899 hr = IXMLDOMComment_replaceData(pComment, 0, 2,
NULL);
5900 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5902 hr = IXMLDOMComment_insertData(pComment, 0,
_bstr_(
"m"));
5903 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5904 hr = IXMLDOMComment_get_text(pComment, &
str);
5905 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5910 hr = IXMLDOMComment_replaceData(pComment, 0, 2,
_bstr_(
"a1.2"));
5911 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5912 hr = IXMLDOMComment_get_text(pComment, &
str);
5913 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5918 hr = IXMLDOMComment_replaceData(pComment, 0, 1,
_bstr_(
"wine"));
5919 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5920 hr = IXMLDOMComment_get_text(pComment, &
str);
5921 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5925 IXMLDOMComment_Release(pComment);
5930 hr = IXMLDOMDocument_createElement(doc,
str, &pElement);
5932 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5936 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5938 hr = IXMLDOMElement_get_nodeName(pElement, &
str);
5939 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5940 ok( !
lstrcmpW(
str,
L"EleTest" ),
"incorrect element node Name\n");
5943 hr = IXMLDOMElement_get_xml(pElement, &
str);
5944 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5950 hr = IXMLDOMDocument_createAttribute(doc,
NULL, &pAttribute);
5952 ok(pAttribute == (
void*)0x1,
"Expect same ptr, got %p\n", pAttribute);
5955 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
""), &pAttribute);
5957 ok(pAttribute == (
void*)0x1,
"Expect same ptr, got %p\n", pAttribute);
5960 hr = IXMLDOMDocument_createAttribute(doc,
str, &pAttribute);
5962 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5967 hr = IXMLDOMAttribute_get_nextSibling(pAttribute,
NULL);
5971 hr = IXMLDOMAttribute_get_nextSibling(pAttribute, &pNextChild);
5973 ok(pNextChild ==
NULL,
"pNextChild not NULL\n");
5976 hr = IXMLDOMAttribute_get_previousSibling(pAttribute,
NULL);
5980 hr = IXMLDOMAttribute_get_previousSibling(pAttribute, &pNextChild);
5982 ok(pNextChild ==
NULL,
"pNextChild not NULL\n");
5984 hr = IXMLDOMElement_appendChild(pElement, (
IXMLDOMNode*)pAttribute, &pNewChild);
5986 ok(pNewChild ==
NULL,
"pNewChild not NULL\n");
5988 hr = IXMLDOMElement_get_attributes(pElement, &pAttribs);
5989 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5992 hr = IXMLDOMNamedNodeMap_setNamedItem(pAttribs, (
IXMLDOMNode*)pAttribute,
NULL );
5993 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
5995 IXMLDOMNamedNodeMap_Release(pAttribs);
5998 hr = IXMLDOMAttribute_get_nodeName(pAttribute, &
str);
5999 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6000 ok( !
lstrcmpW(
str,
L"Attr" ),
"incorrect attribute node Name\n");
6004 hr = IXMLDOMAttribute_get_nodeName(pAttribute, &
str);
6005 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6010 hr = IXMLDOMAttribute_get_name(pAttribute, &
str);
6011 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6015 hr = IXMLDOMAttribute_get_xml(pAttribute, &
str);
6016 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6017 ok( !
lstrcmpW(
str,
L"Attr=\"\"" ),
"incorrect attribute xml\n");
6020 IXMLDOMAttribute_Release(pAttribute);
6023 hr = IXMLDOMElement_get_xml(pElement, &
str);
6024 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6025 ok( !
lstrcmpW(
str,
L"<EleTest Attr=\"\"/>" ),
"incorrect element xml\n");
6029 hr = IXMLDOMElement_put_text(pElement,
_bstr_(
"TestingNode"));
6030 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6032 hr = IXMLDOMElement_get_xml(pElement, &
str);
6033 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6034 ok( !
lstrcmpW(
str,
L"<EleTest Attr=\"\">TestingNode</EleTest>" ),
"incorrect element xml\n");
6039 hr = IXMLDOMElement_put_text(pElement,
str);
6040 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6043 hr = IXMLDOMElement_get_xml(pElement, &
str);
6044 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6045 ok( !
lstrcmpW(
str,
L"<EleTest Attr=\"\">&x \x2103</EleTest>" ),
"incorrect element xml\n");
6048 hr = IXMLDOMElement_get_text(pElement, &
str);
6049 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6053 IXMLDOMElement_Release(pElement);
6058 hr = IXMLDOMDocument_createCDATASection(doc,
str,
NULL);
6061 hr = IXMLDOMDocument_createCDATASection(doc,
str, &pCDataSec);
6063 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6071 hr = IXMLDOMCDATASection_QueryInterface(pCDataSec, &IID_IXMLDOMElement, (
void**)&pElement);
6075 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6077 hr = IXMLDOMCDATASection_get_nodeName(pCDataSec, &
str);
6078 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6079 ok( !
lstrcmpW(
str,
L"#cdata-section" ),
"incorrect cdata node Name\n");
6082 hr = IXMLDOMCDATASection_get_xml(pCDataSec, &
str);
6083 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6084 ok( !
lstrcmpW(
str,
L"<![CDATA[[1]*2=3; &gee that is not right!]]>" ),
"incorrect cdata xml\n");
6089 hr = IXMLDOMCDATASection_get_lastChild(pCDataSec, &pNextChild);
6091 ok(pNextChild ==
NULL,
"pNextChild not NULL\n");
6094 hr = IXMLDOMCDATASection_put_data(pCDataSec,
_bstr_(
"This &is a ; test <>\\"));
6095 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6098 hr = IXMLDOMCDATASection_get_xml(pCDataSec, &
str);
6099 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6100 ok(!
lstrcmpW(
str,
L"<![CDATA[This &is a ; test <>\\]]>"),
"incorrect xml string\n");
6104 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6105 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6106 ok(!
lstrcmpW(
str,
L"This &is a ; test <>\\"),
"incorrect text string\n");
6110 hr = IXMLDOMCDATASection_get_length(pCDataSec, &
len);
6111 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6112 ok(
len == 21,
"expected 21 got %ld\n",
len);
6115 hr = IXMLDOMCDATASection_get_data(pCDataSec, &
str);
6116 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6117 ok(!
lstrcmpW(
str,
L"This &is a ; test <>\\"),
"incorrect text string\n");
6121 hr = IXMLDOMCDATASection_substringData(pCDataSec, 0, 4,
NULL);
6125 str = (
void *)0xdeadbeef;
6126 hr = IXMLDOMCDATASection_substringData(pCDataSec, -1, 4, &
str);
6131 str = (
void *)0xdeadbeef;
6132 hr = IXMLDOMCDATASection_substringData(pCDataSec, 30, 0, &
str);
6137 str = (
void *)0xdeadbeef;
6138 hr = IXMLDOMCDATASection_substringData(pCDataSec, 0, -1, &
str);
6143 str = (
void *)0xdeadbeef;
6144 hr = IXMLDOMCDATASection_substringData(pCDataSec, 2, 0, &
str);
6149 hr = IXMLDOMCDATASection_substringData(pCDataSec, 0, 4, &
str);
6150 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6155 hr = IXMLDOMCDATASection_substringData(pCDataSec, 13, 4, &
str);
6156 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6161 hr = IXMLDOMCDATASection_substringData(pCDataSec, 20, 4, &
str);
6162 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6167 hr = IXMLDOMCDATASection_appendData(pCDataSec,
NULL);
6168 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6170 hr = IXMLDOMCDATASection_appendData(pCDataSec,
_bstr_(
""));
6171 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6173 hr = IXMLDOMCDATASection_appendData(pCDataSec,
_bstr_(
"Append"));
6174 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6176 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6177 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6183 hr = IXMLDOMCDATASection_insertData(pCDataSec, -1,
str);
6184 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6186 hr = IXMLDOMCDATASection_insertData(pCDataSec, -1,
NULL);
6187 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6189 hr = IXMLDOMCDATASection_insertData(pCDataSec, 1000,
str);
6190 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6192 hr = IXMLDOMCDATASection_insertData(pCDataSec, 1000,
NULL);
6193 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6195 hr = IXMLDOMCDATASection_insertData(pCDataSec, 0,
NULL);
6196 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6198 hr = IXMLDOMCDATASection_insertData(pCDataSec, 0,
str);
6199 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6202 hr = IXMLDOMCDATASection_insertData(pCDataSec, -1,
_bstr_(
"Inserting"));
6205 hr = IXMLDOMCDATASection_insertData(pCDataSec, 1000,
_bstr_(
"Inserting"));
6208 hr = IXMLDOMCDATASection_insertData(pCDataSec, 0,
_bstr_(
"Begin "));
6209 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6211 hr = IXMLDOMCDATASection_insertData(pCDataSec, 17,
_bstr_(
"Middle"));
6212 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6214 hr = IXMLDOMCDATASection_insertData(pCDataSec, 39,
_bstr_(
" End"));
6215 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6217 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6218 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6224 hr = IXMLDOMCDATASection_deleteData(pCDataSec, -1, 1);
6227 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 0, 0);
6228 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6230 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 0, -1);
6233 hr = IXMLDOMCDATASection_get_length(pCDataSec, &
len);
6234 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6235 ok(
len == 43,
"expected 43 got %ld\n",
len);
6237 hr = IXMLDOMCDATASection_deleteData(pCDataSec,
len, 1);
6238 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6240 hr = IXMLDOMCDATASection_deleteData(pCDataSec,
len+1, 1);
6244 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 0, 5);
6245 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6247 hr = IXMLDOMCDATASection_get_length(pCDataSec, &
len);
6248 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6249 ok(
len == 38,
"expected 38 got %ld\n",
len);
6251 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6252 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6257 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 35, 3);
6258 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6260 hr = IXMLDOMCDATASection_get_length(pCDataSec, &
len);
6261 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6262 ok(
len == 35,
"expected 35 got %ld\n",
len);
6264 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6265 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6270 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 1, 33);
6271 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6273 hr = IXMLDOMCDATASection_get_length(pCDataSec, &
len);
6274 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6275 ok(
len == 2,
"expected 2 got %ld\n",
len);
6277 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6278 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6283 hr = IXMLDOMCDATASection_get_length(pCDataSec, &
len);
6284 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6286 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 0,
len);
6287 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6290 hr = IXMLDOMCDATASection_deleteData(pCDataSec, 0,
len);
6291 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6296 hr = IXMLDOMCDATASection_put_nodeValue(pCDataSec,
v);
6297 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6300 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 6, 0,
NULL);
6302 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6303 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6307 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 0,
NULL);
6308 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6309 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6310 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6315 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 1,
NULL);
6316 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6317 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6318 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6323 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 1,
_bstr_(
""));
6324 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6325 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6326 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6331 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 0,
_bstr_(
"a"));
6332 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6333 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6334 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6338 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 2,
NULL);
6339 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6341 hr = IXMLDOMCDATASection_insertData(pCDataSec, 0,
_bstr_(
"m"));
6342 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6343 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6344 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6349 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 2,
_bstr_(
"a1.2"));
6350 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6351 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6352 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6357 hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 1,
_bstr_(
"wine"));
6358 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6359 hr = IXMLDOMCDATASection_get_text(pCDataSec, &
str);
6360 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6364 IXMLDOMCDATASection_Release(pCDataSec);
6368 hr = IXMLDOMDocument_createDocumentFragment(doc,
NULL);
6371 hr = IXMLDOMDocument_createDocumentFragment(doc, &pDocFrag);
6372 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6377 hr = IXMLDOMDocumentFragment_get_parentNode(pDocFrag,
NULL);
6381 hr = IXMLDOMDocumentFragment_get_parentNode(pDocFrag, &
node);
6386 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6388 hr = IXMLDOMDocumentFragment_get_nodeName(pDocFrag, &
str);
6389 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6390 ok( !
lstrcmpW(
str,
L"#document-fragment" ),
"incorrect docfragment node Name\n");
6394 hr = IXMLDOMDocumentFragment_get_nextSibling(pDocFrag,
NULL);
6398 hr = IXMLDOMDocumentFragment_get_nextSibling(pDocFrag, &
node);
6403 hr = IXMLDOMDocumentFragment_get_previousSibling(pDocFrag,
NULL);
6407 hr = IXMLDOMDocumentFragment_get_previousSibling(pDocFrag, &
node);
6409 ok(
node ==
NULL,
"previous sibling not NULL\n");
6411 IXMLDOMDocumentFragment_Release(pDocFrag);
6415 hr = IXMLDOMDocument_createEntityReference(doc,
NULL, &pEntityRef);
6417 hr = IXMLDOMDocument_createEntityReference(doc,
_bstr_(
""), &pEntityRef);
6421 hr = IXMLDOMDocument_createEntityReference(doc,
str,
NULL);
6424 hr = IXMLDOMDocument_createEntityReference(doc,
str, &pEntityRef);
6426 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6430 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6433 hr = IXMLDOMEntityReference_get_xml(pEntityRef, &
str);
6434 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6438 IXMLDOMEntityReference_Release(pEntityRef);
6441 IXMLDOMElement_Release( pRoot );
6445 IXMLDOMDocument_Release(doc);
6459 {
"test_inval",
"abcdefg",
E_FAIL },
6460 {
"test_bool",
"Boolean",
S_OK },
6461 {
"test_string",
"String",
S_OK },
6462 {
"test_number",
"number",
S_OK },
6463 {
"test_int",
"InT",
S_OK },
6464 {
"test_fixed",
"fixed.14.4",
S_OK },
6465 {
"test_datetime",
"DateTime",
S_OK },
6466 {
"test_datetimetz",
"DateTime.tz",
S_OK },
6467 {
"test_date",
"Date",
S_OK },
6468 {
"test_time",
"Time",
S_OK },
6469 {
"test_timetz",
"Time.tz",
S_OK },
6470 {
"test_I1",
"I1",
S_OK },
6471 {
"test_I2",
"I2",
S_OK },
6472 {
"test_I4",
"I4",
S_OK },
6473 {
"test_UI1",
"UI1",
S_OK },
6474 {
"test_UI2",
"UI2",
S_OK },
6475 {
"test_UI4",
"UI4",
S_OK },
6476 {
"test_r4",
"r4",
S_OK },
6477 {
"test_r8",
"r8",
S_OK },
6478 {
"test_float",
"float",
S_OK },
6479 {
"test_uuid",
"UuId",
S_OK },
6480 {
"test_binhex",
"bin.hex",
S_OK },
6481 {
"test_binbase64",
"bin.base64",
S_OK },
6510 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing"),
NULL);
6513 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing"), &
root);
6519 hr = IXMLDOMElement_put_dataType(
root,
NULL);
6532 ok(
hr ==
ptr->hr,
"failed for %s:%s, %#lx.\n",
ptr->name,
ptr->type,
ptr->hr);
6534 IXMLDOMElement_Release(
element);
6540 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing_Change"), &
element);
6552 IXMLDOMElement_Release(
element);
6556 type1W =
_bstr_(
"string");
6557 type2W =
_bstr_(
"number");
6576 hr = IXMLDOMNode_put_dataType(
node, type1W);
6577 ok(
hr == ptr2->
hr,
"failed for type %d, %#lx\n", ptr2->
type,
ptr->hr);
6578 hr = IXMLDOMNode_put_dataType(
node, type2W);
6579 ok(
hr == ptr2->
hr,
"failed for type %d, %#lx\n", ptr2->
type,
ptr->hr);
6581 IXMLDOMNode_Release(
node);
6586 IXMLDOMElement_Release(
root);
6587 IXMLDOMDocument_Release(doc);
6593 static const char cheA[] =
"<Testing che=\"\xd0\xa7\"/>";
6612 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing"), &
root);
6621 hr = IXMLDOMDocument_save(doc,
dest);
6624 hr = IXMLDOMDocument_get_xml(doc, &sOrig);
6627 hr = IXMLDOMDocument_get_xml(doc2, &sNew);
6630 ok( !
lstrcmpW( sOrig, sNew ),
"New document is not the same as original\n");
6635 IXMLDOMElement_Release(
root);
6636 IXMLDOMDocument_Release(doc2);
6642 hr = IXMLDOMDocument_save(doc,
dest);
6650 ok(
read != 0,
"could not read file\n");
6651 ok(
buffer[0] !=
'<' ||
buffer[1] !=
'?',
"File contains processing instruction\n");
6661 hr = IXMLDOMDocument_save(doc,
dest);
6671 ok(
read != 0,
"could not read file\n");
6672 ok(
buffer[0] !=
'<' ||
buffer[1] !=
'?',
"File contains processing instruction\n");
6682 hr = IXMLDOMDocument_save(doc,
dest);
6693 hr = IXMLDOMDocument_save(doc,
dest);
6704 hr = IXMLDOMDocument_loadXML(doc,
_bstr_(
"<a/>"), &
b);
6711 hr = IXMLDOMDocument_save(doc,
dest);
6717 ok(
ptr[0] ==
'<' &&
ptr[1] !=
'?',
"got wrong start tag %c%c\n",
ptr[0],
ptr[1]);
6721 IXMLDOMDocument_Release(doc);
6726 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing"), &
root);
6732 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
"che"), &
attr);
6737 hr = IXMLDOMAttribute_put_value(
attr,
v);
6747 hr = IXMLDOMDocument_save(doc,
dest);
6755 ok(
read != 0,
"could not read file\n");
6762 IXMLDOMAttribute_Release(
attr);
6763 IXMLDOMElement_Release(
root);
6764 IXMLDOMDocument_Release(doc);
6780 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6783 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6785 hr = IXMLDOMDocument_QueryInterface(docSS, &IID_IXMLDOMNode, (
void**)&pNode );
6786 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6791 hr = IXMLDOMDocument_transformNode(doc, pNode, &bOut);
6792 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6799 IXMLDOMNode_Release(pNode);
6802 IXMLDOMDocument_Release(docSS);
6803 IXMLDOMDocument_Release(doc);
6815 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2" },
6816 { &CLSID_DOMDocument26,
"CLSID_DOMDocument26" },
6817 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30" },
6818 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40" },
6819 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60" },
6827 while (class_ptr->
clsid)
6844 &IID_IXMLDOMDocument, (
void**)&doc);
6853 hr = IXMLDOMDocument_appendChild(doc,
node,
NULL);
6856 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
6873 hr = IXMLDOMElement_get_xml(
elem, &
str);
6875 ok(!
lstrcmpW(
str,
L"<ns:elem xmlns:ns=\"ns/uri\"/>"),
"got element %s for %s\n",
6879 IXMLDOMElement_Release(
elem);
6880 IXMLDOMDocument_Release(doc);
6890 static const CHAR namespaces_xmlA[] =
6891 "<?xml version=\"1.0\"?>\n"
6892 "<XMI xmi.version=\"1.1\" xmlns:Model=\"http://omg.org/mof.Model/1.3\">"
6894 " <Model:Package name=\"WinePackage\" Model:name2=\"name2 attr\" />"
6908 hr = IXMLDOMDocument_loadXML(doc,
_bstr_(namespaces_xmlA), &
b);
6910 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
6912 str = (
void *)0xdeadbeef;
6913 hr = IXMLDOMDocument_get_namespaceURI(doc, &
str);
6917 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"//XMI.content"), &
node );
6924 hr = IXMLDOMNode_get_firstChild(
node, &node2);
6926 ok(node2 !=
NULL,
"got %p\n", node2);
6929 hr = IXMLDOMNode_get_prefix(node2,
NULL);
6933 hr = IXMLDOMNode_get_prefix(node2, &
str);
6938 hr = IXMLDOMNode_get_nodeName(node2, &
str);
6944 hr = IXMLDOMNode_get_namespaceURI(node2,
NULL);
6948 hr = IXMLDOMNode_get_namespaceURI(node2, &
str);
6953 hr = IXMLDOMNode_QueryInterface(node2, &IID_IXMLDOMElement, (
void**)&
elem);
6959 hr = IXMLDOMAttribute_get_nodeName(
attr, &
str);
6964 hr = IXMLDOMAttribute_get_prefix(
attr, &
str);
6969 IXMLDOMAttribute_Release(
attr);
6970 IXMLDOMElement_Release(
elem);
6972 IXMLDOMNode_Release(node2);
6973 IXMLDOMNode_Release(
node);
6976 IXMLDOMDocument_Release(doc);
6988 static const CHAR szLinefeedXML[] =
"<?xml version=\"1.0\"?>\n<Root>\n\t<Sub val=\"A\" />\n</Root>";
6989 static const CHAR szLinefeedRootXML[] =
"<Root>\r\n\t<Sub val=\"A\"/>\r\n</Root>";
6993 hr = IXMLDOMDocument_loadXML(doc,
_bstr_(szLinefeedXML), &bSucc);
6994 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
6995 ok(bSucc == VARIANT_TRUE,
"Expected VARIANT_TRUE got VARIANT_FALSE\n");
6997 if(bSucc == VARIANT_TRUE)
6999 hr = IXMLDOMDocument_get_documentElement(doc, &pElement);
7000 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7003 hr = IXMLDOMElement_get_xml(pElement, &
str);
7004 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7008 IXMLDOMElement_Release(pElement);
7012 IXMLDOMDocument_Release(doc);
7026 {
"root/string2",
VT_BSTR,
"String " },
7028 {
"root/string4",
VT_BSTR,
"\nWine Wine\t",
TRUE },
7030 {
"root/nested",
VT_BSTR,
" s1 \ns2 s2\t",
TRUE },
7031 {
"root/number",
VT_BSTR,
"12.44" },
7032 {
"root/number2",
VT_BSTR,
"-3.71e3" },
7033 {
"root/int",
VT_I4,
"-13" },
7034 {
"root/fixed",
VT_CY,
"7322.9371" },
7035 {
"root/bool",
VT_BOOL,
"-1" },
7036 {
"root/datetime",
VT_DATE,
"40135.14" },
7037 {
"root/datetimetz",
VT_DATE,
"37813.59" },
7038 {
"root/date",
VT_DATE,
"665413" },
7039 {
"root/time",
VT_DATE,
"0.5813889" },
7040 {
"root/timetz",
VT_DATE,
"1.112512" },
7041 {
"root/i1",
VT_I1,
"-13" },
7042 {
"root/i2",
VT_I2,
"31915" },
7043 {
"root/i4",
VT_I4,
"-312232" },
7044 {
"root/ui1",
VT_UI1,
"123" },
7045 {
"root/ui2",
VT_UI2,
"48282" },
7046 {
"root/ui4",
VT_UI4,
"949281" },
7047 {
"root/r4",
VT_R4,
"213124" },
7048 {
"root/r8",
VT_R8,
"0.412" },
7049 {
"root/float",
VT_R8,
"41221.421" },
7050 {
"root/uuid",
VT_BSTR,
"333C7BC4-460F-11D0-BC04-0080C7055a83" },
7059 static char buf[256];
7093 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7094 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
7096 hr = IXMLDOMDocument_get_nodeValue(doc,
NULL);
7101 hr = IXMLDOMDocument_get_nodeValue(doc, &
value);
7105 hr = IXMLDOMDocument_get_nodeTypedValue(doc,
NULL);
7109 hr = IXMLDOMDocument_get_nodeTypedValue(doc, &
value);
7113 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"root/string"), &
node);
7114 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7122 hr = IXMLDOMNode_get_nodeTypedValue(
node,
NULL);
7125 IXMLDOMNode_Release(
node);
7127 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"root/binhex"), &
node);
7128 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7130 BYTE bytes[] = {0xff,0xfc,0xa0,0x12,0x00,0x3c};
7132 hr = IXMLDOMNode_get_nodeTypedValue(
node, &
value);
7133 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7135 ok(
V_ARRAY(&
value)->rgsabound[0].cElements == 6,
"incorrect array size\n");
7139 IXMLDOMNode_Release(
node);
7142 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"foo"),
_bstr_(
"value"), &
pi);
7143 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7147 hr = IXMLDOMProcessingInstruction_get_nodeTypedValue(
pi, &
value);
7148 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7151 IXMLDOMProcessingInstruction_Release(
pi);
7155 hr = IXMLDOMDocument_createCDATASection(doc,
_bstr_(
"[1]*2=3; &gee that's not right!"), &cdata);
7156 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7160 hr = IXMLDOMCDATASection_get_nodeTypedValue(cdata, &
value);
7161 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7164 IXMLDOMCDATASection_Release(cdata);
7169 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7174 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7177 IXMLDOMComment_Release(
comment);
7181 hr = IXMLDOMDocument_createDocumentFragment(doc, &frag);
7182 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7185 hr = IXMLDOMDocumentFragment_get_nodeTypedValue(frag, &
value);
7188 IXMLDOMDocumentFragment_Release(frag);
7195 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7196 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
7200 hr = IXMLDOMDocument_get_doctype(doc2, &doctype);
7201 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7208 hr = IXMLDOMDocumentType_get_nodeTypedValue(doctype, &
value);
7213 hr = IXMLDOMDocument_get_doctype(doc2, &doctype2);
7214 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7215 ok(doctype != doctype2,
"got %p, was %p\n", doctype2, doctype);
7217 IXMLDOMDocumentType_Release(doctype2);
7218 IXMLDOMDocumentType_Release(doctype);
7220 IXMLDOMDocument_Release(doc2);
7225 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7227 hr = IXMLDOMNode_get_nodeTypedValue(
node, &
value);
7228 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7234 "incorrect array size %ld\n",
V_ARRAY(&
value)->rgsabound[0].cElements);
7246 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7251 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7256 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7263 "expected %s\n",
entry->value);
7280 hr = IXMLDOMDocument_get_preserveWhiteSpace(doc, &
b);
7281 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7282 ok(
b == VARIANT_FALSE,
"got %d\n",
b);
7284 hr = IXMLDOMNode_get_text(
node, &bstr);
7290 hr = IXMLDOMDocument_put_preserveWhiteSpace(doc, VARIANT_TRUE);
7291 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7294 hr = IXMLDOMNode_get_text(
node, &bstr);
7300 hr = IXMLDOMNode_get_nodeTypedValue(
node, &
value);
7301 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7306 hr = IXMLDOMDocument_put_preserveWhiteSpace(doc, VARIANT_FALSE);
7307 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7312 IXMLDOMNode_Release(
node);
7317 IXMLDOMDocument_Release(doc);
7335 strcat(lpPathBuffer,
"customers.xml" );
7348 if(lpPathBuffer[
i] ==
'\\')
7349 lpPathBuffer[
i] =
'/';
7356 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7357 ok(bSucc == VARIANT_TRUE,
"Expected VARIANT_TRUE got VARIANT_FALSE\n");
7358 if(bSucc == VARIANT_TRUE)
7371 hr = IXMLDOMDocument_loadXML(xsl, sXSL, &bSucc);
7372 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7373 ok(bSucc == VARIANT_TRUE,
"Expected VARIANT_TRUE got VARIANT_FALSE\n");
7374 if(bSucc == VARIANT_TRUE)
7378 hr = IXMLDOMDocument_QueryInterface(xsl, &IID_IXMLDOMNode, (
void**)&pNode );
7379 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7383 hr = IXMLDOMDocument_transformNode(doc, pNode, &sResult);
7384 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7391 IXMLDOMNode_Release(pNode);
7398 IXMLDOMDocument_Release(doc);
7399 IXMLDOMDocument_Release(xsl);
7419 hr = IXMLDOMDocument_QueryInterface(doc, &IID_IXMLDOMNode, (
void**)&
node);
7420 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7425 IXMLDOMNode_Release(
node);
7431 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7436 IXMLDOMNode_Release(
node);
7442 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7447 IXMLDOMNode_Release(
node);
7451 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7458 hr = IXMLDOMEntityReference_QueryInterface(
entityref, &IID_IXMLDOMNode, (
void**)&
node);
7459 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7464 IXMLDOMNode_Release(
node);
7465 IXMLDOMEntityReference_Release(
entityref);
7468 hr = IXMLDOMDocument_createTextNode(doc,
_bstr_(
""), &
text);
7469 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7473 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7474 IXMLDOMText_Release(
text);
7476 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
"attr"), &
attr);
7477 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7480 hr = IXMLDOMAttribute_put_nodeValue(
attr,
data);
7481 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7482 hr = IXMLDOMAttribute_get_nodeValue(
attr, &
data);
7483 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7486 IXMLDOMAttribute_Release(
attr);
7490 IXMLDOMDocument_Release(doc);
7501 hr = IXMLDOMDocument_QueryInterface(doc, &IID_IObjectSafety, (
void**)&safety);
7502 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7506 IObjectSafety_Release(safety);
7507 IXMLDOMDocument_Release(doc);
7510 &IID_IObjectSafety, (
void**)&safety);
7511 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
7515 IObjectSafety_Release(safety);
7527 { &
CLSID_DOMDocument,
"CLSID_DOMDocument" ,
"SelectionLanguage",
"XSLPattern" },
7528 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2" ,
"SelectionLanguage",
"XSLPattern" },
7529 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30",
"SelectionLanguage",
"XSLPattern" },
7530 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40",
"SelectionLanguage",
"XPath" },
7531 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60",
"SelectionLanguage",
"XPath" },
7560 IXMLDOMDocument2_Release(doc);
7573 {
"root//elem[0]",
"E1.E2.D1" },
7574 {
"root//elem[index()=1]",
"E2.E2.D1" },
7575 {
"root//elem[index() $eq$ 1]",
"E2.E2.D1" },
7576 {
"root//elem[end()]",
"E4.E2.D1" },
7577 {
"root//elem[$not$ end()]",
"E1.E2.D1 E2.E2.D1 E3.E2.D1" },
7578 {
"root//elem[index() != 0]",
"E2.E2.D1 E3.E2.D1 E4.E2.D1" },
7579 {
"root//elem[index() $ne$ 0]",
"E2.E2.D1 E3.E2.D1 E4.E2.D1" },
7580 {
"root//elem[index() < 2]",
"E1.E2.D1 E2.E2.D1" },
7581 {
"root//elem[index() $lt$ 2]",
"E1.E2.D1 E2.E2.D1" },
7582 {
"root//elem[index() <= 1]",
"E1.E2.D1 E2.E2.D1" },
7583 {
"root//elem[index() $le$ 1]",
"E1.E2.D1 E2.E2.D1" },
7584 {
"root//elem[index() > 1]",
"E3.E2.D1 E4.E2.D1" },
7585 {
"root//elem[index() $gt$ 1]",
"E3.E2.D1 E4.E2.D1" },
7586 {
"root//elem[index() >= 2]",
"E3.E2.D1 E4.E2.D1" },
7587 {
"root//elem[index() $ge$ 2]",
"E3.E2.D1 E4.E2.D1" },
7588 {
"root//elem[a $ieq$ 'a2 field']",
"E2.E2.D1" },
7589 {
"root//elem[a $ine$ 'a2 field']",
"E1.E2.D1 E3.E2.D1 E4.E2.D1" },
7590 {
"root//elem[a $ilt$ 'a3 field']",
"E1.E2.D1 E2.E2.D1" },
7591 {
"root//elem[a $ile$ 'a2 field']",
"E1.E2.D1 E2.E2.D1" },
7592 {
"root//elem[a $igt$ 'a2 field']",
"E3.E2.D1 E4.E2.D1" },
7593 {
"root//elem[a $ige$ 'a3 field']",
"E3.E2.D1 E4.E2.D1" },
7594 {
"root//elem[$any$ *='B2 field']",
"E2.E2.D1" },
7595 {
"root//elem[$all$ *!='B2 field']",
"E1.E2.D1 E3.E2.D1 E4.E2.D1" },
7596 {
"root//elem[index()=0 or end()]",
"E1.E2.D1 E4.E2.D1" },
7597 {
"root//elem[index()=0 $or$ end()]",
"E1.E2.D1 E4.E2.D1" },
7598 {
"root//elem[index()=0 || end()]",
"E1.E2.D1 E4.E2.D1" },
7599 {
"root//elem[index()>0 and $not$ end()]",
"E2.E2.D1 E3.E2.D1" },
7600 {
"root//elem[index()>0 $and$ $not$ end()]",
"E2.E2.D1 E3.E2.D1" },
7601 {
"root//elem[index()>0 && $not$ end()]",
"E2.E2.D1 E3.E2.D1" },
7602 {
"root/elem[0]",
"E1.E2.D1" },
7603 {
"root/elem[index()=1]",
"E2.E2.D1" },
7604 {
"root/elem[index() $eq$ 1]",
"E2.E2.D1" },
7605 {
"root/elem[end()]",
"E4.E2.D1" },
7606 {
"root/elem[$not$ end()]",
"E1.E2.D1 E2.E2.D1 E3.E2.D1" },
7607 {
"root/elem[index() != 0]",
"E2.E2.D1 E3.E2.D1 E4.E2.D1" },
7608 {
"root/elem[index() $ne$ 0]",
"E2.E2.D1 E3.E2.D1 E4.E2.D1" },
7609 {
"root/elem[index() < 2]",
"E1.E2.D1 E2.E2.D1" },
7610 {
"root/elem[index() $lt$ 2]",
"E1.E2.D1 E2.E2.D1" },
7611 {
"root/elem[index() <= 1]",
"E1.E2.D1 E2.E2.D1" },
7612 {
"root/elem[index() $le$ 1]",
"E1.E2.D1 E2.E2.D1" },
7613 {
"root/elem[index() > 1]",
"E3.E2.D1 E4.E2.D1" },
7614 {
"root/elem[index() $gt$ 1]",
"E3.E2.D1 E4.E2.D1" },
7615 {
"root/elem[index() >= 2]",
"E3.E2.D1 E4.E2.D1" },
7616 {
"root/elem[index() $ge$ 2]",
"E3.E2.D1 E4.E2.D1" },
7617 {
"root/elem[a $ieq$ 'a2 field']",
"E2.E2.D1" },
7618 {
"root/elem[a $ine$ 'a2 field']",
"E1.E2.D1 E3.E2.D1 E4.E2.D1" },
7619 {
"root/elem[a $ilt$ 'a3 field']",
"E1.E2.D1 E2.E2.D1" },
7620 {
"root/elem[a $ile$ 'a2 field']",
"E1.E2.D1 E2.E2.D1" },
7621 {
"root/elem[a $igt$ 'a2 field']",
"E3.E2.D1 E4.E2.D1" },
7622 {
"root/elem[a $ige$ 'a3 field']",
"E3.E2.D1 E4.E2.D1" },
7623 {
"root/elem[$any$ *='B2 field']",
"E2.E2.D1" },
7624 {
"root/elem[$all$ *!='B2 field']",
"E1.E2.D1 E3.E2.D1 E4.E2.D1" },
7625 {
"root/elem[index()=0 or end()]",
"E1.E2.D1 E4.E2.D1" },
7626 {
"root/elem[index()=0 $or$ end()]",
"E1.E2.D1 E4.E2.D1" },
7627 {
"root/elem[index()=0 || end()]",
"E1.E2.D1 E4.E2.D1" },
7628 {
"root/elem[index()>0 and $not$ end()]",
"E2.E2.D1 E3.E2.D1" },
7629 {
"root/elem[index()>0 $and$ $not$ end()]",
"E2.E2.D1 E3.E2.D1" },
7630 {
"root/elem[index()>0 && $not$ end()]",
"E2.E2.D1 E3.E2.D1" },
7631 {
"root/elem[d]",
"E1.E2.D1 E2.E2.D1 E4.E2.D1" },
7632 {
"root/elem[@*]",
"E2.E2.D1 E3.E2.D1",
TRUE },
7638 {
"//bar:x",
"E6.E1.E5.E1.E2.D1 E6.E2.E5.E1.E2.D1" },
7640 {
"//foo:elem",
"" },
7641 {
"//foo:c",
"E3.E4.E2.D1" },
7646 {
"attribute()",
"" },
7647 {
"attribute('depth')",
"" },
7648 {
"root/attribute('depth')",
"A'depth'.E3.D1" },
7649 {
"//x/attribute()",
"A'id'.E3.E3.D1 A'depth'.E3.E3.D1" },
7650 {
"//x//attribute(id)",
NULL },
7651 {
"//x//attribute('id')",
"A'id'.E3.E3.D1 A'id'.E4.E3.E3.D1 A'id'.E5.E3.E3.D1 A'id'.E6.E3.E3.D1" },
7652 {
"comment()",
"C2.D1" },
7653 {
"//comment()",
"C2.D1 C1.E3.D1 C2.E3.E3.D1 C2.E4.E3.D1" },
7654 {
"element()",
"E3.D1" },
7655 {
"root/y/element()",
"E4.E4.E3.D1 E5.E4.E3.D1 E6.E4.E3.D1" },
7656 {
"//element(a)",
NULL },
7657 {
"//element('a')",
"E4.E3.E3.D1 E4.E4.E3.D1" },
7658 {
"node()",
"P1.D1 C2.D1 E3.D1" },
7659 {
"//x/node()",
"P1.E3.E3.D1 C2.E3.E3.D1 T3.E3.E3.D1 E4.E3.E3.D1 E5.E3.E3.D1 E6.E3.E3.D1" },
7660 {
"//x/node()[nodeType()=1]",
"E4.E3.E3.D1 E5.E3.E3.D1 E6.E3.E3.D1" },
7661 {
"//x/node()[nodeType()=3]",
"T3.E3.E3.D1" },
7662 {
"//x/node()[nodeType()=7]",
"P1.E3.E3.D1" },
7663 {
"//x/node()[nodeType()=8]",
"C2.E3.E3.D1" },
7664 {
"pi()",
"P1.D1" },
7665 {
"//y/pi()",
"P1.E4.E3.D1" },
7666 {
"root/textnode()",
"T2.E3.D1" },
7667 {
"root/element()/textnode()",
"T3.E3.E3.D1 T3.E4.E3.D1" },
7685 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
7692 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"//elem/c"), &
list);
7696 hr = IXMLDOMNodeList_get_length(
list, &
len);
7699 ok(
len == 3,
"expected 3 entries in list, got %ld\n",
len);
7700 IXMLDOMNodeList_Release(
list);
7706 ok(
hr ==
S_OK,
"query=%s, failed with %#lx\n",
ptr->query,
hr);
7708 hr = IXMLDOMNodeList_get_length(
list, &
len);
7710 ok(
len != 0,
"query=%s, empty list\n",
ptr->query);
7716 IXMLDOMNodeList_Release(
list);
7735 ok(
hr ==
S_OK,
"query=%s, failed with %#lx.\n",
ptr->query,
hr);
7740 hr = IXMLDOMNodeList_get_length(
list, &
len);
7742 ok(
len != 0,
"query=%s, empty list\n",
ptr->query);
7747 hr = IXMLDOMNodeList_get_length(
list, &
len);
7749 ok(
len == 0,
"query=%s, empty list\n",
ptr->query);
7758 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionNamespaces"),
7759 _variantbstr_(
"xmlns:foo='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'"));
7763 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"//foo:c"), &
list);
7766 hr = IXMLDOMNodeList_get_length(
list, &
len);
7768 ok(
len != 0,
"expected filled list\n");
7773 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionNamespaces"),
_variantbstr_(
"xmlns:foo='urn:nonexistent-foo'"));
7777 hr = IXMLDOMDocument2_selectNodes(doc,
_bstr_(
"//foo:c"), &
list);
7780 hr = IXMLDOMNodeList_get_length(
list, &
len);
7782 ok(
len == 0,
"expected empty list\n");
7783 IXMLDOMNodeList_Release(
list);
7785 IXMLDOMDocument2_Release(doc);
7791 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
7800 ok(
hr ==
S_OK,
"query=%s, failed with %#lx.\n",
ptr->query,
hr);
7802 hr = IXMLDOMNodeList_get_length(
list, &
len);
7803 ok(
hr ==
S_OK,
"Failed to get list length, hr %#lx.\n",
hr);
7806 ok(
len != 0,
"query=%s, empty list\n",
ptr->query);
7811 ok(
len == 0,
"query=%s, filled list\n",
ptr->query);
7819 IXMLDOMDocument2_Release(doc);
7840 hr = IXMLDOMDocument_get_documentElement(doc, &
root);
7843 hr = IXMLDOMDocument_createCDATASection(doc,
_bstr_(
"beautiful plumage"), &cdata);
7851 hr = IXMLDOMCDATASection_get_length(cdata, &
length);
7855 hr = IXMLDOMCDATASection_splitText(cdata, 0,
NULL);
7858 text = (
void*)0xdeadbeef;
7860 hr = IXMLDOMCDATASection_splitText(cdata, -1, &
text);
7862 ok(
text == (
void*)0xdeadbeef,
"got %p\n",
text);
7864 text = (
void*)0xdeadbeef;
7866 hr = IXMLDOMCDATASection_splitText(cdata,
length + 1, &
text);
7870 text = (
void*)0xdeadbeef;
7872 hr = IXMLDOMCDATASection_splitText(cdata,
length, &
text);
7877 node = (
void*)0xdeadbeef;
7878 hr = IXMLDOMCDATASection_get_nextSibling(cdata, &
node);
7882 hr = IXMLDOMCDATASection_splitText(cdata, 10, &
text);
7890 hr = IXMLDOMCDATASection_get_nextSibling(cdata, &
node);
7892 IXMLDOMNode_Release(
node);
7898 node = (
void*)0xdeadbeef;
7899 hr = IXMLDOMText_get_nextSibling(
text, &
node);
7906 text2 = (
void*)0xdeadbeef;
7908 hr = IXMLDOMText_splitText(
text, -1, &text2);
7910 ok(text2 == (
void*)0xdeadbeef,
"got %p\n", text2);
7912 text2 = (
void*)0xdeadbeef;
7916 ok(text2 == 0,
"got %p\n", text2);
7918 text2 = (
void*)0xdeadbeef;
7922 ok(text2 == 0,
"got %p\n",
text);
7925 hr = IXMLDOMText_splitText(
text, 4, &text2);
7927 if (text2) IXMLDOMText_Release(text2);
7930 hr = IXMLDOMText_get_nextSibling(
text, &
node);
7932 if (
node) IXMLDOMNode_Release(
node);
7934 IXMLDOMText_Release(
text);
7935 IXMLDOMElement_Release(
root);
7936 IXMLDOMCDATASection_Release(cdata);
7949 {
"xml:lang",
"http://www.w3.org/XML/1998/namespace",
S_FALSE },
7950 {
"lang",
"http://www.w3.org/XML/1998/namespace",
S_OK },
7952 {
"ns:b",
"nshref",
S_FALSE },
7953 {
"b",
"nshref",
S_OK },
7983 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
7985 hr = IXMLDOMDocument_get_documentElement(doc, &
element);
7988 hr = IXMLDOMElement_get_childNodes(
element, &root_list);
7991 hr = IXMLDOMNodeList_get_item(root_list, 1, &pr_node);
7993 IXMLDOMNodeList_Release(root_list);
7995 hr = IXMLDOMNode_get_attributes(pr_node, &
map);
7997 IXMLDOMNode_Release(pr_node);
8000 hr = IXMLDOMNamedNodeMap_get_length(
map, &
len);
8002 ok(
len == 3,
"length %ld\n",
len);
8007 node = (
void*)0xdeadbeef;
8010 ok(
node == (
void*)0xdeadbeef,
"got %p\n",
node);
8018 IXMLDOMNode_Release(
node);
8019 IXMLDOMNamedNodeMap_Release(
map);
8020 IXMLDOMElement_Release(
element);
8025 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"a"), &
node);
8028 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMElement, (
void**)&
element);
8030 IXMLDOMNode_Release(
node);
8038 node = (
void*)0xdeadbeef;
8040 ok(
hr ==
ptr->hr,
"%s, %s: unexpected hr %#lx, expected %#lx.\n",
ptr->name,
ptr->uri,
hr,
ptr->hr);
8042 IXMLDOMNode_Release(
node);
8051 node = (
void*)0xdeadbeef;
8053 ok(
hr ==
ptr->hr,
"%s: unexpected hr %#lx, expected %#lx.\n",
ptr->name,
hr,
ptr->hr);
8055 IXMLDOMNode_Release(
node);
8061 IXMLDOMNamedNodeMap_Release(
map);
8063 IXMLDOMElement_Release(
element);
8064 IXMLDOMDocument_Release(doc);
8082 ok(
hr ==
S_OK,
"loadXML failed\n");
8083 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
8085 hr = IXMLDOMDocument_get_documentElement(doc, &
element);
8086 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8088 hr = IXMLDOMElement_get_childNodes(
element, &root_list);
8089 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8091 hr = IXMLDOMNodeList_get_item(root_list, 1, &pr_node);
8092 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8093 IXMLDOMNodeList_Release(root_list);
8095 hr = IXMLDOMNode_get_attributes(pr_node, &
map);
8096 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8097 IXMLDOMNode_Release(pr_node);
8099 hr = IXMLDOMNamedNodeMap_get_length(
map, &
len);
8100 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8101 ok(
len == 3,
"length %ld\n",
len);
8106 node = (
void*)0xdeadbeef;
8109 ok(
node == (
void*)0xdeadbeef,
"got %p\n",
node);
8113 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8120 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8121 IXMLDOMNode_Release(
node);
8123 IXMLDOMNamedNodeMap_Release(
map );
8124 IXMLDOMElement_Release(
element );
8125 IXMLDOMDocument_Release( doc );
8129#define check_default_props(doc) _check_default_props(__LINE__, doc)
8137 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"SelectionLanguage"), &
var);
8141 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"SelectionNamespaces"), &
var);
8146 hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc, &
b);
8148 ok_(__FILE__,
line)(
b == VARIANT_FALSE,
"expected FALSE\n");
8150 hr = IXMLDOMDocument2_get_schemas(doc, &
var);
8155#define check_set_props(doc) _check_set_props(__LINE__, doc)
8163 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"SelectionLanguage"), &
var);
8168 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"SelectionNamespaces"), &
var);
8173 hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc, &
b);
8175 ok_(__FILE__,
line)(
b == VARIANT_TRUE,
"expected TRUE\n");
8177 hr = IXMLDOMDocument2_get_schemas(doc, &
var);
8183#define set_props(doc, cache) _set_props(__LINE__, doc, cache)
8192 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"SelectionNamespaces"),
_variantbstr_(
"xmlns:wi=\'www.winehq.org\'"));
8194 hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc, VARIANT_TRUE);
8201 hr = IXMLDOMDocument2_putref_schemas(doc,
var);
8206#define unset_props(doc) _unset_props(__LINE__, doc)
8217 hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc, VARIANT_FALSE);
8220 hr = IXMLDOMDocument2_putref_schemas(doc,
var);
8238 const CHAR nodeXML[] =
8240 " <!-- comment node 0 -->"
8242 " <x attr='val'></x>"
8243 " <?foo value='PI for x'?>"
8244 " <![CDATA[ cdata ]]>"
8248 if (!
is_clsid_supported(&CLSID_XMLSchemaCache, &IID_IXMLDOMSchemaCollection))
return;
8257 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
8265 hr = IXMLDOMDocument2_get_firstChild(doc, &
node);
8267 hr = IXMLDOMNode_get_ownerDocument(
node, &doc1);
8271 hr = IXMLDOMDocument_QueryInterface(doc1, &IID_IXMLDOMDocument2, (
void**)&doc_owner);
8273 ok( doc_owner != doc,
"got %p, doc %p\n", doc_owner, doc);
8275 IXMLDOMDocument2_Release(doc_owner);
8277 hr = IXMLDOMNode_get_ownerDocument(
node, &doc2);
8279 IXMLDOMNode_Release(
node);
8281 ok(doc1 != doc2,
"got %p, expected %p. original %p\n", doc2, doc1, doc);
8286 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
8291 hr = IXMLDOMDocument2_get_firstChild(doc, &
node);
8293 hr = IXMLDOMNode_get_ownerDocument(
node, &doc3);
8295 IXMLDOMNode_Release(
node);
8297 hr = IXMLDOMDocument_QueryInterface(doc3, &IID_IXMLDOMDocument2, (
void**)&doc_owner);
8299 ok(doc3 != doc1 && doc3 != doc2 && doc_owner != doc,
"got %p, (%p, %p, %p)\n", doc3, doc, doc1, doc2);
8308 hr = IXMLDOMDocument_loadXML(doc1,
_bstr_(nodeXML), &
b);
8310 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
8312 hr = IXMLDOMDocument_get_documentElement(doc1, &
element);
8315 hr = IXMLDOMElement_get_childNodes(
element, &node_list);
8318 hr = IXMLDOMNodeList_get_length(node_list, &
len);
8321 for(
i = 0;
i <
len;
i++) {
8322 hr = IXMLDOMNodeList_get_item(node_list,
i, &
node);
8325 hr = IXMLDOMNode_get_ownerDocument(
node,
NULL);
8328 IXMLDOMNode_Release(
node);
8330 IXMLDOMElement_Release(
element);
8333 hr = IXMLDOMNodeList_get_item(node_list, 2, &
node);
8335 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMElement, (
void**)&
element);
8337 IXMLDOMNode_Release(
node);
8342 IXMLDOMElement_Release(
element);
8343 hr = IXMLDOMAttribute_get_ownerDocument(
attr,
NULL);
8345 IXMLDOMAttribute_Release(
attr);
8346 IXMLDOMNodeList_Release(node_list);
8348 IXMLDOMSchemaCollection_Release(
cache);
8349 IXMLDOMDocument_Release(doc1);
8350 IXMLDOMDocument_Release(doc2);
8351 IXMLDOMDocument_Release(doc3);
8352 IXMLDOMDocument2_Release(doc);
8353 IXMLDOMDocument2_Release(doc_owner);
8371 ok(
hr ==
S_OK,
"loadXML failed\n");
8372 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
8374 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
8375 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8377 hr = IXMLDOMDocument_get_documentElement(doc, &elem2);
8378 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8379 ok( elem2 !=
elem,
"got same instance\n");
8381 ret_attr = (
void*)0xdeadbeef;
8382 hr = IXMLDOMElement_setAttributeNode(
elem,
NULL, &ret_attr);
8384 ok( ret_attr == (
void*)0xdeadbeef,
"got %p\n", ret_attr);
8386 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
"attr"), &
attr);
8387 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8389 ref1 = IXMLDOMElement_AddRef(
elem);
8390 IXMLDOMElement_Release(
elem);
8392 ret_attr = (
void*)0xdeadbeef;
8393 hr = IXMLDOMElement_setAttributeNode(
elem,
attr, &ret_attr);
8394 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8395 ok( ret_attr ==
NULL,
"got %p\n", ret_attr);
8398 ref2 = IXMLDOMElement_AddRef(
elem);
8399 IXMLDOMElement_Release(
elem);
8400 ok(ref2 == ref1,
"got %ld, expected %ld\n", ref2, ref1);
8405 IXMLDOMElement_Release(elem2);
8408 hr = IXMLDOMElement_getAttributeNode(
elem,
_bstr_(
"attr"), &attr2);
8409 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8410 ok( attr2 !=
attr,
"got same instance %p\n", attr2);
8411 IXMLDOMAttribute_Release(attr2);
8414 ret_attr = (
void*)0xdeadbeef;
8415 hr = IXMLDOMElement_setAttributeNode(
elem,
attr, &ret_attr);
8417 ok( ret_attr == (
void*)0xdeadbeef,
"got %p\n", ret_attr);
8419 IXMLDOMElement_Release(
elem);
8422 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
8423 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8424 ret_attr = (
void*)0xdeadbeef;
8425 hr = IXMLDOMElement_setAttributeNode(
elem,
attr, &ret_attr);
8427 ok( ret_attr == (
void*)0xdeadbeef,
"got %p\n", ret_attr);
8428 IXMLDOMElement_Release(
elem);
8434 ok(
hr ==
S_OK,
"loadXML failed\n");
8435 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
8437 hr = IXMLDOMDocument_get_documentElement(doc2, &
elem);
8438 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8441 IXMLDOMElement_Release(
elem);
8443 IXMLDOMAttribute_Release(
attr);
8446 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"test"), &
elem);
8447 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8450 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
"attr"), &
attr);
8454 ref1 = IXMLDOMAttribute_AddRef(
attr);
8455 IXMLDOMAttribute_Release(
attr);
8459 hr = IXMLDOMAttribute_put_nodeValue(
attr,
v);
8460 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8463 hr = IXMLDOMAttribute_get_xml(
attr, &
str);
8464 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8469 ret_attr = (
void*)0xdeadbeef;
8470 hr = IXMLDOMElement_setAttributeNode(
elem,
attr, &ret_attr);
8472 ok(ret_attr ==
NULL,
"got %p\n", ret_attr);
8475 ref2 = IXMLDOMAttribute_AddRef(
attr);
8476 IXMLDOMAttribute_Release(
attr);
8477 ok(ref1 == ref2,
"got %ld, expected %ld\n", ref2, ref1);
8479 hr = IXMLDOMElement_get_xml(
elem, &
str);
8480 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8487 hr = IXMLDOMAttribute_put_nodeValue(
attr,
v);
8488 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8490 hr = IXMLDOMElement_get_xml(
elem, &
str);
8491 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8496 IXMLDOMElement_Release(
elem);
8497 IXMLDOMAttribute_Release(
attr);
8498 IXMLDOMDocument_Release(doc2);
8499 IXMLDOMDocument_Release(doc);
8518 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem"), &
elem);
8519 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8524 ref = IXMLDOMElement_Release(
elem);
8529 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem"), &
elem);
8530 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8532 IXMLDOMDocument_Release(doc);
8534 IXMLDOMElement_Release(
elem);
8543 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"ns1:test"),
_bstr_(
"http://winehq.org"), &
node);
8544 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8547 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8550 IXMLDOMNode_Release(
node);
8553 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"test"),
_bstr_(
"http://winehq.org/default"), &
node);
8554 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8555 prefix = (
void*)0xdeadbeef;
8561 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8562 ok(
lstrcmpW(
str,
L"<test xmlns=\"http://winehq.org/default\"/>") == 0,
8566 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMElement, (
void**)&
elem);
8567 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8575 hr = IXMLDOMElement_get_namespaceURI(
elem, &
str);
8576 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8577 ok(
lstrcmpW(
str,
L"http://winehq.org/default") == 0,
"expected default namespace\n");
8580 IXMLDOMElement_Release(
elem);
8581 IXMLDOMNode_Release(
node);
8583 IXMLDOMDocument_Release(doc);
8588 "<?xml version=\"1.0\" ?>"
8589 "<a xmlns:ns1=\"ns1 href\" />";
8606 str = (
void*)0xdeadbeef;
8607 hr = IXMLDOMDocument_get_prefix(doc, &
str);
8611 hr = IXMLDOMDocument_get_prefix(doc,
NULL);
8615 hr = IXMLDOMDocument_createCDATASection(doc,
NULL, &cdata);
8618 str = (
void*)0xdeadbeef;
8619 hr = IXMLDOMCDATASection_get_prefix(cdata, &
str);
8623 hr = IXMLDOMCDATASection_get_prefix(cdata,
NULL);
8625 IXMLDOMCDATASection_Release(cdata);
8631 str = (
void*)0xdeadbeef;
8638 IXMLDOMComment_Release(
comment);
8641 hr = IXMLDOMDocument_createDocumentFragment(doc, &fragment);
8644 str = (
void*)0xdeadbeef;
8645 hr = IXMLDOMDocumentFragment_get_prefix(fragment, &
str);
8649 hr = IXMLDOMDocumentFragment_get_prefix(fragment,
NULL);
8651 IXMLDOMDocumentFragment_Release(fragment);
8660 str = (
void*)0xdeadbeef;
8665 IXMLDOMElement_Release(
element);
8669 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8671 str = (
void*)0xdeadbeef;
8673 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
8677 str = (
void*)0xdeadbeef;
8682 IXMLDOMElement_Release(
element);
8687 hr = IXMLDOMDocument_get_documentElement(doc, &
element);
8690 str = (
void*)0xdeadbeef;
8695 str = (
void*)0xdeadbeef;
8700 IXMLDOMDocument_Release(doc);
8715 hr = IXMLDOMDocument_selectSingleNode(doc,
NULL,
NULL);
8718 hr = IXMLDOMDocument_selectNodes(doc,
NULL,
NULL);
8722 ok(
hr ==
S_OK,
"loadXML failed\n");
8723 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
8725 hr = IXMLDOMDocument_selectSingleNode(doc,
NULL,
NULL);
8728 hr = IXMLDOMDocument_selectNodes(doc,
NULL,
NULL);
8731 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"lc"),
NULL);
8734 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"lc"),
NULL);
8737 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"lc"), &
node);
8739 IXMLDOMNode_Release(
node);
8741 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"lc"), &
list);
8743 IXMLDOMNodeList_Release(
list);
8745 list = (
void*)0xdeadbeef;
8746 hr = IXMLDOMDocument_selectNodes(doc,
NULL, &
list);
8748 ok(
list == (
void*)0xdeadbeef,
"got %p\n",
list);
8750 node = (
void*)0xdeadbeef;
8751 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"nonexistent"), &
node);
8755 list = (
void*)0xdeadbeef;
8756 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"nonexistent"), &
list);
8759 hr = IXMLDOMNodeList_get_length(
list, &
len);
8762 IXMLDOMNodeList_Release(
list);
8764 IXMLDOMDocument_Release(doc);
8784 IConnectionPoint_Release(
point);
8787 IConnectionPoint_Release(
point);
8788 hr = IConnectionPointContainer_FindConnectionPoint(conn, &DIID_XMLDOMDocumentEvents, &
point);
8790 IConnectionPoint_Release(
point);
8792 IConnectionPointContainer_Release(conn);
8796 hr = IXMLDOMDocument_put_onreadystatechange(doc,
v);
8803 hr = IXMLDOMDocument_put_onreadystatechange(doc,
v);
8810 hr = IXMLDOMDocument_put_onreadystatechange(doc,
v);
8816 hr = IXMLDOMDocument_put_onreadystatechange(doc,
v);
8823 hr = IXMLDOMDocument_put_onreadystatechange(doc,
v);
8829 hr = IXMLDOMDocument_put_onreadystatechange(doc,
v);
8832 IDispatch_Release(
event);
8834 IXMLDOMDocument_Release(doc);
8839 static const WCHAR xml1[] =
L"<?xml version=\"1.0\"?>\r\n<test/>\r\n";
8840 static const char xml2[] =
"<?xml version=\"1.0\" encoding=\"windows-1252\"?>\r\n<test/>\r\n";
8841 static const char xml2_wine[] =
"<?xml version=\"1.0\" encoding=\"windows-1252\"?>\n<test/>\n";
8842 static const char xml3[] =
"<?xml version=\"1.0\" standalone=\"yes\"?>\r\n<test/>\r\n";
8843 static const char xml3_wine[] =
"<?xml version=\"1.0\" standalone=\"yes\"?>\n<test/>\n";
8861 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"xml"),
_bstr_(
"version=\"1.0\" encoding=\"windows-1252\" dummy=\"value\""), &
pi);
8863 hr = IXMLDOMDocument_createProcessingInstruction(doc,
NULL,
_bstr_(
"version=\"1.0\" encoding=\"UTF-8\""), &
pi);
8865 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"xml"),
NULL, &
pi);
8867 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"xml"),
_bstr_(
"version=\"1.0\" encoding=UTF-8"), &
pi);
8869 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"xml"),
_bstr_(
"version=\"1.0\" encoding='UTF-8\""), &
pi);
8871 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"xml"),
_bstr_(
"version=\"1.0\" encoding=\"UTF-8"), &
pi);
8874 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"xml"),
_bstr_(
"version=\"1.0\" encoding='UTF-8'"), &
pi);
8876 hr = IXMLDOMProcessingInstruction_QueryInterface(
pi, &IID_IXMLDOMNode, (
void **)&
node);
8879 hr = IXMLDOMNode_get_attributes(
node, &node_map);
8881 IXMLDOMNamedNodeMap_Release(node_map);
8882 IXMLDOMNode_Release(
node);
8883 IXMLDOMProcessingInstruction_Release(
pi);
8889 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"test"), &
buff[2], &
pi);
8892 IXMLDOMProcessingInstruction_Release(
pi);
8893 IXMLDOMDocument_Release(doc);
8897 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"xml"),
_bstr_(
"version=\"1.0\" encoding=\"windows-1252\""), &
pi);
8899 hr = IXMLDOMProcessingInstruction_QueryInterface(
pi, &IID_IXMLDOMNode, (
void **)&
node);
8901 hr = IXMLDOMDocument_appendChild(doc,
node,
NULL);
8904 hr = IXMLDOMNode_get_attributes(
node, &node_map);
8907 item = (
void *)0xdeadbeef;
8908 hr = IXMLDOMNamedNodeMap_getNamedItem(node_map,
_bstr_(
"xml"), &
item);
8913 hr = IXMLDOMNamedNodeMap_getNamedItem(node_map,
_bstr_(
"encoding"), &
item);
8917 hr = IXMLDOMNode_get_nodeName(
item, &bstr);
8923 hr = IXMLDOMNode_get_nodeValue(
item, &
var);
8929 IXMLDOMNamedNodeMap_Release(node_map);
8930 IXMLDOMNode_Release(
node);
8931 IXMLDOMProcessingInstruction_Release(
pi);
8937 IXMLDOMElement_Release(
element);
8939 hr = IXMLDOMDocument_get_xml(doc, &xml);
8949 hr = IXMLDOMDocument_save(doc,
var);
8963 hr = IXMLDOMDocument_load(doc,
var, &
b);
8965 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
8971 hr = IXMLDOMDocument_save(doc,
var);
8982 hr = IXMLDOMDocument_loadXML(doc,
_bstr_(
"<?xml version=\"1.0\" standalone=\"yes\"?>\r\n<test/>\r\n"), &
b);
8984 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
8991 hr = IXMLDOMDocument_save(doc,
var);
9002 IXMLDOMDocument_Release(doc);
9007 static const BYTE binhexdata[16] =
9008 {0,1,2,3,4,5,6,7,8,9,0xa,0xb,0xc,0xd,0xe,0xf};
9012 LONG ubound, lbound;
9021 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Element"), &
elem);
9025 hr = IXMLDOMElement_get_dataType(
elem, &
type);
9032 hr = IXMLDOMElement_put_nodeTypedValue(
elem,
type);
9036 hr = IXMLDOMElement_get_dataType(
elem, &
type);
9042 hr = IXMLDOMElement_get_nodeTypedValue(
elem, &
type);
9055 hr = IXMLDOMElement_put_nodeTypedValue(
elem,
value);
9059 hr = IXMLDOMElement_get_nodeTypedValue(
elem, &
value);
9066 hr = IXMLDOMElement_put_nodeTypedValue(
elem,
value);
9070 hr = IXMLDOMElement_get_nodeTypedValue(
elem, &
value);
9075 hr = IXMLDOMElement_get_firstChild(
elem, &
node);
9079 IXMLDOMNode_Release(
node);
9085 hr = IXMLDOMElement_put_dataType(
elem,
_bstr_(
"bin.base64"));
9090 hr = IXMLDOMElement_put_nodeTypedValue(
elem,
value);
9094 hr = IXMLDOMElement_get_nodeTypedValue(
elem, &
value);
9101 ok(ubound == 2,
"got %ld\n", ubound);
9105 ok(lbound == 0,
"got %ld\n", lbound);
9108 ok(
ptr[0] == 0,
"got %x\n",
ptr[0]);
9109 ok(
ptr[1] == 0x10,
"got %x\n",
ptr[1]);
9110 ok(
ptr[2] == 0x83,
"got %x\n",
ptr[2]);
9115 hr = IXMLDOMElement_get_firstChild(
elem, &
node);
9120 IXMLDOMNode_Release(
node);
9131 hr = IXMLDOMElement_put_nodeTypedValue(
elem,
value);
9135 hr = IXMLDOMElement_get_nodeTypedValue(
elem, &
value);
9142 ok(ubound == 6,
"got %ld\n", ubound);
9146 ok(lbound == 0,
"got %ld\n", lbound);
9154 hr = IXMLDOMElement_get_firstChild(
elem, &
node);
9159 IXMLDOMNode_Release(
node);
9166 hr = IXMLDOMElement_put_nodeTypedValue(
elem,
value);
9169 hr = IXMLDOMElement_put_dataType(
elem,
_bstr_(
"bin.hex"));
9175 memcpy(
ptr, binhexdata,
sizeof(binhexdata));
9180 hr = IXMLDOMElement_put_nodeTypedValue(
elem,
value);
9184 hr = IXMLDOMElement_get_nodeTypedValue(
elem, &
value);
9191 ok(ubound == 15,
"got %ld\n", ubound);
9195 ok(lbound == 0,
"got %ld\n", lbound);
9198 ok(!
memcmp(
ptr, binhexdata,
sizeof(binhexdata)),
"got wrong data\n");
9203 hr = IXMLDOMElement_get_firstChild(
elem, &
node);
9208 IXMLDOMNode_Release(
node);
9212 IXMLDOMElement_Release(
elem);
9213 IXMLDOMDocument_Release(doc);
9219 static const char xmlA[] =
"<?xml version=\"1.0\" encoding=\"UTF-16\"?>\r\n<a>test</a>\r\n";
9220 static const char attrA[] =
"attr=\""a & b"\"";
9221 static const char attr2A[] =
"\"a & b\"";
9222 static const char attr3A[] =
"attr=\"&quot;a\"";
9223 static const char attr4A[] =
""a";
9224 static const char fooA[] =
"<foo/>";
9238 hr = IXMLDOMDocument_loadXML( doc,
_bstr_(
"<a>test</a>"), &
b );
9240 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
9242 hr = IXMLDOMDocument_createProcessingInstruction(doc,
_bstr_(
"xml"),
9243 _bstr_(
"version=\"1.0\" encoding=\"UTF-16\""), &
pi);
9246 hr = IXMLDOMDocument_get_firstChild(doc, &
first);
9255 IXMLDOMProcessingInstruction_Release(
pi);
9256 IXMLDOMNode_Release(
first);
9258 hr = IXMLDOMDocument_get_xml(doc, &xml);
9265 IXMLDOMDocument_Release(doc);
9269 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"foo"), &
elem);
9272 hr = IXMLDOMDocument_putref_documentElement(doc,
elem);
9275 hr = IXMLDOMDocument_get_xml(doc, &xml);
9282 IXMLDOMElement_Release(
elem);
9285 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
"attr"), &
attr);
9290 hr = IXMLDOMAttribute_put_value(
attr,
v);
9294 hr = IXMLDOMAttribute_get_xml(
attr, &xml);
9300 hr = IXMLDOMAttribute_get_value(
attr, &
v);
9309 hr = IXMLDOMAttribute_put_value(
attr,
v);
9313 hr = IXMLDOMAttribute_get_xml(
attr, &xml);
9319 hr = IXMLDOMAttribute_get_value(
attr, &
v);
9326 IXMLDOMAttribute_Release(
attr);
9328 IXMLDOMDocument_Release(doc);
9353 hr = IXSLTemplate_putref_stylesheet(
template,
NULL);
9359 hr = IXMLDOMDocument_loadXML( doc,
_bstr_(
"<a>test</a>"), &
b );
9361 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
9364 hr = IXSLTemplate_putref_stylesheet(
template, (
IXMLDOMNode*)doc);
9370 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
9373 hr = IXSLTemplate_putref_stylesheet(
template, (
IXMLDOMNode*)doc);
9376 IXMLDOMDocument_Release(doc);
9380 IXSLTemplate_Release(
template);
9384 hr =
CoCreateInstance(&CLSID_FreeThreadedDOMDocument,
NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument, (
void**)&doc);
9390 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
9393 ref1 = IXMLDOMDocument_AddRef(doc);
9394 IXMLDOMDocument_Release(doc);
9395 hr = IXSLTemplate_putref_stylesheet(
template, (
IXMLDOMNode*)doc);
9397 ref2 = IXMLDOMDocument_AddRef(doc);
9398 IXMLDOMDocument_Release(doc);
9399 ok(ref2 > ref1,
"got %ld\n", ref2);
9402 hr = IXSLTemplate_createProcessor(
template,
NULL);
9406 hr = IXSLTemplate_createProcessor(
template, &processor);
9413 hr = IXSLProcessor_get_input(processor, &
v);
9419 hr = IXSLProcessor_get_output(processor,
NULL);
9424 hr = IXSLProcessor_put_output(processor,
v);
9429 hr = IXSLProcessor_put_output(processor,
v);
9434 hr = IXSLProcessor_put_output(processor,
v);
9443 hr = IXSLProcessor_put_output(processor,
v);
9450 hr = IXSLProcessor_get_output(processor, &
v);
9458 hr = IXSLProcessor_transform(processor,
NULL);
9463 hr = IXSLProcessor_put_output(processor,
v);
9474 hr = IXMLDOMDocument_loadXML( doc2,
_bstr_(
"<a>test</a>"), &
b );
9476 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
9480 hr = IXSLProcessor_put_input(processor,
v);
9483 hr = IXSLProcessor_transform(processor, &
b);
9487 hr = IXSLProcessor_get_output(processor, &
v);
9497 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
9501 hr = IXSLProcessor_put_input(processor,
v);
9507 hr = IXSLProcessor_put_output(processor,
v);
9510 hr = IXMLDOMDocument_get_xml(doc3, &
str);
9512 ok(!*
str,
"Expected empty document\n");
9515 hr = IXSLProcessor_transform(processor, &
b);
9519 hr = IXSLProcessor_get_output(processor, &
v);
9524 hr = IXMLDOMDocument_get_xml(doc3, &
str);
9526 ok(!!*
str,
"Expected document\n");
9531 hr = IXSLProcessor_put_output(processor,
v);
9536 hr = IXSLProcessor_put_output(processor,
v);
9540 hr = IXSLProcessor_transform(processor, &
b);
9542 ok(
b == VARIANT_TRUE,
"got %x\n",
b);
9544 IXSLProcessor_Release(processor);
9545 IXMLDOMDocument_Release(doc2);
9546 IXMLDOMDocument_Release(doc3);
9549 hr = IXSLTemplate_putref_stylesheet(
template,
NULL);
9551 ref2 = IXMLDOMDocument_AddRef(doc);
9552 IXMLDOMDocument_Release(doc);
9553 ok(ref2 == ref1,
"got %ld\n", ref2);
9555 IXMLDOMDocument_Release(doc);
9556 IXSLTemplate_Release(
template);
9575 node = (
void*)0xdeadbeef;
9576 hr = IXMLDOMDocument_insertBefore(doc,
NULL,
v, &
node);
9578 ok(
node == (
void*)0xdeadbeef,
"got %p\n",
node);
9582 node = (
void*)0xdeadbeef;
9589 node = (
void*)0xdeadbeef;
9605 node = (
void*)0xdeadbeef;
9615 hr = IXMLDOMDocument_createNode(doc3,
v,
_bstr_(
"cdata"),
NULL, &cdata);
9617 ok(cdata !=
NULL,
"got %p\n", cdata);
9623 node = (
void*)0xdeadbeef;
9630 node = (
void*)0xdeadbeef;
9636 node = (
void*)0xdeadbeef;
9637 hr = IXMLDOMDocument_insertBefore(doc3, cdata,
v, &
node);
9641 IXMLDOMNode_Release(cdata);
9642 IXMLDOMDocument_Release(doc3);
9648 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"attr2"),
NULL, &newnode);
9650 ok(newnode !=
NULL,
"got %p\n", newnode);
9653 node = (
void*)0xdeadbeef;
9654 hr = IXMLDOMAttribute_insertBefore(
attr, newnode,
v, &
node);
9660 node = (
void*)0xdeadbeef;
9661 hr = IXMLDOMAttribute_insertBefore(
attr, newnode,
v, &
node);
9664 IXMLDOMNode_Release(newnode);
9670 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"cdata"),
NULL, &newnode);
9672 ok(newnode !=
NULL,
"got %p\n", newnode);
9675 node = (
void*)0xdeadbeef;
9676 hr = IXMLDOMAttribute_insertBefore(
attr, newnode,
v, &
node);
9679 IXMLDOMNode_Release(newnode);
9685 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"cdata"),
NULL, &newnode);
9687 ok(newnode !=
NULL,
"got %p\n", newnode);
9690 node = (
void*)0xdeadbeef;
9691 hr = IXMLDOMAttribute_insertBefore(
attr, newnode,
v, &
node);
9694 IXMLDOMNode_Release(newnode);
9700 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"cdata"),
NULL, &newnode);
9702 ok(newnode !=
NULL,
"got %p\n", newnode);
9705 node = (
void*)0xdeadbeef;
9706 hr = IXMLDOMAttribute_insertBefore(
attr, newnode,
v, &
node);
9709 IXMLDOMNode_Release(newnode);
9715 hr = IXMLDOMDocument_createNode(doc,
v,
_bstr_(
"cdata"),
NULL, &newnode);
9717 ok(newnode !=
NULL,
"got %p\n", newnode);
9720 node = (
void*)0xdeadbeef;
9721 hr = IXMLDOMAttribute_insertBefore(
attr, newnode,
v, &
node);
9724 IXMLDOMNode_Release(newnode);
9725 IXMLDOMAttribute_Release(
attr);
9728 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem"), &elem1);
9731 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem2"), &elem2);
9734 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem3"), &elem3);
9737 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem3"), &elem3);
9740 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem4"), &elem4);
9751 node = (
void*)0xdeadbeef;
9752 hr = IXMLDOMElement_insertBefore(elem1,
NULL,
v, &
node);
9754 ok(
node == (
void*)0xdeadbeef,
"got %p\n",
node);
9772 IXMLDOMElement_Release(elem4);
9784 IXMLDOMNode_Release(
node);
9797 IXMLDOMNode_Release(
node);
9801 node = (
void*)0xdeadbeef;
9809 IXMLDOMNode_Release(
node);
9814 hr = IXMLDOMDocument_createElement(doc2,
_bstr_(
"elem4"), &elem4);
9819 hr = IXMLDOMDocument_createElement(doc2,
_bstr_(
"elem4"), &elem5);
9831 IXMLDOMNode_Release(
node);
9840 IXMLDOMNode_Release(
node);
9842 IXMLDOMDocument_Release(doc2);
9844 IXMLDOMElement_Release(elem1);
9845 IXMLDOMElement_Release(elem2);
9846 IXMLDOMElement_Release(elem3);
9847 IXMLDOMElement_Release(elem4);
9848 IXMLDOMElement_Release(elem5);
9856 ok(elem1 !=
NULL,
"got %p\n", elem1);
9863 ok(elem2 !=
NULL,
"got %p\n", elem2);
9867 hr = IXMLDOMElement_get_xml(elem1, &
p);
9873 hr = IXMLDOMElement_get_xml(elem2, &
p);
9885 hr = IXMLDOMElement_get_xml(elem1, &
p);
9892 hr = IXMLDOMElement_get_xml(elem2, &
p);
9897 IXMLDOMElement_Release(elem1);
9898 IXMLDOMElement_Release(elem2);
9906 ok(elem1 !=
NULL,
"got %p\n", elem1);
9913 ok(elem2 !=
NULL,
"got %p\n", elem2);
9922 hr = IXMLDOMElement_get_xml(elem2, &
p);
9931 hr = IXMLDOMElement_get_xml(elem2, &
p);
9936 IXMLDOMElement_Release(elem1);
9937 IXMLDOMElement_Release(elem2);
9938 IXMLDOMDocument_Release(doc);
9950 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"elem"), &
elem);
9953 hr = IXMLDOMDocument_createElement(doc2,
_bstr_(
"elem2"), &elem2);
9963 hr = IXMLDOMDocument_appendChild(doc2,
NULL,
NULL);
9980 IXMLDOMElement_Release(
elem);
9981 IXMLDOMElement_Release(elem2);
9982 IXMLDOMDocument_Release(doc);
9983 IXMLDOMDocument_Release(doc2);
9996 hr = IXMLDOMDocument_get_doctype(doc,
NULL);
9999 doctype = (
void*)0xdeadbeef;
10000 hr = IXMLDOMDocument_get_doctype(doc, &doctype);
10002 ok(doctype ==
NULL,
"got %p\n", doctype);
10005 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10006 ok(
b == VARIANT_TRUE,
"failed to load XML string\n");
10009 hr = IXMLDOMDocument_get_doctype(doc, &doctype);
10010 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10011 ok(doctype !=
NULL,
"got %p\n", doctype);
10013 hr = IXMLDOMDocumentType_get_name(doctype,
NULL);
10016 hr = IXMLDOMDocumentType_get_name(doctype, &
s);
10017 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10021 hr = IXMLDOMDocumentType_get_nodeName(doctype, &
s);
10022 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10026 IXMLDOMDocumentType_Release(doctype);
10027 IXMLDOMDocument_Release(doc);
10039 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"element"), &
elem);
10040 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10042 hr = IXMLDOMElement_get_tagName(
elem,
NULL);
10046 hr = IXMLDOMElement_get_tagName(
elem, &
str);
10047 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10051 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"s:element"), &elem2);
10052 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10055 hr = IXMLDOMElement_get_tagName(elem2, &
str);
10056 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10060 IXMLDOMElement_Release(
elem);
10061 IXMLDOMElement_Release(elem2);
10062 IXMLDOMDocument_Release(doc);
10092 while (
entry->type)
10101 ok(
hr ==
S_OK,
"failed to create node, type %d\n",
entry->type);
10108 ok(
hr ==
entry->hr,
"Unexpected hr %#lx, expected %#lx. node type %d\n",
10114 IXMLDOMNode_Release(
node);
10119 IXMLDOMDocument_Release(doc);
10149 hr = IXMLDOMDocument_get_nodeTypeString(doc, &
str);
10150 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10154 while (
entry->type)
10162 ok(
hr ==
S_OK,
"failed to create node, type %d\n",
entry->type);
10164 hr = IXMLDOMNode_get_nodeTypeString(
node,
NULL);
10167 hr = IXMLDOMNode_get_nodeTypeString(
node, &
str);
10168 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10172 IXMLDOMNode_Release(
node);
10177 IXMLDOMDocument_Release(doc);
10199 const WCHAR *namespaces[] =
10220 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10222 hr = IXMLDOMDocument_get_attributes(doc,
NULL);
10225 map = (
void*)0xdeadbeef;
10226 hr = IXMLDOMDocument_get_attributes(doc, &
map);
10231 hr = IXMLDOMDocument_get_firstChild(doc, &
node);
10232 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10234 hr = IXMLDOMNode_get_attributes(
node, &
map);
10235 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10237 node2 = (
void*)0xdeadbeef;
10238 hr = IXMLDOMNamedNodeMap_getNamedItem(
map,
_bstr_(
"attr"), &node2);
10240 ok(node2 ==
NULL,
"got %p\n", node2);
10243 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
10244 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10254 hr = IXMLDOMNamedNodeMap_get_item(
map, 0, &node2);
10255 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10258 hr = IXMLDOMNode_get_nodeName(node2, &
str);
10259 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10264 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
10265 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10269 hr = IXMLDOMNode_get_nodeType(node2, &
type);
10270 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10274 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10279 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10283 hr = IXMLDOMNamedNodeMap_removeNamedItem(
map,
_bstr_(
"version"),
NULL);
10284 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10287 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
10288 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10292 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10297 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10301 IXMLDOMNamedNodeMap_Release(
map);
10303 hr = IXMLDOMNode_get_attributes(
node, &
map);
10304 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10307 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
10308 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10311 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
"encoding"), &
attr);
10312 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10316 hr = IXMLDOMAttribute_put_nodeValue(
attr,
v);
10317 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10321 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10324 hr = IXMLDOMNode_get_attributes(
node, &
map);
10325 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10328 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
10329 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10333 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10338 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10342 IXMLDOMNamedNodeMap_Release(
map);
10343 IXMLDOMNode_Release(node2);
10346 IXMLDOMNode_Release(
node);
10350 hr = IXMLDOMDocument_get_lastChild(doc, &
node);
10351 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10355 hr = IXMLDOMNode_get_attributes(
node, &
map);
10356 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10361 hr = IXMLDOMNamedNodeMap_get_item(
map, 0, &node2);
10362 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10367 IXMLDOMNode_Release(node2);
10370 IXMLDOMNode_Release(
node);
10373 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
10374 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10378 hr = IXMLDOMNamedNodeMap_get_item(
map, 0, &node2);
10379 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10381 IXMLDOMNode_Release(node2);
10383 IXMLDOMNamedNodeMap_Release(
map);
10386 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"test"), &
elem);
10387 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10391 hr = IXMLDOMElement_setAttribute(
elem,
_bstr_(
"testattr"),
v);
10392 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10394 hr = IXMLDOMElement_get_attributes(
elem, &
map);
10395 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10398 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
10399 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10405 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10407 IXMLDOMNode_Release(
node);
10408 IXMLDOMElement_Release(
elem);
10409 IXMLDOMDocument_Release(doc2);
10412 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
10413 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10416 IXMLDOMNamedNodeMap_Release(
map);
10418 while (
entry->type)
10427 ok(
hr ==
S_OK,
"failed to create node, type %d\n",
entry->type);
10429 hr = IXMLDOMNode_get_attributes(
node,
NULL);
10432 map = (
void*)0xdeadbeef;
10433 hr = IXMLDOMNode_get_attributes(
node, &
map);
10434 ok(
hr ==
entry->hr,
"Unexpected hr %#lx, expected %#lx. node type %d\n",
10438 IXMLDOMNode_Release(
node);
10443 IXMLDOMDocument_Release(doc);
10446 L"<rdf:RDF xmlns:oslc_am=\"http://open-services.net/ns/am#\""
10447 L" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\""
10448 L" xmlns:dcterms=\"http://purl.org/dc/terms/\""
10449 L" xmlns:foaf=\"http://xmlns.com/foaf/0.1/\" >"
10454 hr = IXMLDOMDocument_loadXML(doc,
str, &
b);
10455 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10456 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
10458 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
10459 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10461 hr = IXMLDOMElement_get_attributes(
elem, &
map);
10462 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10465 hr = IXMLDOMNamedNodeMap_get_length(
map, &
length);
10466 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10471 hr = IXMLDOMNamedNodeMap_get_item(
map,
i, &node2);
10472 ok(
hr ==
S_OK,
"Unexpected hr %#lx (%ld).\n",
hr,
i);
10474 hr = IXMLDOMNode_get_nodeName(node2, &
str);
10475 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10479 IXMLDOMNode_Release(node2);
10482 IXMLDOMNamedNodeMap_Release(
map);
10483 IXMLDOMElement_Release(
elem);
10485 IXMLDOMDocument_Release(doc);
10511 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10513 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"root"), &
list);
10514 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10516 hr = IXMLDOMNodeList_QueryInterface(
list, &IID_IXMLDOMSelection, (
void**)&
selection);
10517 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10521 hr = IXMLDOMSelection_QueryInterface(
selection, &IID_IDispatchEx, (
void**)&dispex);
10522 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10524 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"0"), 0, &did);
10525 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10529 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10531 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"10"), 0, &did);
10532 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10534 IDispatchEx_Release(dispex);
10538 hr = IXMLDOMSelection_QueryInterface(
selection, &IID_IEnumVARIANT, (
void**)&enum1);
10539 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10540 ok(enum1 !=
NULL,
"got %p\n", enum1);
10545 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10550 hr = IEnumVARIANT_QueryInterface(enum1, &
IID_IUnknown, (
void**)&unk2);
10551 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10554 ok(unk2 ==
unk1,
"got %p, %p\n",
unk1, unk2);
10555 IUnknown_Release(unk2);
10558 IEnumVARIANT_AddRef(enum1);
10560 IEnumVARIANT_Release(enum1);
10563 hr = IXMLDOMSelection_QueryInterface(
selection, &IID_IEnumVARIANT, (
void**)&enum3);
10564 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10565 ok(enum3 !=
NULL,
"got %p\n", enum3);
10566 ok(enum1 == enum3,
"got %p and %p\n", enum1, enum3);
10568 IEnumVARIANT_Release(enum3);
10575 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10576 ok(enum2 !=
NULL,
"got %p\n", enum2);
10582 ok(enum1 != enum2,
"got %p, %p\n", enum1, enum2);
10584 hr = IEnumVARIANT_QueryInterface(enum2, &
IID_IUnknown, (
void**)&unk2);
10585 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10588 ok(unk2 !=
unk1,
"got %p, %p\n",
unk1, unk2);
10589 IUnknown_Release(unk2);
10590 IUnknown_Release(
unk1);
10593 hr = IEnumVARIANT_QueryInterface(enum1, &IID_IXMLDOMSelection, (
void**)&selection2);
10594 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10599 IXMLDOMSelection_Release(selection2);
10601 hr = IEnumVARIANT_QueryInterface(enum1, &
IID_IDispatch, (
void**)&disp);
10602 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10604 IDispatch_Release(disp);
10606 hr = IEnumVARIANT_QueryInterface(enum1, &IID_IEnumVARIANT, (
void**)&enum3);
10607 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10608 ok(enum3 == enum1,
"got %p and %p\n", enum3, enum1);
10612 IEnumVARIANT_Release(enum1);
10613 IEnumVARIANT_Release(enum2);
10614 IEnumVARIANT_Release(enum3);
10618 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10619 ok(enum1 !=
NULL,
"got %p\n", enum1);
10625 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10626 ok(enum2 !=
NULL,
"got %p\n", enum2);
10630 ok(enum1 != enum2,
"got %p, %p\n", enum1, enum2);
10632 IEnumVARIANT_AddRef(enum1);
10636 IEnumVARIANT_Release(enum1);
10638 IEnumVARIANT_Release(enum1);
10639 IEnumVARIANT_Release(enum2);
10643 IXMLDOMNodeList_Release(
list);
10645 hr = IXMLDOMDocument_get_childNodes(doc, &
list);
10646 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10648 hr = IXMLDOMNodeList_QueryInterface(
list, &IID_IXMLDOMSelection, (
void**)&
selection);
10651 IXMLDOMNodeList_Release(
list);
10655 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10657 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"root/*"), &
list);
10658 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10660 hr = IXMLDOMNodeList_QueryInterface(
list, &IID_IXMLDOMSelection, (
void**)&
selection);
10661 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10665 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10670 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10674 hr = IEnumVARIANT_Next(enum1, 0, &
v[0],
NULL);
10675 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10679 hr = IEnumVARIANT_Next(enum1, 1,
NULL,
NULL);
10682 hr = IEnumVARIANT_Next(enum1, 1,
NULL, &
ret);
10687 hr = IEnumVARIANT_Next(enum1, 1, &
v[0],
NULL);
10688 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10691 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[0]), &IID_IXMLDOMNode, (
void**)&
node);
10692 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10694 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10697 IXMLDOMNode_Release(
node);
10702 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10704 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10706 IXMLDOMNode_Release(
node);
10710 hr = IEnumVARIANT_Next(enum1, 1, &
v[0],
NULL);
10711 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10713 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[0]), &IID_IXMLDOMNode, (
void**)&
node);
10714 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10716 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10719 IXMLDOMNode_Release(
node);
10723 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10725 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10727 IXMLDOMNode_Release(
node);
10730 hr = IEnumVARIANT_Reset(enum1);
10731 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10736 hr = IEnumVARIANT_Next(enum1, 2,
v, &
ret);
10737 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10738 ok(
ret == 2,
"got %ld, expected 2\n",
ret);
10742 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[0]), &IID_IXMLDOMNode, (
void**)&
node);
10743 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10745 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10748 IXMLDOMNode_Release(
node);
10750 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[1]), &IID_IXMLDOMNode, (
void**)&
node);
10751 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10755 IXMLDOMNode_Release(
node);
10762 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10764 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10767 IXMLDOMNode_Release(
node);
10774 hr = IEnumVARIANT_Next(enum1, 4,
v, &
ret);
10776 ok(
ret == 2,
"got %ld, expected 2\n",
ret);
10779 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[0]), &IID_IXMLDOMNode, (
void**)&
node);
10780 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10782 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10785 IXMLDOMNode_Release(
node);
10788 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[1]), &IID_IXMLDOMNode, (
void**)&
node);
10789 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10791 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10794 IXMLDOMNode_Release(
node);
10801 IEnumVARIANT_Release(enum1);
10804 IXMLDOMNodeList_Release(
list);
10805 IXMLDOMDocument_Release(doc);
10825#define TEST_DOC_LOAD_FROM_PATH(doc,path,expected_hr, expected_ret) \
10826 _test_doc_load_from_path(doc, path, expected_hr, expected_ret, __LINE__)
10841 hr = IXMLDOMDocument_load(doc,
src, &
b);
10842 ok_(__FILE__,
line)(
hr == expected_hr,
"Failed to load document, %#lx.\n",
hr);
10843 ok_(__FILE__,
line)(
b == expected_ret,
"got %d\n",
b);
10847 hr = IXMLDOMDocument_load(doc,
src, &
b);
10848 ok_(__FILE__,
line)(
hr == expected_hr,
"Failed to load document, %#lx.\n",
hr);
10849 ok_(__FILE__,
line)(
b == expected_ret,
"got %d\n",
b);
10851 if (expected_hr !=
S_OK)
10855 hr = IXMLDOMDocument_get_url(doc, &
url);
10856 ok_(__FILE__,
line)(
hr ==
S_OK,
"Failed to get document url, hr %#lx.\n",
hr);
10858 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
10862 hr = IXMLDOMElement_get_ownerDocument(
elem, &doc2);
10863 ok_(__FILE__,
line)(
hr ==
S_OK,
"Failed to get owner document, hr %#lx.\n",
hr);
10865 hr = IXMLDOMDocument_get_url(doc2, &
url2);
10866 ok_(__FILE__,
line)(
hr ==
S_OK,
"Failed to get document url, hr %#lx.\n",
hr);
10869 IXMLDOMDocument_Release(doc2);
10870 IXMLDOMElement_Release(
elem);
10899 struct encoding_test
10904 } encoding_tests[] =
10924 hr = IXMLDOMDocument_load(doc,
src, &
b);
10926 ok(
b == VARIANT_FALSE,
"got %d\n",
b);
10952 hr = IXMLDOMDocument_load(doc,
src, &
b);
10954 ok(
b == VARIANT_FALSE,
"got %d\n",
b);
10957 hr = IXMLDOMDocument_get_url(doc, &bstr1);
10958 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
10985 hr = IXMLDOMDocument_load(doc,
src, &
b);
10987 ok(
b == VARIANT_FALSE,
"got %d\n",
b);
10989 bstr1 = (
void *)0xdeadbeef;
10990 hr = IXMLDOMDocument_get_url(doc, &bstr1);
10992 ok(bstr1 ==
NULL,
"got %p\n", bstr1);
10995 IXMLDOMDocument_Release(doc);
11000 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11001 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
11003 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"//*"), &
list);
11004 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11007 hr = IXMLDOMNodeList_reset(
list);
11008 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11010 IXMLDOMDocument_Release(doc);
11020 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11021 ok(
ptr !=
NULL,
"SafeArrayAccessData() returned NULL\n");
11025 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11027 hr = IXMLDOMDocument_load(doc,
src, &
b);
11028 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11029 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
11031 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"//*"), &
list);
11032 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11035 hr = IXMLDOMNodeList_reset(
list);
11036 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11038 ok(
lstrcmpW(bstr1, bstr2) == 0,
"strings not equal: %s : %s\n",
11041 IXMLDOMDocument_Release(doc);
11042 IXMLDOMNodeList_Release(
list);
11053 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11054 ok(
ptr !=
NULL,
"SafeArrayAccessData() returned NULL\n");
11058 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11060 hr = IXMLDOMDocument_load(doc,
src, &
b);
11062 ok(
b == VARIANT_FALSE,
"got %d\n",
b);
11072 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11073 ok(
ptr !=
NULL,
"SafeArrayAccessData() returned NULL\n");
11077 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11079 hr = IXMLDOMDocument_load(doc,
src, &
b);
11081 ok(
b == VARIANT_FALSE,
"got %d\n",
b);
11090 hr = IXMLDOMDocument_load(doc,
src, &
b);
11092 ok(
b == VARIANT_FALSE,
"got %d\n",
b);
11101 hr = IXMLDOMDocument_load(doc,
src, &
b);
11102 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11103 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
11107 IXMLDOMDocument_Release(doc);
11118 IXMLDOMDocument_Release(doc);
11134 hr = IUnknown_QueryInterface(
obj, &IID_IDispatchEx, (
void**)&dispex);
11135 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11139 hr = IDispatchEx_GetTypeInfoCount(dispex, &ticnt);
11140 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11141 ok(ticnt == 1,
"ticnt=%u\n", ticnt);
11144 hr = IDispatchEx_DeleteMemberByName(dispex,
name, fdexNameCaseSensitive);
11148 hr = IDispatchEx_DeleteMemberByDispID(dispex, dispid);
11152 hr = IDispatchEx_GetMemberProperties(dispex, dispid, grfdexPropCanAll, &
props);
11156 hr = IDispatchEx_GetMemberName(dispex, dispid, &
name);
11164 hr = IDispatchEx_GetNameSpaceParent(dispex, &unk);
11166 ok(unk == (
IUnknown*)0xdeadbeef,
"got %p\n", unk);
11169 hr = IDispatchEx_GetDispID(dispex,
name, fdexNameEnsure, &dispid);
11173 IDispatchEx_Release(dispex);
11178 static const char xmluriA[] =
"http://www.w3.org/XML/1998/namespace";
11180 IVBMXNamespaceManager *mgr2;
11181 IMXNamespaceManager *nsmgr;
11189 &IID_IMXNamespaceManager, (
void**)&nsmgr);
11190 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11197 hr = IMXNamespaceManager_QueryInterface(nsmgr, &IID_IVBMXNamespaceManager, (
void**)&mgr2);
11198 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11203 hr = IVBMXNamespaceManager_getDeclaredPrefixes(mgr2, &
prefixes);
11205 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11210 DISPPARAMS dispparams;
11223 IUnknown_Release(
unk1);
11224 IUnknown_Release(unk2);
11226 hr = IMXNamespacePrefixes_QueryInterface(
prefixes, &IID_IDispatchEx, (
void**)&dispex);
11227 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11231 dispparams.cArgs = 1;
11232 dispparams.cNamedArgs = 0;
11233 dispparams.rgdispidNamedArgs =
NULL;
11234 dispparams.rgvarg = &
arg;
11239 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11244 IDispatchEx_Release(dispex);
11245 IMXNamespacePrefixes_Release(
prefixes);
11247 IVBMXNamespaceManager_Release(mgr2);
11249 hr = IMXNamespaceManager_declarePrefix(nsmgr,
NULL,
NULL);
11250 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11253 hr = IMXNamespaceManager_declarePrefix(nsmgr,
NULL,
_bstr_(
"ns0 uri"));
11256 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns0"),
NULL);
11260 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"xml"),
_bstr_(
"uri1"));
11263 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"xmlns"),
_bstr_(
"uri1"));
11266 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, -1,
NULL,
NULL);
11269 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0,
NULL,
NULL);
11273 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0,
NULL, &
len);
11274 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11279 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0, buffW, &
len);
11280 ok(
hr == E_XML_BUFFERTOOSMALL,
"Unexpected hr %#lx.\n",
hr);
11282 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11286 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0, buffW, &
len);
11287 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11305 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11310 hr = IMXNamespaceManager_getURI(nsmgr,
_bstr_(
"xml"),
NULL, buffW, &
len);
11311 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11317 hr = IMXNamespaceManager_getURI(nsmgr,
_bstr_(
"xml"),
NULL, buffW, &
len);
11318 ok(
hr == E_XML_BUFFERTOOSMALL,
"Unexpected hr %#lx.\n",
hr);
11320 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11330 hr = IMXNamespaceManager_getURI(nsmgr,
_bstr_(
"xml1"),
NULL, buffW, &
len);
11332 ok(buffW[0] == 0,
"got %x\n", buffW[0]);
11336 hr = IMXNamespaceManager_QueryInterface(nsmgr, &
IID_IUnknown, (
void**)&unk);
11337 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11339 IUnknown_Release(unk);
11341 IMXNamespaceManager_Release(nsmgr);
11345 &IID_IMXNamespaceManager, (
void**)&nsmgr);
11346 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11352 hr = IMXNamespaceManager_getPrefix(nsmgr,
NULL, 0,
NULL, &
len);
11358 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns0 uri"), 0, buffW, &
len);
11360 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11365 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns0 uri"), 0, buffW, &
len);
11367 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11370 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns1"),
_bstr_(
"ns1 uri"));
11371 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11375 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 0, buffW, &
len);
11376 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11382 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"http://www.w3.org/XML/1998/namespace"), 0, buffW, &
len);
11383 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11389 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"http://www.w3.org/XML/1998/namespace"), 0,
NULL, &
len);
11390 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11394 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"http://www.w3.org/XML/1998/namespace"), 0,
NULL, &
len);
11395 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11400 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 1, buffW, &
len);
11402 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11407 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 2, buffW, &
len);
11409 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11414 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
""), 0, buffW, &
len);
11416 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11421 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
""), 1, buffW, &
len);
11423 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11428 hr = IMXNamespaceManager_getPrefix(nsmgr,
NULL, 0, buffW, &
len);
11430 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11435 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns0 uri"), 1, buffW, &
len);
11437 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11442 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
""), 1, buffW, &
len);
11444 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11448 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns2"),
_bstr_(
"ns2 uri"));
11449 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11453 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 0, buffW, &
len);
11454 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11460 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns2 uri"), 0, buffW, &
len);
11461 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11467 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns2 uri"), 1, buffW, &
len);
11469 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11474 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
""), 1, buffW, &
len);
11476 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11479 IMXNamespaceManager_Release(nsmgr);
11483 &IID_IMXNamespaceManager, (
void**)&nsmgr);
11484 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11487 hr = IMXNamespaceManager_popContext(nsmgr);
11490 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns1"),
_bstr_(
"ns1 uri"));
11491 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11495 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 0, buffW, &
len);
11496 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11500 hr = IMXNamespaceManager_pushContext(nsmgr);
11501 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11505 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 0, buffW, &
len);
11506 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11510 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns2"),
_bstr_(
"ns2 uri"));
11511 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11515 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns2 uri"), 0, buffW, &
len);
11516 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11520 hr = IMXNamespaceManager_pushContext(nsmgr);
11521 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11522 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns3"),
_bstr_(
"ns3 uri"));
11523 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11527 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns2 uri"), 0, buffW, &
len);
11528 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11534 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 0, buffW, &
len);
11535 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11539 hr = IMXNamespaceManager_popContext(nsmgr);
11540 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11542 hr = IMXNamespaceManager_popContext(nsmgr);
11543 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11547 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns2 uri"), 0, buffW, &
len);
11549 ok(buffW[0] == 0x1,
"got %x\n", buffW[0]);
11554 hr = IMXNamespaceManager_getPrefix(nsmgr,
_bstr_(
"ns1 uri"), 0, buffW, &
len);
11555 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11559 IMXNamespaceManager_Release(nsmgr);
11566 IMXNamespaceManager *nsmgr;
11573 &IID_IMXNamespaceManager, (
void**)&nsmgr);
11574 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11578 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0, buffW, &
len);
11579 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11584 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 1, buffW, &
len);
11587 hr = IMXNamespaceManager_getAllowOverride(nsmgr,
NULL);
11591 hr = IMXNamespaceManager_getAllowOverride(nsmgr, &
b);
11592 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11593 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
11595 hr = IMXNamespaceManager_putAllowOverride(nsmgr, VARIANT_FALSE);
11596 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11598 hr = IMXNamespaceManager_declarePrefix(nsmgr,
NULL,
_bstr_(
"ns0 uri"));
11599 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11603 hr = IMXNamespaceManager_getURI(nsmgr,
_bstr_(
""),
NULL, buffW, &
len);
11604 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11607 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns0"),
_bstr_(
"ns0 uri"));
11608 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11612 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0, buffW, &
len);
11613 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11618 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 1, buffW, &
len);
11619 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11624 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 2, buffW, &
len);
11625 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11629 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
"ns1"),
_bstr_(
"ns1 uri"));
11630 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11634 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 1, buffW, &
len);
11635 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11638 hr = IMXNamespaceManager_declarePrefix(nsmgr,
_bstr_(
""),
NULL);
11641 hr = IMXNamespaceManager_declarePrefix(nsmgr,
NULL,
NULL);
11644 hr = IMXNamespaceManager_declarePrefix(nsmgr,
NULL,
_bstr_(
"ns0 uri"));
11647 hr = IMXNamespaceManager_putAllowOverride(nsmgr, VARIANT_TRUE);
11648 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11650 hr = IMXNamespaceManager_declarePrefix(nsmgr,
NULL,
_bstr_(
"ns0 uri override"));
11655 hr = IMXNamespaceManager_getURI(nsmgr,
_bstr_(
""),
NULL, buffW, &
len);
11656 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11661 hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 3, buffW, &
len);
11662 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11665 IMXNamespaceManager_Release(nsmgr);
11693 IXMLHTTPRequest *req;
11696 DISPPARAMS dispparams;
11706 hr = IXMLDOMDocument_QueryInterface(doc, &
IID_IUnknown, (
void**)&unk);
11707 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11709 IUnknown_Release(unk);
11720 ok(
hr ==
S_OK,
"failed to create node type %d\n", *
type);
11725 IUnknown_Release(unk);
11726 IXMLDOMNode_Release(
node);
11730 hr = IXMLDOMDocument_getElementsByTagName(doc,
_bstr_(
"*"), &node_list);
11731 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11732 hr = IXMLDOMNodeList_QueryInterface(node_list, &
IID_IUnknown, (
void**)&unk);
11733 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11735 IUnknown_Release(unk);
11736 IXMLDOMNodeList_Release(node_list);
11739 hr = IXMLDOMDocument_get_childNodes(doc, &node_list);
11740 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11741 hr = IXMLDOMNodeList_QueryInterface(node_list, &
IID_IUnknown, (
void**)&unk);
11742 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11744 IUnknown_Release(unk);
11747 hr = IXMLDOMNodeList_QueryInterface(node_list, &IID_IDispatchEx, (
void**)&dispex);
11748 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11750 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"0"), 0, &did);
11751 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11753 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"1"), 0, &did);
11754 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11756 IDispatchEx_Release(dispex);
11759 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"item"), 0, &did);
11760 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11761 ok(did == DISPID_VALUE,
"got %ld\n", did);
11765 dispparams.cArgs = 0;
11766 dispparams.cNamedArgs = 0;
11767 dispparams.rgdispidNamedArgs =
NULL;
11768 dispparams.rgvarg = &
arg;
11780 dispparams.cArgs = 2;
11781 dispparams.cNamedArgs = 0;
11782 dispparams.rgdispidNamedArgs =
NULL;
11783 dispparams.rgvarg = &
arg;
11795 dispparams.cArgs = 1;
11796 dispparams.cNamedArgs = 0;
11797 dispparams.rgdispidNamedArgs =
NULL;
11798 dispparams.rgvarg = &
arg;
11803 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11810 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11817 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11821 dispparams.cArgs = 0;
11822 dispparams.cNamedArgs = 0;
11823 dispparams.rgdispidNamedArgs =
NULL;
11824 dispparams.rgvarg =
NULL;
11829 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11833 dispparams.cArgs = 0;
11834 dispparams.cNamedArgs = 0;
11835 dispparams.rgdispidNamedArgs =
NULL;
11836 dispparams.rgvarg =
NULL;
11846 IXMLDOMNodeList_Release(node_list);
11849 hr = IXMLDOMDocument_get_parseError(doc, &
error);
11850 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11854 hr = IXMLDOMParseError_QueryInterface(
error, &IID_IDispatchEx, (
void**)&dispex);
11855 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11859 dispparams.cArgs = 1;
11860 dispparams.cNamedArgs = 0;
11861 dispparams.rgdispidNamedArgs =
NULL;
11862 dispparams.rgvarg = &
arg;
11872 IDispatchEx_Release(dispex);
11874 IUnknown_Release(unk);
11875 IXMLDOMParseError_Release(
error);
11879 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11881 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"root/a"), &node_list);
11882 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11883 hr = IXMLDOMNodeList_get_item(node_list, 0, &
node);
11884 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11885 IXMLDOMNodeList_Release(node_list);
11887 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMElement, (
void**)&
elem);
11888 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11889 IXMLDOMNode_Release(
node);
11890 hr = IXMLDOMElement_get_attributes(
elem, &
map);
11891 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11892 IXMLDOMNamedNodeMap_QueryInterface(
map, &
IID_IUnknown, (
void**)&unk);
11894 IUnknown_Release(unk);
11896 hr = IXMLDOMNamedNodeMap_QueryInterface(
map, &IID_IDispatchEx, (
void**)&dispex);
11897 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11899 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"0"), 0, &did);
11900 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11902 IDispatchEx_Release(dispex);
11903 IXMLDOMNamedNodeMap_Release(
map);
11905 hr = IXMLDOMDocument_selectNodes(doc,
_bstr_(
"root/b"), &node_list);
11906 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11907 hr = IXMLDOMNodeList_get_item(node_list, 0, &
node);
11908 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11909 IXMLDOMNodeList_Release(node_list);
11910 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMElement, (
void**)&
elem);
11911 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11912 IXMLDOMNode_Release(
node);
11913 hr = IXMLDOMElement_get_attributes(
elem, &
map);
11914 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11916 hr = IXMLDOMNamedNodeMap_QueryInterface(
map, &IID_IDispatchEx, (
void**)&dispex);
11917 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11919 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"0"), 0, &did);
11920 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11922 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"1"), 0, &did);
11923 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11925 IXMLDOMNamedNodeMap_Release(
map);
11928 hr = IDispatchEx_GetDispID(dispex,
_bstr_(
"item"), 0, &did);
11929 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11930 ok(did == DISPID_VALUE,
"got %ld\n", did);
11934 dispparams.cArgs = 0;
11935 dispparams.cNamedArgs = 0;
11936 dispparams.rgdispidNamedArgs =
NULL;
11937 dispparams.rgvarg = &
arg;
11950 dispparams.cArgs = 2;
11951 dispparams.cNamedArgs = 0;
11952 dispparams.rgdispidNamedArgs =
NULL;
11953 dispparams.rgvarg = &
arg;
11966 dispparams.cArgs = 1;
11967 dispparams.cNamedArgs = 0;
11968 dispparams.rgdispidNamedArgs =
NULL;
11969 dispparams.rgvarg = &
arg;
11975 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11982 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11989 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
11993 dispparams.cArgs = 0;
11994 dispparams.cNamedArgs = 0;
11995 dispparams.rgdispidNamedArgs =
NULL;
11996 dispparams.rgvarg =
NULL;
12001 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12005 dispparams.cArgs = 0;
12006 dispparams.cNamedArgs = 0;
12007 dispparams.rgdispidNamedArgs =
NULL;
12008 dispparams.rgvarg =
NULL;
12018 IDispatchEx_Release(dispex);
12019 IXMLDOMElement_Release(
elem);
12022 hr = IXMLDOMDocument_get_implementation(doc, &impl);
12023 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12025 hr = IXMLDOMImplementation_QueryInterface(impl, &IID_IDispatchEx, (
void**)&dispex);
12026 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12027 IDispatchEx_Release(dispex);
12028 IXMLDOMImplementation_Release(impl);
12030 IXMLDOMDocument_Release(doc);
12034 &IID_IXMLHttpRequest, (
void**)&req);
12037 hr = IXMLHTTPRequest_QueryInterface(req, &IID_IDispatchEx, (
void**)&dispex);
12039 IXMLHTTPRequest_Release(req);
12044 hr = IXSLTemplate_QueryInterface(
template, &IID_IDispatchEx, (
void**)&dispex);
12045 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12046 hr = IDispatchEx_QueryInterface(dispex, &
IID_IUnknown, (
void**)&unk);
12047 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12049 IUnknown_Release(unk);
12050 IDispatchEx_Release(dispex);
12053 hr =
CoCreateInstance(&CLSID_FreeThreadedDOMDocument,
NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument, (
void**)&doc);
12054 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12057 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12058 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
12060 hr = IXSLTemplate_putref_stylesheet(
template, (
IXMLDOMNode*)doc);
12061 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12062 IXMLDOMDocument_Release(doc);
12064 hr = IXSLTemplate_createProcessor(
template, &processor);
12065 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12066 hr = IXSLProcessor_QueryInterface(processor, &IID_IDispatchEx, (
void**)&dispex);
12067 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12068 hr = IDispatchEx_QueryInterface(dispex, &
IID_IUnknown, (
void**)&unk);
12069 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12071 IUnknown_Release(unk);
12072 IDispatchEx_Release(dispex);
12074 IXSLProcessor_Release(processor);
12075 IXSLTemplate_Release(
template);
12081 IXMLDOMDocument_Release(doc);
12096 hr = IXMLDOMDocument_get_parseError(doc, &
error);
12097 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12108 IXMLDOMParseError_Release(
error);
12109 IXMLDOMDocument_Release(doc);
12114 hr = IXMLDOMDocument_get_parseError(doc, &
error);
12115 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12116 hr = IXMLDOMParseError_QueryInterface(
error, &IID_IXMLDOMParseError2, (
void**)&
error2);
12117 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12118 IXMLDOMParseError2_Release(
error2);
12119 IXMLDOMParseError_Release(
error);
12120 IXMLDOMDocument_Release(doc);
12135 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12137 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
12138 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12161 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12162 IXMLDOMAttribute_Release(
attr);
12168 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12169 IXMLDOMAttribute_Release(
attr);
12171 IXMLDOMElement_Release(
elem);
12172 IXMLDOMDocument_Release(doc);
12187 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12189 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
12190 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12194 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12200 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12206 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12216 hr = IXMLDOMElement_getAttribute(
elem,
_bstr_(
"non-existent"), &
var );
12221 IXMLDOMElement_Release(
elem);
12222 IXMLDOMDocument_Release(doc);
12233 {
NODE_ELEMENT,
"element", { &IID_IXMLDOMNode, &IID_IXMLDOMElement } },
12234 {
NODE_ATTRIBUTE,
"attribute", { &IID_IXMLDOMNode, &IID_IXMLDOMAttribute } },
12238 {
NODE_COMMENT,
"comment", { &IID_IXMLDOMNode, &IID_IXMLDOMComment } },
12245 static REFIID iids[5] = { &IID_IXMLDOMNode, &IID_IXMLDOMDocument,
12246 &IID_IXMLDOMDocument2, &IID_IXMLDOMDocument3 };
12263 hr = IXMLDOMDocument_QueryInterface(doc, &IID_ISupportErrorInfo, (
void**)&errorinfo);
12264 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12266 ISupportErrorInfo_AddRef(errorinfo);
12269 ISupportErrorInfo_Release(errorinfo);
12271 hr = IXMLDOMDocument_QueryInterface(doc, &IID_ISupportErrorInfo, (
void**)&info2);
12272 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12273 ok(errorinfo != info2,
"got %p, %p\n", info2, errorinfo);
12276 hr = ISupportErrorInfo_QueryInterface(info2, &IID_IXMLDOMDocument, &
dummy);
12278 hr = ISupportErrorInfo_QueryInterface(info2, &IID_IXMLDOMNode, &
dummy);
12281 ISupportErrorInfo_Release(info2);
12286 hr = IXMLDOMDocument_QueryInterface(doc, *iid, (
void**)&unk);
12287 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12290 hr = ISupportErrorInfo_InterfaceSupportsErrorInfo(errorinfo, *iid);
12292 IUnknown_Release(unk);
12298 ISupportErrorInfo_Release(errorinfo);
12309 ok(
hr ==
S_OK,
"%d: Unexpected hr %#lx.\n",
ptr->type,
hr);
12312 hr = IXMLDOMNode_QueryInterface(
node, &IID_ISupportErrorInfo, (
void**)&errorinfo);
12313 ok(
hr ==
S_OK,
"%d: Unexpected hr %#lx.\n",
ptr->type,
hr);
12316 hr = ISupportErrorInfo_QueryInterface(errorinfo, &IID_IXMLDOMNode, &
dummy);
12323 hr = IXMLDOMNode_QueryInterface(
node, *iid, (
void**)&unk);
12326 hr = ISupportErrorInfo_InterfaceSupportsErrorInfo(errorinfo, *iid);
12328 IUnknown_Release(unk);
12334 ISupportErrorInfo_Release(errorinfo);
12335 IXMLDOMNode_Release(
node);
12342 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12343 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
12345 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
12346 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12348 hr = IXMLDOMElement_get_attributes(
elem, &
map);
12349 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12352 hr = IXMLDOMNamedNodeMap_QueryInterface(
map, &IID_ISupportErrorInfo, (
void**)&errorinfo);
12353 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12356 hr = ISupportErrorInfo_InterfaceSupportsErrorInfo(errorinfo, &IID_IXMLDOMNamedNodeMap);
12357 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12359 hr = ISupportErrorInfo_QueryInterface(errorinfo, &IID_IXMLDOMNamedNodeMap, (
void**)&map2);
12360 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12361 ok(
map == map2,
"got %p\n", map2);
12362 IXMLDOMNamedNodeMap_Release(map2);
12365 hr = ISupportErrorInfo_QueryInterface(errorinfo, &
IID_IUnknown, (
void**)&unk);
12366 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12369 IUnknown_Release(unk);
12371 ISupportErrorInfo_Release(errorinfo);
12372 IXMLDOMNamedNodeMap_Release(
map);
12373 IXMLDOMElement_Release(
elem);
12375 IXMLDOMDocument_Release(doc);
12378 hr =
CoCreateInstance(&CLSID_XMLSchemaCache,
NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMSchemaCollection, (
void**)&schemacache);
12379 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12381 hr = IXMLDOMSchemaCollection_QueryInterface(schemacache, &IID_ISupportErrorInfo, (
void**)&errorinfo);
12382 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12384 hr = ISupportErrorInfo_InterfaceSupportsErrorInfo(errorinfo, &IID_IXMLDOMSchemaCollection);
12385 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12387 ISupportErrorInfo_Release(errorinfo);
12388 IXMLDOMSchemaCollection_Release(schemacache);
12431 ok(
hr ==
S_OK,
"failed to create node type %d\n",
ptr->type);
12438 hr = IXMLDOMNode_put_nodeValue(
node,
v);
12439 ok(
hr ==
ptr->put_hr,
"%d: unexpected hr %#lx\n",
ptr->type,
hr);
12442 hr = IXMLDOMNode_get_nodeValue(
node, &
v);
12443 ok(
hr ==
ptr->get_hr,
"%d: unexpected hr %#lx, expected %#lx.\n",
ptr->type,
hr,
ptr->get_hr);
12450 IXMLDOMNode_Release(
node);
12455 IXMLDOMDocument_Release(doc);
12470 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing"), &
root);
12471 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12474 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12476 hr = IXMLDOMDocument_createAttribute(doc,
_bstr_(
"xmlns:dt"), &pAttribute);
12477 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
12480 V_BSTR(&
v) =
_bstr_(
"urn:schemas-microsoft-com:datatypes");
12481 hr = IXMLDOMAttribute_put_nodeValue(pAttribute,
v);
12482 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
12484 hr = IXMLDOMElement_setAttributeNode(
root, pAttribute,
NULL);
12485 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
12488 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr );
12490 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
12491 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12494 hr = IXMLDOMElement_get_xml(
elem, &
str);
12495 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12496 todo_wine ok(
lstrcmpW(
str,
L"<Testing xmlns:dt=\"urn:schemas-microsoft-com:datatypes\" dt:dt=\"bin.base64\"/>") == 0,
12500 IXMLDOMElement_Release(
elem);
12501 IXMLDOMAttribute_Release( pAttribute);
12503 IXMLDOMDocument_Release(doc);
12509"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
12510" <ns1:elem1 xmlns:ns1=\"http://blah.org\" b='1' >"
12511" <ns2:elem2 xmlns:ns2=\"http://blah.org\"/>"
12514" <elem5 xmlns=\"http://blahblah.org\"/>"
12515" <ns1:elem6>true</ns1:elem6>"
12520"<?xml version='1.0'?>"
12521"<schema xmlns='http://www.w3.org/2001/XMLSchema'"
12522" targetNamespace='x-schema:test1.xsd'>"
12523" <element name='root'>"
12525" <sequence maxOccurs='unbounded'>"
12550 hr = IXMLDOMDocument2_get_namespaces(doc,
NULL);
12555 hr = IXMLDOMDocument2_get_namespaces(doc, &
collection);
12556 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12559 IXMLDOMDocument2_Release(doc);
12564 collection2 = (
void*)0xdeadbeef;
12565 hr = IXMLDOMDocument2_get_namespaces(doc, &collection2);
12566 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12567 ok(
collection == collection2,
"got %p\n", collection2);
12569 IXMLDOMSchemaCollection_Release(
collection);
12573 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12575 IXMLDOMSchemaCollection_Release(
collection);
12579 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12581 hr = IXMLDOMDocument2_get_namespaces(doc, &
collection);
12582 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12586 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12590 node = (
void*)0xdeadbeef;
12592 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12595 node = (
void*)0xdeadbeef;
12597 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12603 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12610 hr = IXMLDOMSchemaCollection_get_namespaceURI(
collection, 0, &
s);
12611 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12615 hr = IXMLDOMSchemaCollection_get_namespaceURI(
collection, 1, &
s);
12616 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12620 s = (
void*)0xdeadbeef;
12621 hr = IXMLDOMSchemaCollection_get_namespaceURI(
collection, 2, &
s);
12623 ok(
s == (
void*)0xdeadbeef,
"got %p\n",
s);
12626 enumv = (
void*)0xdeadbeef;
12629 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12631 ok(enumv !=
NULL,
"got %p\n", enumv);
12634 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12635 hr = IEnumVARIANT_QueryInterface(enumv, &
IID_IUnknown, (
void**)&unk2);
12636 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12637 ok(
unk1 != unk2,
"got %p, %p\n",
unk1, unk2);
12638 IUnknown_Release(
unk1);
12639 IUnknown_Release(unk2);
12641 hr = IXMLDOMSchemaCollection_QueryInterface(
collection, &IID_IEnumVARIANT, (
void**)&enum2);
12645 hr = IEnumVARIANT_Next(enumv, 1, &
v[0],
NULL);
12646 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12652 hr = IEnumVARIANT_Next(enumv, 1, &
v[0], &fetched);
12653 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12654 ok(fetched == 1,
"got %ld, expected 1\n", fetched);
12660 hr = IEnumVARIANT_Next(enumv, 1, &
v[0], &fetched);
12662 ok(fetched == 0,
"got %ld, expected 0\n", fetched);
12665 hr = IEnumVARIANT_Reset(enumv);
12666 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12670 hr = IEnumVARIANT_Next(enumv, 2,
v, &fetched);
12671 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12672 ok(fetched == 2,
"got %ld, expected 2\n", fetched);
12681 hr = IEnumVARIANT_Next(enumv, 1,
v, &fetched);
12683 ok(fetched == 0,
"got %ld, expected 0\n", fetched);
12686 IEnumVARIANT_Release(enumv);
12687 IXMLDOMSchemaCollection_Release(
collection);
12688 IXMLDOMDocument2_Release(doc);
12695 hr = IXMLDOMDocument2_get_namespaces(doc,
NULL);
12700 hr = IXMLDOMDocument2_get_namespaces(doc, &
collection);
12701 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12704 IXMLDOMDocument2_Release(doc);
12709 collection2 = (
void*)0xdeadbeef;
12710 hr = IXMLDOMDocument2_get_namespaces(doc, &collection2);
12711 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12712 ok(
collection == collection2,
"got %p\n", collection2);
12714 IXMLDOMSchemaCollection_Release(
collection);
12718 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12720 IXMLDOMSchemaCollection_Release(
collection);
12724 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12726 hr = IXMLDOMDocument2_get_namespaces(doc, &
collection);
12727 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12731 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12735 node = (
void*)0xdeadbeef;
12743 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12749 IXMLDOMDocument2_Release(doc2);
12751 hr = IXMLDOMSchemaCollection_get_namespaceURI(
collection, 0, &
s);
12752 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12756 hr = IXMLDOMSchemaCollection_get_namespaceURI(
collection, 1, &
s);
12757 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12761 s = (
void*)0xdeadbeef;
12762 hr = IXMLDOMSchemaCollection_get_namespaceURI(
collection, 2, &
s);
12767 enumv = (
void*)0xdeadbeef;
12769 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12770 ok(enumv !=
NULL,
"got %p\n", enumv);
12773 hr = IEnumVARIANT_Next(enumv, 1, &
v[0],
NULL);
12774 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12780 hr = IEnumVARIANT_Next(enumv, 1, &
v[0],
NULL);
12781 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12787 hr = IEnumVARIANT_Next(enumv, 1, &
v[0],
NULL);
12791 hr = IEnumVARIANT_Reset(enumv);
12792 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12796 hr = IEnumVARIANT_Next(enumv, 2,
v, &fetched);
12797 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12798 ok(fetched == 2,
"got %ld, expected 2\n", fetched);
12807 hr = IEnumVARIANT_Next(enumv, 1,
v, &fetched);
12809 ok(fetched == 0,
"got %ld, expected 0\n", fetched);
12812 IEnumVARIANT_Release(enumv);
12813 IXMLDOMSchemaCollection_Release(
collection);
12814 IXMLDOMDocument2_Release(doc);
12851 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12858 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMText, (
void**)&
text);
12859 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12861 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12863 hr = IXMLDOMText_get_data(
text, &get_data);
12864 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12866 IXMLDOMText_Release(
text);
12873 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMCDATASection, (
void**)&cdata);
12874 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12875 hr = IXMLDOMCDATASection_put_data(cdata,
data);
12876 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12878 hr = IXMLDOMCDATASection_get_data(cdata, &get_data);
12879 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12881 IXMLDOMCDATASection_Release(cdata);
12888 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMProcessingInstruction, (
void**)&
pi);
12889 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12890 hr = IXMLDOMProcessingInstruction_put_data(
pi,
data);
12891 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12893 hr = IXMLDOMProcessingInstruction_get_data(
pi, &get_data);
12894 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12896 IXMLDOMProcessingInstruction_Release(
pi);
12903 hr = IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMComment, (
void**)&
comment);
12904 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12906 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12908 hr = IXMLDOMComment_get_data(
comment, &get_data);
12909 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12911 IXMLDOMComment_Release(
comment);
12924 IXMLDOMNode_Release(
node);
12928 IXMLDOMDocument_Release(doc);
12947 while (
table->clsid)
12956 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12959 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12961 IXMLDOMNode_QueryInterface(
node, &IID_IXMLDOMText, (
void**)&
text);
12966 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12968 hr = IXMLDOMText_get_data(
text, &
s);
12969 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12974 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12977 hr = IXMLDOMText_get_xml(
text, &
s);
12978 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12985 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12987 hr = IXMLDOMText_get_data(
text, &
s);
12988 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12993 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
12996 hr = IXMLDOMText_get_xml(
text, &
s);
12997 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13003 hr = IXMLDOMDocument_loadXML(doc,
_bstr_(
"<?xml version=\"1.0\"?><root>foo\n\r\n\r\r\nbar</root>"), &
b);
13004 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13006 hr = IXMLDOMDocument_get_text(doc, &
s);
13007 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13011 hr = IXMLDOMDocument_get_xml(doc, &
s);
13012 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13013 ok(!
lstrcmpW(
s,
L"<?xml version=\"1.0\"?>\r\n<root>foo\r\n\r\n\r\n\r\nbar</root>\r\n"),
13019 hr = IXMLDOMDocument_loadXML(doc,
_bstr_(
"<?xml version=\"1.0\"?>"
13020 "<root xml:space=\"preserve\">foo\n\r\n\r\r\nbar</root>"), &
b);
13021 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13023 hr = IXMLDOMDocument_get_text(doc, &
s);
13024 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13028 hr = IXMLDOMDocument_get_xml(doc, &
s);
13029 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13031 "<root xml:space=\"preserve\">foo\r\n\r\n\r\n\r\nbar</root>\r\n")),
13037 hr = IXMLDOMDocument_put_preserveWhiteSpace(doc, VARIANT_TRUE);
13038 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13040 hr = IXMLDOMDocument_loadXML(doc,
_bstr_(
"<?xml version=\"1.0\"?><root>foo\n\r\n\r\r\nbar</root>"), &
b);
13041 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13043 hr = IXMLDOMDocument_get_text(doc, &
s);
13044 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13048 hr = IXMLDOMDocument_get_xml(doc, &
s);
13049 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13054 ok(!
lstrcmpW(
s,
L"<?xml version=\"1.0\"?><root>foo\r\n\r\n\r\n\r\nbar</root>"),
13059 ok(!
lstrcmpW(
s,
L"<?xml version=\"1.0\"?>\r\n<root>foo\r\n\r\n\r\n\r\nbar</root>\r\n"),
13064 IXMLDOMText_Release(
text);
13065 IXMLDOMNode_Release(
node);
13066 IXMLDOMDocument_Release(doc);
13080 if (!
is_clsid_supported(&CLSID_XMLSchemaCache, &IID_IXMLDOMSchemaCollection))
return;
13088 hr = IXMLDOMDocument2_putref_schemas(doc,
schema);
13089 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13093 hr = IXMLDOMDocument2_putref_schemas(doc,
schema);
13094 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13099 hr = IXMLDOMDocument2_putref_schemas(doc,
schema);
13100 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13103 hr = IXMLDOMDocument2_get_schemas(doc, &
schema);
13104 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13109 hr = IXMLDOMDocument2_putref_schemas(doc,
schema);
13110 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13114 hr = IXMLDOMDocument2_get_schemas(doc, &
schema);
13122 hr = IXMLDOMDocument2_putref_schemas(doc,
schema);
13123 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13126 hr = IXMLDOMDocument2_get_schemas(doc, &
schema);
13127 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13132 hr = IXMLDOMDocument2_putref_schemas(doc,
schema);
13133 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13137 hr = IXMLDOMDocument2_get_schemas(doc, &
schema);
13142 IXMLDOMSchemaCollection_Release(
cache);
13143 IXMLDOMDocument2_Release(doc);
13163 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13165 hr = IXMLDOMDocument_get_documentElement(doc, &
elem);
13166 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13168 hr = IXMLDOMElement_get_attributes(
elem, &
map);
13169 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13170 IXMLDOMElement_Release(
elem);
13174 hr = IXMLDOMNamedNodeMap_QueryInterface(
map, &IID_IEnumVARIANT, (
void**)&enum1);
13175 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13176 ok(enum1 !=
NULL,
"got %p\n", enum1);
13181 hr = IXMLDOMNamedNodeMap_QueryInterface(
map, &IID_IEnumVARIANT, (
void**)&enum2);
13182 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13183 ok(enum2 == enum1,
"got %p\n", enum2);
13185 IEnumVARIANT_Release(enum2);
13188 hr = IXMLDOMNamedNodeMap__newEnum(
map, (
IUnknown**)&enum2);
13189 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13192 ok(enum2 != enum1,
"got %p, %p\n", enum2, enum1);
13194 IEnumVARIANT_Release(enum1);
13198 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13199 hr = IEnumVARIANT_QueryInterface(enum2, &
IID_IUnknown, (
void**)&unk2);
13200 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13203 ok(
unk1 != unk2,
"got %p, %p\n",
unk1, unk2);
13204 IUnknown_Release(
unk1);
13205 IUnknown_Release(unk2);
13207 hr = IXMLDOMNamedNodeMap__newEnum(
map, (
IUnknown**)&enum3);
13208 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13209 ok(enum2 != enum3,
"got %p, %p\n", enum2, enum3);
13210 IEnumVARIANT_Release(enum3);
13213 hr = IXMLDOMNamedNodeMap_get_item(
map, 0, &
node);
13214 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13215 hr = IXMLDOMNode_get_nodeName(
node, &
str);
13216 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13219 IXMLDOMNode_Release(
node);
13221 hr = IXMLDOMNamedNodeMap_nextNode(
map, &
node);
13222 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13223 hr = IXMLDOMNode_get_nodeName(
node, &
str);
13224 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13227 IXMLDOMNode_Release(
node);
13230 hr = IEnumVARIANT_Next(enum2, 1, &
v[0],
NULL);
13231 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13233 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[0]), &IID_IXMLDOMNode, (
void**)&
node);
13234 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13235 hr = IXMLDOMNode_get_nodeName(
node, &
str);
13236 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13239 IXMLDOMNode_Release(
node);
13242 hr = IXMLDOMNamedNodeMap_nextNode(
map, &
node);
13243 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13244 hr = IXMLDOMNode_get_nodeName(
node, &
str);
13245 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13248 IXMLDOMNode_Release(
node);
13250 hr = IEnumVARIANT_Reset(enum2);
13251 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13255 hr = IEnumVARIANT_Next(enum2, 2,
v, &fetched);
13256 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13257 ok(fetched == 2,
"got %ld, expected 2\n", fetched);
13260 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[0]), &IID_IXMLDOMNode, (
void**)&
node);
13261 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13262 hr = IXMLDOMNode_get_nodeName(
node, &
str);
13263 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13266 IXMLDOMNode_Release(
node);
13267 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[1]), &IID_IXMLDOMNode, (
void**)&
node);
13268 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13269 hr = IXMLDOMNode_get_nodeName(
node, &
str);
13270 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13273 IXMLDOMNode_Release(
node);
13280 hr = IEnumVARIANT_Next(enum2, 3,
v, &fetched);
13282 ok(fetched == 2,
"got %ld, expected 2\n", fetched);
13286 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[0]), &IID_IXMLDOMNode, (
void**)&
node);
13287 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13288 hr = IXMLDOMNode_get_nodeName(
node, &
str);
13289 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13292 IXMLDOMNode_Release(
node);
13293 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v[1]), &IID_IXMLDOMNode, (
void**)&
node);
13294 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13295 hr = IXMLDOMNode_get_nodeName(
node, &
str);
13296 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13299 IXMLDOMNode_Release(
node);
13302 IEnumVARIANT_Release(enum2);
13304 IXMLDOMNamedNodeMap_Release(
map);
13305 IXMLDOMDocument_Release(doc);
13309"<?xml version=\"1.0\"?>"
13310"<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" >"
13311"<xsl:output method=\"html\" encoding=\"us-ascii\"/>"
13312"<xsl:template match=\"/\">"
13314" <xsl:when test=\"testkey\">"
13315" <xsl:text>testdata</xsl:text>"
13319"</xsl:stylesheet>";
13322"<?xml version=\"1.0\"?>"
13323"<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" >"
13324"<xsl:output method=\"xml\" omit-xml-declaration=\"yes\"/>"
13325"<xsl:template match=\"/\">"
13326" <xsl:for-each select=\"/a/item\">"
13327" <xsl:element name=\"node\">"
13328" <xsl:value-of select=\"@name\"/>"
13332"</xsl:stylesheet>";
13335"<?xml version=\"1.0\"?>"
13337" <item name=\"item1\"/>"
13338" <item name=\"item2\"/>"
13352 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13354 hr = IXMLDOMDocument_loadXML(doc2,
_bstr_(
"<testkey/>"), &
b);
13355 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13358 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13364 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13366 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13369 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13373 IXMLDOMDocument_Release(doc2);
13374 IXMLDOMDocument_Release(doc);
13386 {
"xmlns",
"http://www.w3.org/2000/xmlns/",
"xmlns",
"xmlns" },
13387 {
"xmlns",
"nondefaulturi",
"xmlns",
"xmlns" },
13388 {
"c",
"http://www.w3.org/2000/xmlns/",
NULL,
"http://www.w3.org/2000/xmlns/" },
13389 {
"c",
"nsref1",
NULL,
"nsref1" },
13390 {
"ns:c",
"nsref1",
"ns",
"nsref1" },
13391 {
"xmlns:c",
"http://www.w3.org/2000/xmlns/",
"xmlns",
"" },
13392 {
"xmlns:c",
"nondefaulturi",
"xmlns",
"" },
13415 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13418 hr = IXMLDOMNode_get_prefix(
node, &
str);
13421 ok(
hr ==
S_OK,
"%d: unexpected hr %#lx\n",
i,
hr);
13432 hr = IXMLDOMNode_get_namespaceURI(
node, &
str);
13433 ok(
hr ==
S_OK,
"%d: unexpected hr %#lx\n",
i,
hr);
13437 IXMLDOMNode_Release(
node);
13446 hr = IXMLDOMDocument_createNode(doc,
var,
_bstr_(
"e"),
NULL, &node2);
13447 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13449 hr = IXMLDOMNode_QueryInterface(node2, &IID_IXMLDOMElement, (
void**)&el);
13450 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13451 IXMLDOMNode_Release(node2);
13455 hr = IXMLDOMDocument_createNode(doc,
var,
_bstr_(
"xmlns:a"),
_bstr_(
"http://www.w3.org/2000/xmlns/"), &
node);
13456 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13459 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13462 hr = IXMLDOMNode_get_namespaceURI(
node, &
str);
13463 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13467 IXMLDOMNode_Release(
node);
13468 IXMLDOMElement_Release(el);
13469 IXMLDOMDocument_Release(doc);
13481 hr = IXMLDOMDocument_get_url(doc,
NULL);
13484 s = (
void *)0xdeadbeef;
13485 hr = IXMLDOMDocument_get_url(doc, &
s);
13489 IXMLDOMDocument_Release(doc);
13506 hr = IXMLDOMDocument_createElement(doc,
_bstr_(
"Testing"), &
root);
13507 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13510 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13513 for (
i = 0;
i < 10;
i++)
13516 hr = IXMLDOMDocument_createTextNode(doc,
str, &nodetext);
13518 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13522 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13523 ok(nodetext == newtext,
"expected %p, got %p\n", nodetext, newtext);
13525 IXMLDOMText_Release(newtext);
13526 IXMLDOMText_Release(nodetext);
13530 hr = IXMLDOMElement_get_firstChild(
root, &
first);
13531 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13534 for (
i = 0;
i < 10;
i++)
13537 hr = IXMLDOMDocument_createTextNode(doc,
str, &nodetext);
13539 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13543 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13544 ok(nodetext == newtext,
"expected %p, got %p\n", nodetext, newtext);
13546 IXMLDOMText_Release(newtext);
13547 IXMLDOMText_Release(nodetext);
13550 IXMLDOMNode_Release(
first);
13551 IXMLDOMElement_Release(
root);
13552 IXMLDOMDocument_Release(doc);
13607 ok(
hr ==
S_OK,
"Failed to load document, hr %#lx.\n",
hr);
13609 ok(
hr ==
S_OK,
"Failed to load document, hr %#lx.\n",
hr);
13613 hr = IXMLDOMDocument_transformNodeToObject(doc, (
IXMLDOMNode *)doc2,
v);
13618 hr = IXMLDOMDocument_transformNodeToObject(doc, (
IXMLDOMNode *)doc2,
v);
13623 hr = IXMLDOMDocument_transformNodeToObject(doc, (
IXMLDOMNode *)doc2,
v);
13628 hr = IXMLDOMDocument_transformNodeToObject(doc, (
IXMLDOMNode *)doc2,
v);
13629 ok(
hr ==
S_OK,
"Failed to transform node, hr %#lx.\n",
hr);
13635 hr = IXMLDOMDocument_transformNodeToObject(doc, (
IXMLDOMNode *)doc2,
v);
13636 ok(
hr ==
S_OK,
"Failed to transform node, hr %#lx.\n",
hr);
13640 ok(
hr ==
S_OK,
"Failed to seek, hr %#lx.\n",
hr);
13645 ok(
hr ==
S_OK,
"Failed to read, hr %#lx.\n",
hr);
13654 hr = IStream_QueryInterface(
istream, &IID_ISequentialStream, (
void**)&sstream);
13663 ok(
hr ==
S_OK,
"Failed to QI, hr %#lx.\n",
hr);
13667 hr = IXMLDOMDocument_transformNodeToObject(doc, (
IXMLDOMNode *)doc2,
v);
13668 ok(
hr ==
S_OK,
"Failed to transform node, hr %#lx.\n",
hr);
13672 ok(
hr ==
S_OK,
"Failed to seek, hr %#lx.\n",
hr);
13676 hr = ISequentialStream_Read(sstream,
buffer,
sizeof(
buffer), &nread);
13677 ok(
hr ==
S_OK,
"Failed to read, hr %#lx.\n",
hr);
13681 ISequentialStream_Release(sstream);
13687 IXMLDOMDocument_Release(doc3);
13688 IXMLDOMDocument_Release(doc2);
13689 IXMLDOMDocument_Release(doc);
13701 win_skip(
"NormalizeAttributeValues is not supported.\n");
13709 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"NormalizeAttributeValues"), &
var);
13711 ok(
hr ==
S_OK,
"Failed to get property value, hr %#lx.\n",
hr);
13713 ok(
V_BOOL(&
var) == VARIANT_FALSE,
"Unexpected property value.\n");
13717 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"NormalizeAttributeValues"),
var);
13718 ok(
hr ==
S_OK,
"Failed to set property, hr %#lx.\n",
hr);
13722 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"NormalizeAttributeValues"), &
var);
13724 ok(
hr ==
S_OK,
"Failed to get property value, hr %#lx.\n",
hr);
13726 ok(
V_BOOL(&
var) == VARIANT_TRUE,
"Unexpected property value.\n");
13728 IXMLDOMDocument2_Release(doc);
13742 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"MaxElementDepth"), &
var);
13744 ok(
hr ==
S_OK,
"Failed to get property value, hr %#lx.\n",
hr);
13746 ok(
V_I4(&
var) == 256,
"Unexpected property value.\n");
13752 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"MaxElementDepth"),
var);
13753 ok(
hr ==
S_OK,
"Failed to set property, hr %#lx.\n",
hr);
13757 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"MaxElementDepth"), &
var);
13759 ok(
hr ==
S_OK,
"Failed to get property value, hr %#lx.\n",
hr);
13761 ok(
V_I4(&
var) == 32,
"Unexpected property value.\n");
13764 IXMLDOMDocument2_Release(doc);
13774 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2" },
13775 { &CLSID_DOMDocument26,
"CLSID_DOMDocument26" },
13776 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30" },
13787 const char *
names[3];
13789 const char *basenames[3];
13790 const char *uris[3];
13791 const char *texts[3];
13792 const char *xmls[3];
13796 "<a ns:b=\"b attr\" d=\"d attr\" xmlns:ns=\"nshref\" />", 3,
13797 {
"ns:b",
"d",
"xmlns:ns" },
13798 {
"ns",
NULL,
"xmlns" },
13799 {
"b",
"d",
"ns" },
13800 {
"nshref",
NULL,
"" },
13801 {
"b attr",
"d attr",
"nshref" },
13802 {
"ns:b=\"b attr\"",
"d=\"d attr\"",
"xmlns:ns=\"nshref\"" },
13806 "<a d=\"d attr\" />", 1,
13812 {
"d=\"d attr\"" },
13816 "<a xmlns:ns=\"nshref\" />", 1,
13822 {
"xmlns:ns=\"nshref\"" },
13826 "<a xmlns=\"nshref\" />", 1,
13832 {
"xmlns=\"nshref\"" },
13850 while (
entry->guid)
13859 while (
test->xml) {
13864 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13867 hr = IXMLDOMDocument_selectSingleNode(doc,
_bstr_(
"a"), &
node);
13868 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13870 hr = IXMLDOMNode_get_attributes(
node, &
map);
13871 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13874 hr = IXMLDOMNamedNodeMap_get_length(
map, &
len);
13875 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13879 hr = IXMLDOMNamedNodeMap_get_item(
map,
test->explen+1, &
item);
13881 ok(!
item,
"Item should be NULL\n");
13883 for (
i = 0;
i <
len;
i++)
13886 hr = IXMLDOMNamedNodeMap_get_item(
map,
i, &
item);
13887 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13890 hr = IXMLDOMNode_get_nodeName(
item, &
str);
13891 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13896 hr = IXMLDOMNode_get_prefix(
item, &
str);
13897 if (
test->prefixes[
i])
13899 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13907 hr = IXMLDOMNode_get_baseName(
item, &
str);
13908 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13913 hr = IXMLDOMNode_get_namespaceURI(
item, &
str);
13916 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13928 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13934 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
13938 IXMLDOMNode_Release(
item);
13941 IXMLDOMNamedNodeMap_Release(
map);
13942 IXMLDOMNode_Release(
node);
13943 IXMLDOMDocument_Release(doc);
14013 if (
IsEqualGUID(service, &SID_SContainerDispatch) ||
14014 IsEqualGUID(service, &SID_SInternetHostSecurityManager))
14055 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
14059 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
14062 ok(
qi_list_contains(&IID_IXMLDOMDocument),
"QI(IID_IXMLDOMDocument) was not called\n");
14063 ok(
qi_list_contains(&IID_IHTMLDocument2),
"QI(IID_IHTMLDocument2) was not called\n");
14064 ok(
qi_list_contains(&IID_IServiceProvider),
"QI(IID_IServiceProvider) was not called\n");
14068 "QI(SID_SContainerDispatch, IID_IHTMLDocument2) was not called\n");
14071 "QI(SID_SInternetHostSecurityManager, IID_IXMLDOMDocument) was not called\n");
14076 hr = IXMLDOMDocument2_load(doc,
var, &
b);
14077 ok(
hr ==
S_OK,
"Unexpected hr %#lx.\n",
hr);
14078 ok(
b == VARIANT_TRUE,
"got %d\n",
b);
14081 IXMLDOMDocument2_Release(doc);
14097 { &CLSID_DOMDocument2,
"CLSID_DOMDocument2",
E_FAIL },
14098 { &CLSID_DOMDocument26,
"CLSID_DOMDocument26",
E_FAIL },
14099 { &CLSID_DOMDocument30,
"CLSID_DOMDocument30",
E_FAIL },
14100 { &CLSID_DOMDocument40,
"CLSID_DOMDocument40",
S_OK },
14101 { &CLSID_DOMDocument60,
"CLSID_DOMDocument60",
S_OK },
14110 while (
entry->guid)
14130 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"ValidateOnParse"), &
var);
14143 win_skip(
"Skip tests for CLSID_DOMDocument40 on Windows 8.\n");
14144 IXMLDOMDocument2_Release(doc);
14151 hr = IXMLDOMDocument2_get_validateOnParse(doc, &
b);
14153 ok(
b == VARIANT_TRUE,
"%d: got property value %d.\n",
i,
b);
14157 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"ValidateOnParse"),
var);
14161 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"ValidateOnParse"), &
var);
14171 hr = IXMLDOMDocument2_setProperty(doc,
_bstr_(
"ValidateOnParse"),
var);
14174 hr = IXMLDOMDocument2_get_validateOnParse(doc, &
b);
14176 ok(
b == VARIANT_TRUE,
"%d: got property value %d.\n",
i,
b);
14180 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"ValidateOnParse"), &
var);
14189 hr = IXMLDOMDocument2_put_validateOnParse(doc,
b);
14193 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"ValidateOnParse"), &
var);
14202 hr = IXMLDOMDocument2_cloneNode(doc, VARIANT_TRUE, &
node_clone);
14205 hr = IXMLDOMNode_QueryInterface(
node_clone, &IID_IXMLDOMDocument2, (
void **)&doc_clone);
14209 hr = IXMLDOMDocument2_getProperty(doc,
_bstr_(
"ValidateOnParse"), &
var);
14217 V_I2(&var_clone) = 10;
14218 hr = IXMLDOMDocument2_getProperty(doc_clone,
_bstr_(
"ValidateOnParse"), &var_clone);
14222 ok(
V_VT(&var_clone) ==
V_VT(&
var),
"%d: got property value type %d.\n",
i,
V_VT(&var_clone));
14226 hr = IXMLDOMDocument2_get_validateOnParse(doc_clone, &
b);
14228 ok(
b == VARIANT_FALSE,
"%d: got property value %d.\n",
i,
b);
14230 IXMLDOMDocument2_Release(doc_clone);
14232 IXMLDOMDocument2_Release(doc);
14242 const WCHAR *data_expected;
14253 ok(
hr ==
S_OK,
"Unable to create instance hr %#lx.\n",
hr);
14254 hr = IXMLDOMDocument_loadXML(doc,
str, &
b);
14255 ok(
hr ==
S_OK,
"Unable to load XML hr %#lx.\n",
hr);
14256 hr = IXMLDOMDocument_get_documentElement(doc, &
element);
14257 ok(
hr ==
S_OK,
"Unable to get element hr %#lx.\n",
hr);
14259 ok(
hr ==
S_OK,
"Unable to get XML hr %#lx.\n",
hr);
14261 data_expected =
L"<root>\r\n"
14274 ok(
hr ==
S_OK,
"failed to init com\n");
14275 if (
hr !=
S_OK)
return 1;
14289 ok(
hr ==
S_OK,
"failed to init com\n");
14295 win_skip(
"DOMDocument2 is not supported. Skipping all tests.\n");
basic_istream< char, char_traits< char > > istream
static unsigned char bytes[4]
#define InterlockedIncrement
#define InterlockedDecrement
static const WCHAR nameW[]
#define ReadFile(a, b, c, d, e)
#define INVALID_HANDLE_VALUE
#define CreateFileA(a, b, c, d, e, f, g)
#define FILE_ATTRIBUTE_NORMAL
#define MultiByteToWideChar
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
DWORD WINAPI GetTempPathA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
_ACRTIMP size_t __cdecl strlen(const char *)
_ACRTIMP int __cdecl strcmp(const char *, const char *)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI GetHGlobalFromStream(IStream *pstm, HGLOBAL *phglobal)
HRESULT WINAPI CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPSTREAM *ppstm)
HRESULT WINAPI SafeArrayGetUBound(SAFEARRAY *psa, UINT nDim, LONG *plUbound)
HRESULT WINAPI SafeArrayAccessData(SAFEARRAY *psa, void **ppvData)
HRESULT WINAPI SafeArrayUnlock(SAFEARRAY *psa)
HRESULT WINAPI SafeArrayUnaccessData(SAFEARRAY *psa)
UINT WINAPI SafeArrayGetDim(SAFEARRAY *psa)
SAFEARRAY *WINAPI SafeArrayCreateVector(VARTYPE vt, LONG lLbound, ULONG cElements)
HRESULT WINAPI SafeArrayGetLBound(SAFEARRAY *psa, UINT nDim, LONG *plLbound)
HRESULT WINAPI SafeArrayDestroyData(SAFEARRAY *psa)
struct _entityref entityref
static unsigned char buff[32768]
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLboolean GLboolean GLboolean b
GLenum const GLfloat * params
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
GLuint GLsizei const GLvoid GLenum preserve
GLenum GLenum GLenum input
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean flag
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
static ERESOURCE GlobalLock
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
int WINAPI lstrlenA(LPCSTR lpString)
#define todo_wine_if(is_todo)
#define memcpy(s1, s2, n)
static struct test_info tests[]
#define comment(fmt, arg1)
const IID IID_IObjectWithSite
static PROCESS_INFORMATION pi
static IActiveScriptSite * site
static void get_str_for_type(DOMNodeType type, char *buf)
static const IID * qi_list[32]
static void test_put_data(void)
static HRESULT WINAPI istream_Commit(IStream *iface, DWORD flags)
static void test_xmlns_attribute(void)
static void test_get_xml(void)
static void test_put_nodeValue(void)
static int g_expectedcall
#define create_cache(iid)
static const char namespacesA[]
static HRESULT WINAPI response_AppendToLog(IResponse *iface, BSTR bstrLogEntry)
static VARIANT _variantbstr_(const char *str)
static const char nocontent[]
static const CHAR szTypeValueXML[]
static BSTR _bstr_(const char *str)
static HRESULT WINAPI response_get_CacheControl(IResponse *iface, BSTR *pbstrCacheControl)
#define check_set_props(doc)
static HRESULT WINAPI response_get_Status(IResponse *iface, BSTR *pbstrStatusRet)
static void test_getQualifiedItem(void)
static const CHAR szTransformXML[]
static IResponse testresponse
static void test_whitespace(void)
static const char win936xml[]
static HRESULT WINAPI sp_QueryService(IServiceProvider *iface, REFGUID service, REFIID iid, void **ppv)
static const char szExampleXML[]
static void test_get_lastChild(void)
static void test_get_prefix(void)
static void test_get_childNodes(void)
static HRESULT WINAPI response_get_CharSet(IResponse *iface, BSTR *pbstrCharSetRet)
static const ns_item_t qualified_item_tests[]
static const CHAR szEmailXML_15[]
static int g_unexpectedcall
#define XML_E_UNEXPECTED_ATTRIBUTE
static HRESULT WINAPI istream_Seek(IStream *iface, LARGE_INTEGER move, DWORD origin, ULARGE_INTEGER *new_pos)
static void test_get_doctype(void)
#define expect_node(node, expstr)
static void test_appendChild(void)
static void test_removeNamedItem(void)
static BSTR alloced_bstrs[256]
static ULONG WINAPI sp_AddRef(IServiceProvider *iface)
static void test_getAttribute(void)
static const CHAR szEmailXML_0D[]
static const node_value_t nodevalue_test[]
#define helper_expect_list_and_release(list, expstr)
static HRESULT WINAPI istream_CopyTo(IStream *iface, IStream *stream, ULARGE_INTEGER len, ULARGE_INTEGER *pread, ULARGE_INTEGER *written)
static void test_get_dataType(void)
static const IResponseVtbl testresponsevtbl
static void test_save(void)
static void _test_IObjectSafety_set(unsigned line, IObjectSafety *safety, HRESULT result, HRESULT result2, DWORD set, DWORD mask, DWORD expected, DWORD expected2)
static const property_test_t properties_test_data[]
static HRESULT WINAPI response_Clear(IResponse *iface)
static ULONG WINAPI istream_Release(IStream *iface)
static HRESULT WINAPI response_put_Status(IResponse *iface, BSTR bstrStatus)
static void test_get_namespaces(void)
static const CHAR szNodeTypesXML[]
static const char * leading_spaces_xmldata[]
static dispevent * impl_from_IDispatch(IDispatch *iface)
struct _namespace_as_attribute_t namespace_as_attribute_t
static const IServiceProviderVtbl sp_vtbl
static const refcount_test_t refcount_test[]
static void write_to_file(const char *name, const char *data)
static HRESULT WINAPI response_put_CodePage(IResponse *iface, LONG codepage)
static void test_get_ownerDocument(void)
static void test_setAttributeNode(void)
static void test_refs(void)
static const struct namespaces_change_t namespaces_change_test_data[]
static HRESULT WINAPI sp_QueryInterface(IServiceProvider *iface, REFIID iid, void **ppv)
#define helper_ole_check_ver(expr)
static void check_interface_(unsigned int line, void *iface_ptr, REFIID iid, BOOL supported)
#define EXPECT_CHILDREN(node)
static const xslpattern_test_t xslpattern_test_no_ns[]
static HRESULT WINAPI dispevent_GetTypeInfo(IDispatch *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static DWORD WINAPI new_thread(void *arg)
#define create_document_version(v, iid)
static void test_validate_on_parse_values(void)
static ULONG WINAPI sp_Release(IServiceProvider *iface)
static char * list_to_string(IXMLDOMNodeList *list)
static void test_get_text(void)
static const char win1252decl[]
static void _expect_parse_error(IXMLDOMDocument *doc, HRESULT hr_exp, BOOL hr_todo, int line)
static HRESULT WINAPI response_IsClientConnected(IResponse *iface, VARIANT_BOOL *pfIsClientConnected)
static const CHAR szTransformSSXML[]
static void node_to_string(IXMLDOMNode *node, char *buf)
static void test_domobj_dispex(IUnknown *obj)
static int get_node_position(IXMLDOMNode *node)
static void test_nodeValue(void)
static const CHAR szEmailXML_11[]
static BSTR alloc_str_from_narrow(const char *str)
static void test_selectSingleNode(void)
static void test_put_dataType(void)
#define set_props(doc, cache)
static const CHAR szEmailXML_20[]
static void test_transformNodeToObject(void)
static const namespace_as_attribute_t namespace_as_attribute_test_data[]
static const ns_item_t named_item_tests[]
static void test_mxnamespacemanager(void)
static HRESULT WINAPI dispevent_Invoke(IDispatch *iface, DISPID member, REFIID riid, LCID lcid, WORD flags, DISPPARAMS *params, VARIANT *result, EXCEPINFO *excepInfo, UINT *argErr)
static void test_get_attributes(void)
static void test_testTransforms(void)
static const validate_on_parse_test_t validate_on_parse_tests[]
#define helper_expect_bstr_and_release(bstr, str)
static void test_create(void)
static HRESULT WINAPI response_WriteBlock(IResponse *iface, short iBlockNumber)
static struct msxmlsupported_data_t domdoc_support_data[]
static void test_domdoc(void)
static void test_max_element_depth_values(void)
static void test_domnode(void)
static void test_nodeTypedValue(void)
static const char xsltext_xsl[]
#define EXPECT_REF(node, ref)
static HRESULT WINAPI response_GetTypeInfo(IResponse *iface, UINT ti, LCID lcid, ITypeInfo **tinfo)
static HRESULT WINAPI response_get_Buffer(IResponse *iface, VARIANT_BOOL *fIsBuffering)
static void _set_props(int line, IXMLDOMDocument2 *doc, IXMLDOMSchemaCollection *cache)
static void test_get_firstChild(void)
static HRESULT WINAPI response_get_CodePage(IResponse *iface, LONG *plvar)
static void _expect_ref(IUnknown *obj, ULONG ref, int line)
static void test_getAttributeNode(void)
static struct attrtest_t attrtests[]
static const struct whitespace_t whitespace_test_data[]
static void _unset_props(int line, IXMLDOMDocument2 *doc)
static put_datatype_t put_datatype_data[]
static void test_normalize_attribute_values(void)
static void test_namespaces_change(void)
static HRESULT WINAPI response_Write(IResponse *iface, VARIANT varText)
static const char charrefsxml[]
static HRESULT WINAPI response_put_ContentType(IResponse *iface, BSTR bstrContentType)
static void test_getElementsByTagName(void)
static int alloced_bstrs_count
static HRESULT WINAPI response_QI(IResponse *iface, REFIID riid, void **obj)
static const CHAR szEmailXML[]
static ULONG WINAPI transformdest_Release(IUnknown *iface)
static void test_IObjectSafety(void)
static void test_namespaces_as_attributes(void)
static HRESULT WINAPI response_get_LCID(IResponse *iface, LONG *lcid)
static ULONG WINAPI dispevent_AddRef(IDispatch *iface)
struct _validate_on_parse_test_t validate_on_parse_test_t
static HRESULT WINAPI response_put_Buffer(IResponse *iface, VARIANT_BOOL fIsBuffering)
static const CHAR szEmailXML_18[]
static void _check_ws_ignored(int line, const char *ver, IXMLDOMDocument2 *doc, char const *str)
static HRESULT WINAPI dispevent_QueryInterface(IDispatch *iface, REFIID riid, void **ppvObject)
static void free_bstrs(void)
struct _property_test_t property_test_t
static const nodetypedvalue_t get_nodetypedvalue[]
static const DOMNodeType put_data_types[]
static void _test_doc_load_from_path(IXMLDOMDocument *doc, const char *path, HRESULT expected_hr, VARIANT_BOOL expected_ret, int line)
static HRESULT WINAPI response_AddHeader(IResponse *iface, BSTR bstrHeaderName, BSTR bstrHeaderValue)
static void test_cloneNode(void)
static void test_insertBefore(void)
static const get_attributes_t get_attributes[]
static void test_supporterrorinfo(void)
static void test_newline_normalization(void)
static ULONG WINAPI transformdest_AddRef(IUnknown *iface)
static void test_persiststream(void)
static HRESULT WINAPI response_put_Expires(IResponse *iface, LONG lExpiresMinutes)
static HRESULT WINAPI response_Flush(IResponse *iface)
#define EXPECT_LIST_LEN(list, len)
static HRESULT WINAPI istream_LockRegion(IStream *iface, ULARGE_INTEGER offset, ULARGE_INTEGER len, DWORD locktype)
static const char win1252xml[]
static const CHAR szEmailXML_0E[]
static HRESULT WINAPI dispevent_GetTypeInfoCount(IDispatch *iface, UINT *pctinfo)
static HRESULT WINAPI istream_Revert(IStream *iface)
static void _test_IObjectSafety_common(unsigned line, IObjectSafety *safety)
static void _expect_no_children(IXMLDOMNode *node, int line)
static void test_preserve_charref(IXMLDOMDocument2 *doc, VARIANT_BOOL preserve)
static void test_parseerror(void)
static HRESULT WINAPI response_put_ExpiresAbsolute(IResponse *iface, DATE dtExpires)
static const DOMNodeType nodetypes_test[]
static HRESULT WINAPI response_GetTypeInfoCount(IResponse *iface, UINT *count)
static void test_createNode(void)
static HRESULT WINAPI response_Invoke(IResponse *iface, DISPID dispid, REFIID riid, LCID lcid, WORD flags, DISPPARAMS *params, VARIANT *result, EXCEPINFO *ei, UINT *argerr)
static void test_createProcessingInstruction(void)
static const WCHAR nonexistent_fileW[]
#define expect_eq(expr, value, type, format)
#define EXPECT_PARSE_ERROR(doc, hr_exp, hr_todo)
static IDispatch * create_dispevent(void)
static void test_replaceChild(void)
static void test_url(void)
static const xslpattern_test_t xslpattern_test[]
static const WCHAR szComplete5[]
static HRESULT WINAPI response_put_CharSet(IResponse *iface, BSTR bstrCharSet)
#define expect_list_and_release(list, expstr)
static const xslpattern_test_t xslpattern_test_func[]
static void * _create_object(const GUID *clsid, const char *name, const IID *iid, int line)
static void test_xmlTypes(void)
static const CHAR szEmailXML_17[]
#define check_default_props(doc)
static HRESULT WINAPI dispevent_GetIDsOfNames(IDispatch *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static void _expect_children(IXMLDOMNode *node, int line)
static HRESULT WINAPI istream_SetSize(IStream *iface, ULARGE_INTEGER size)
static ULONG WINAPI response_Release(IResponse *iface)
static ULONG WINAPI dispevent_Release(IDispatch *iface)
static void test_removeChild(void)
static HRESULT WINAPI response_Pics(IResponse *iface, BSTR bstrHeaderValue)
static HRESULT WINAPI response_get_ContentType(IResponse *iface, BSTR *pbstrContentTypeRet)
static void test_XPath(void)
static const WCHAR szStrangeChars[]
static ULONG WINAPI istream_AddRef(IStream *iface)
static void test_xsltext(void)
static const node_type_t get_datatype[]
static const char omitxmldecl_xsl[]
static HRESULT WINAPI response_put_CacheControl(IResponse *iface, BSTR bstrCacheControl)
static void test_putref_schemas(void)
struct _get_attributes_t get_attributes_t
static const CHAR szBasicTransformSSXMLPart1[]
static BOOL qi_list_contains_service(REFIID service, REFIID iid)
static const char default_ns_doc[]
static const CHAR szEmailXML_14[]
static put_datatype_notype_t put_dt_notype[]
static HRESULT WINAPI response_get_ExpiresAbsolute(IResponse *iface, VARIANT *pvarExpiresRet)
static void test_mxnamespacemanager_override(void)
#define TEST_DOC_LOAD_FROM_PATH(doc, path, expected_hr, expected_ret)
static void test_indent(void)
#define create_document(iid)
static void test_namedmap_newenum(void)
static HRESULT WINAPI response_GetIDsOfNames(IResponse *iface, REFIID riid, LPOLESTR *names, UINT cnames, LCID lcid, DISPID *rgDispId)
static void test_xsltemplate(void)
static const char xpath_simple_list[]
static ULONG WINAPI response_AddRef(IResponse *iface)
static void test_merging_text(void)
static void test_load(void)
static HRESULT WINAPI response_put_LCID(IResponse *iface, LONG lcid)
#define test_IObjectSafety_set(p, r, r2, s, m, e, e2)
static HRESULT WINAPI response_Add(IResponse *iface, BSTR bstrHeaderValue, BSTR bstrHeaderName)
#define check_ws_ignored(ver, doc, str)
static void test_load_with_site(void)
static void test_default_properties(void)
static const CHAR szEmailXML_13[]
static const char xsd_schema1_uri[]
static HRESULT WINAPI istream_QueryInterface(IStream *iface, REFIID riid, void **ppvObject)
struct _nodetypedvalue_t nodetypedvalue_t
#define EXPECT_NO_CHILDREN(node)
static void test_create_attribute(void)
static const IStreamVtbl StreamVtbl
static HRESULT WINAPI istream_Read(IStream *iface, void *ptr, ULONG len, ULONG *pread)
static const selection_ns_t selection_ns_data[]
static HRESULT WINAPI response_get_Cookies(IResponse *iface, IRequestDictionary **ppCookies)
static HRESULT WINAPI istream_Clone(IStream *iface, IStream **stream)
static void test_get_nodeTypeString(void)
static void _check_default_props(int line, IXMLDOMDocument2 *doc)
static void test_IXMLDOMDocument2(void)
static void test_events(void)
static IStream savestream
#define check_interface(a, b, c)
static HRESULT WINAPI istream_Stat(IStream *iface, STATSTG *pstatstg, DWORD flag)
static const get_node_typestring_t get_node_typestring[]
static void test_put_nodeTypedValue(void)
static void _expect_list_len(IXMLDOMNodeList *list, LONG len, int line)
static BOOL qi_list_contains(REFIID iid)
static const supporterror_t supporterror_test[]
static HRESULT WINAPI istream_Write(IStream *iface, const void *ptr, ULONG len, ULONG *written)
static void _check_set_props(int line, IXMLDOMDocument2 *doc)
static BOOL is_clsid_supported(const GUID *clsid, REFIID riid)
static HRESULT WINAPI response_BinaryWrite(IResponse *iface, VARIANT input)
static const struct leading_spaces_t leading_spaces_classdata[]
static const char attributes_map[]
static IServiceProvider sp
static const IUnknownVtbl transformdestvtbl
static const struct queryresult_t elementsbytagname[]
static void test_removeQualifiedItem(void)
static const CHAR szEmailXML_16[]
static const char get_prefix_doc[]
static void test_selection(void)
static const char iso8859_1_xml[]
static void test_get_tagName(void)
static const char omitxmldecl_doc[]
static const char * strip_spaces(const char *str)
static void url_forward_slash(char *url)
static HRESULT WINAPI response_Redirect(IResponse *iface, BSTR bstrURL)
static const char xsd_schema1_xml[]
static void test_FormattingXML(void)
static const char complete7[]
static const CHAR szBasicTransformXML[]
static void test_namespaces_basic(void)
static void _check_ws_preserved(int line, const char *ver, IXMLDOMDocument2 *doc, char const *str)
#define check_ws_preserved(ver, doc, str)
static void test_splitText(void)
struct _get_node_typestring_t get_node_typestring_t
static const WCHAR szComplete1[]
#define create_xsltemplate(iid)
static HRESULT WINAPI istream_UnlockRegion(IStream *iface, ULARGE_INTEGER offset, ULARGE_INTEGER len, DWORD locktype)
#define expect_bstr_eq_and_free(bstr, expect)
static HRESULT WINAPI response_get_Expires(IResponse *iface, VARIANT *pvarExpiresMinutesRet)
static BOOL compareIgnoreReturns(BSTR sLeft, BSTR sRight)
static HRESULT WINAPI transformdest_QueryInterface(IUnknown *iface, REFIID riid, void **obj)
static void test_dispex(void)
static const CHAR szBasicTransformSSXMLPart2[]
static const CHAR szTransformOutput[]
static const char gbkxml[]
static const char * debugstr_msxml_guid(REFIID riid)
static const xpath_test_t xpath_test[]
#define test_IObjectSafety_common(s)
static void test_XSLPattern(void)
static const char complete4A[]
static const CHAR szBasicTransformOutput[]
static HRESULT WINAPI response_End(IResponse *iface)
static void test_TransformWithLoadingLocalFile(void)
static const IDispatchVtbl dispeventVtbl
#define XML_E_INVALIDATROOTLEVEL
static void get_class_support_data(void)
static ICollection collection
static VARIANTARG static DISPID
static const WCHAR url2[]
ssize_t pread(int fd, void *buf, size_t count, off_t offset)
static const WCHAR path2[]
#define DISPID_XMLDOM_NODELIST_RESET
#define DISPID_DOM_COLLECTION_BASE
#define DISPID_DOM_NODELIST_LENGTH
const struct _GUID CLSID_DOMDocument
const struct _GUID CLSID_XMLHTTPRequest
enum tagDOMNodeType DOMNodeType
@ NODE_PROCESSING_INSTRUCTION
HRESULT node_clone(xmlnode *, VARIANT_BOOL, IXMLDOMNode **)
_In_ LPWSTR _In_ DWORD _In_ LPCVOID pvData
#define LOCALE_SYSTEM_DEFAULT
#define MAKELCID(lgid, srtid)
BSTR WINAPI SysAllocString(LPCOLESTR str)
UINT WINAPI SysStringLen(BSTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
BSTR WINAPI DECLSPEC_HOTPATCH SysAllocStringByteLen(LPCSTR str, UINT len)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
#define VARIANT_NOUSEROVERRIDE
#define DISPATCH_PROPERTYGET
const GUID IID_IConnectionPointContainer
const GUID IID_IPropertyNotifySink
const GUID IID_IOleClientSite
const GUID IID_IPersistStreamInit
const GUID IID_IPersistStream
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
#define IsEqualCLSID(rclsid1, rclsid2)
static unsigned __int64 next
IStream *WINAPI SHCreateMemStream(const BYTE *lpbData, UINT dwDataLen)
const char int int int static __inline const char * wine_dbgstr_a(const char *s)
static __inline const char * wine_dbgstr_guid(const GUID *id)
#define _WIN32_WINNT_VISTA
IDispatch IDispatch_iface
struct docload_ret_t ret[2]
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
Character const *const prefix
#define CONTAINING_RECORD(address, type, field)
HRESULT WINAPI VariantChangeTypeEx(VARIANTARG *pvargDest, VARIANTARG *pvargSrc, LCID lcid, USHORT wFlags, VARTYPE vt)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantChangeType(VARIANTARG *pvargDest, VARIANTARG *pvargSrc, USHORT wFlags, VARTYPE vt)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
void WINAPI VariantInit(VARIANTARG *pVarg)
static const WCHAR props[]
#define success(from, fromstr, to, tostr)
DWORD WINAPI GetLastError(void)
WINBASEAPI _In_ DWORD nLength
_In_ ULONG _In_ ULONG_PTR ident
#define DISP_E_BADPARAMCOUNT
#define DISP_E_MEMBERNOTFOUND
#define DISP_E_TYPEMISMATCH
#define DISP_E_UNKNOWNNAME
int WINAPIV wsprintfA(_Out_ LPSTR, _In_ _Printf_format_string_ LPCSTR,...)