mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-14 17:04:55 +00:00
msxml3/tests: Consolidate check for available class versions.
This commit is contained in:
parent
a14793f50b
commit
61c8a4e6ea
|
@ -61,6 +61,88 @@ static const char *debugstr_guid(REFIID riid)
|
|||
|
||||
static int g_unexpectedcall, g_expectedcall;
|
||||
|
||||
struct msxmlsupported_data_t
|
||||
{
|
||||
const GUID *clsid;
|
||||
const char *name;
|
||||
const IID *ifaces[3];
|
||||
BOOL supported[3];
|
||||
};
|
||||
|
||||
static struct msxmlsupported_data_t domdoc_support_data[] =
|
||||
{
|
||||
{ &CLSID_DOMDocument, "DOMDocument", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2} },
|
||||
{ &CLSID_DOMDocument2, "DOMDocument2", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2} },
|
||||
{ &CLSID_DOMDocument30, "DOMDocument30", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2} },
|
||||
{ &CLSID_DOMDocument40, "DOMDocument40", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2} },
|
||||
{ &CLSID_DOMDocument60, "DOMDocument60", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2, &IID_IXMLDOMDocument3} },
|
||||
{ &CLSID_FreeThreadedDOMDocument, "FreeThreadedDOMDocument", {&IID_IXMLDOMDocument, &IID_IXMLDOMDocument2} },
|
||||
{ &CLSID_XMLSchemaCache, "XMLSchemaCache", {&IID_IXMLDOMSchemaCollection} },
|
||||
{ &CLSID_XSLTemplate, "XSLTemplate", {&IID_IXSLTemplate} },
|
||||
{ &CLSID_MXNamespaceManager40, "MXNamespaceManager40", {&IID_IMXNamespaceManager} },
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
static const char *debugstr_msxml_guid(REFIID riid)
|
||||
{
|
||||
if(!riid)
|
||||
return "(null)";
|
||||
|
||||
if (IsEqualIID(&IID_IXMLDOMDocument, riid))
|
||||
return "IXMLDOMDocument";
|
||||
else if (IsEqualIID(&IID_IXMLDOMDocument2, riid))
|
||||
return "IXMLDOMDocument2";
|
||||
else if (IsEqualIID(&IID_IXMLDOMDocument3, riid))
|
||||
return "IXMLDOMDocument3";
|
||||
else if (IsEqualIID(&IID_IXMLDOMSchemaCollection, riid))
|
||||
return "IXMLDOMSchemaCollection";
|
||||
else if (IsEqualIID(&IID_IXSLTemplate, riid))
|
||||
return "IXSLTemplate";
|
||||
else if (IsEqualIID(&IID_IMXNamespaceManager, riid))
|
||||
return "IMXNamespaceManager";
|
||||
else
|
||||
return debugstr_guid(riid);
|
||||
}
|
||||
|
||||
static void get_class_support_data(struct msxmlsupported_data_t *table)
|
||||
{
|
||||
while (table->clsid)
|
||||
{
|
||||
IUnknown *unk;
|
||||
HRESULT hr;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < sizeof(table->ifaces)/sizeof(table->ifaces[0]) && table->ifaces[i] != NULL; i++)
|
||||
{
|
||||
hr = CoCreateInstance(table->clsid, NULL, CLSCTX_INPROC_SERVER, table->ifaces[i], (void**)&unk);
|
||||
if (hr == S_OK) IUnknown_Release(unk);
|
||||
|
||||
table->supported[i] = hr == S_OK;
|
||||
if (hr != S_OK) win_skip("class %s, iface %s not supported\n", table->name, debugstr_msxml_guid(table->ifaces[i]));
|
||||
}
|
||||
|
||||
table++;
|
||||
}
|
||||
}
|
||||
|
||||
static BOOL is_clsid_supported(const GUID *clsid, REFIID riid)
|
||||
{
|
||||
const struct msxmlsupported_data_t *table = domdoc_support_data;
|
||||
while (table->clsid)
|
||||
{
|
||||
if (table->clsid == clsid)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < sizeof(table->ifaces)/sizeof(table->ifaces[0]) && table->ifaces[i] != NULL; i++)
|
||||
if (table->ifaces[i] == riid) return table->supported[i];
|
||||
}
|
||||
|
||||
table++;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
typedef struct
|
||||
{
|
||||
IDispatch IDispatch_iface;
|
||||
|
@ -846,8 +928,7 @@ static void* _create_object(const GUID *clsid, const char *name, const IID *iid,
|
|||
HRESULT hr;
|
||||
|
||||
hr = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER, iid, &obj);
|
||||
if (hr != S_OK)
|
||||
win_skip_(__FILE__,line)("failed to create %s instance: 0x%08x\n", name, hr);
|
||||
ok(hr == S_OK, "failed to create %s instance: 0x%08x\n", name, hr);
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
@ -857,7 +938,6 @@ static void* _create_object(const GUID *clsid, const char *name, const IID *iid,
|
|||
#define create_document(iid) _create_object(&_create(CLSID_DOMDocument2), iid, __LINE__)
|
||||
#define create_document_version(v, iid) _create_object(&_create(CLSID_DOMDocument ## v), iid, __LINE__)
|
||||
#define create_cache(iid) _create_object(&_create(CLSID_XMLSchemaCache), iid, __LINE__)
|
||||
#define create_cache_version(v, iid) _create_object(&_create(CLSID_XMLSchemaCache ## v), iid, __LINE__)
|
||||
#define create_xsltemplate(iid) _create_object(&_create(CLSID_XSLTemplate), iid, __LINE__)
|
||||
|
||||
static BSTR alloc_str_from_narrow(const char *str)
|
||||
|
@ -1101,10 +1181,12 @@ static void test_domdoc( void )
|
|||
HRESULT hr;
|
||||
int i;
|
||||
|
||||
hr = CoCreateInstance(class_ptr->clsid, NULL, CLSCTX_INPROC_SERVER,
|
||||
&IID_IXMLDOMDocument, (void**)&doc);
|
||||
if (hr != S_OK) {
|
||||
win_skip("%d: failed to create class instance for %s\n", index, class_ptr->name);
|
||||
if (is_clsid_supported(class_ptr->clsid, &IID_IXMLDOMDocument))
|
||||
{
|
||||
hr = CoCreateInstance(class_ptr->clsid, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument, (void**)&doc);
|
||||
}
|
||||
else
|
||||
{
|
||||
class_ptr++;
|
||||
index++;
|
||||
continue;
|
||||
|
@ -1776,7 +1858,6 @@ static void test_persiststreaminit(void)
|
|||
HRESULT hr;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
hr = IXMLDOMDocument_QueryInterface(doc, &IID_IPersistStreamInit, (void**)&streaminit);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
@ -1806,7 +1887,6 @@ static void test_domnode( void )
|
|||
LONG count;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
b = FALSE;
|
||||
r = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
|
||||
|
@ -2205,7 +2285,6 @@ static void test_refs(void)
|
|||
LONG ref;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
ptr = refcount_test;
|
||||
while (ptr->type != NODE_INVALID)
|
||||
|
@ -2343,7 +2422,6 @@ todo_wine {
|
|||
IUnknown_Release(unk);
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
EXPECT_REF(doc, 1);
|
||||
hr = IXMLDOMDocument_QueryInterface(doc, &IID_IUnknown, (void**)&unk);
|
||||
|
@ -2510,7 +2588,6 @@ static void test_create(void)
|
|||
LONG num;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
EXPECT_REF(doc, 1);
|
||||
|
||||
|
@ -2953,7 +3030,6 @@ static void test_getElementsByTagName(void)
|
|||
BSTR str;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
r = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
|
||||
ok( r == S_OK, "loadXML failed\n");
|
||||
|
@ -3065,7 +3141,6 @@ static void test_get_text(void)
|
|||
LONG len;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
r = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
|
||||
ok( r == S_OK, "loadXML failed\n");
|
||||
|
@ -3161,7 +3236,6 @@ static void test_get_childNodes(void)
|
|||
LONG len;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
hr = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
|
||||
EXPECT_HR(hr, S_OK);
|
||||
|
@ -3320,7 +3394,6 @@ static void test_get_firstChild(void)
|
|||
BSTR str;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
r = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
|
||||
ok( r == S_OK, "loadXML failed\n");
|
||||
|
@ -3352,7 +3425,6 @@ static void test_get_lastChild(void)
|
|||
BSTR str;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
r = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
|
||||
ok( r == S_OK, "loadXML failed\n");
|
||||
|
@ -3393,7 +3465,6 @@ static void test_removeChild(void)
|
|||
IXMLDOMNodeList *root_list, *fo_list;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
r = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
|
||||
ok( r == S_OK, "loadXML failed\n");
|
||||
|
@ -3495,7 +3566,6 @@ static void test_replaceChild(void)
|
|||
LONG len;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
r = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
|
||||
ok( r == S_OK, "loadXML failed\n");
|
||||
|
@ -3609,7 +3679,6 @@ static void test_removeNamedItem(void)
|
|||
HRESULT r;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
r = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
|
||||
ok( r == S_OK, "loadXML failed\n");
|
||||
|
@ -3824,15 +3893,10 @@ static void test_IXMLDOMDocument2(void)
|
|||
HRESULT r;
|
||||
LONG res;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
if (!is_clsid_supported(&CLSID_DOMDocument2, &IID_IXMLDOMDocument2)) return;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
dtddoc2 = create_document(&IID_IXMLDOMDocument2);
|
||||
if (!dtddoc2)
|
||||
{
|
||||
IXMLDOMDocument_Release(doc);
|
||||
return;
|
||||
}
|
||||
|
||||
r = IXMLDOMDocument_QueryInterface( doc, &IID_IXMLDOMDocument2, (void**)&doc2 );
|
||||
ok( r == S_OK, "ret %08x\n", r );
|
||||
|
@ -4228,9 +4292,9 @@ static void test_whitespace(void)
|
|||
HRESULT hr;
|
||||
LONG len;
|
||||
|
||||
if (!is_clsid_supported(&CLSID_DOMDocument2, &IID_IXMLDOMDocument2)) return;
|
||||
doc1 = create_document(&IID_IXMLDOMDocument2);
|
||||
doc2 = create_document(&IID_IXMLDOMDocument2);
|
||||
if (!doc1 || !doc2) return;
|
||||
|
||||
ole_check(IXMLDOMDocument2_put_preserveWhiteSpace(doc2, VARIANT_TRUE));
|
||||
ole_check(IXMLDOMDocument2_get_preserveWhiteSpace(doc1, &b));
|
||||
|
@ -4420,8 +4484,8 @@ static void test_XPath(void)
|
|||
LONG len;
|
||||
BSTR str;
|
||||
|
||||
if (!is_clsid_supported(&CLSID_DOMDocument2, &IID_IXMLDOMDocument2)) return;
|
||||
doc = create_document(&IID_IXMLDOMDocument2);
|
||||
if (!doc) return;
|
||||
|
||||
hr = IXMLDOMDocument2_loadXML(doc, _bstr_(szExampleXML), &b);
|
||||
EXPECT_HR(hr, S_OK);
|
||||
|
@ -4683,10 +4747,13 @@ if (0)
|
|||
|
||||
while (ptr->clsid)
|
||||
{
|
||||
hr = CoCreateInstance(ptr->clsid, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument2, (void**)&doc);
|
||||
if (hr != S_OK)
|
||||
if (is_clsid_supported(ptr->clsid, &IID_IXMLDOMDocument2))
|
||||
{
|
||||
hr = CoCreateInstance(ptr->clsid, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument2, (void**)&doc);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
}
|
||||
else
|
||||
{
|
||||
win_skip("can't create instance of %s\n", ptr->name);
|
||||
ptr++;
|
||||
continue;
|
||||
}
|
||||
|
@ -4738,7 +4805,6 @@ static void test_cloneNode(void )
|
|||
HRESULT hr;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
ole_check(IXMLDOMDocument_loadXML(doc, _bstr_(complete4A), &b));
|
||||
ok(b == VARIANT_TRUE, "failed to load XML string\n");
|
||||
|
@ -4854,7 +4920,6 @@ static void test_xmlTypes(void)
|
|||
LONG len = 0;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
pNextChild = (void*)0xdeadbeef;
|
||||
hr = IXMLDOMDocument_get_nextSibling(doc, NULL);
|
||||
|
@ -5826,7 +5891,6 @@ static void test_put_dataType( void )
|
|||
HRESULT hr;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
hr = IXMLDOMDocument_createElement(doc, _bstr_("Testing"), NULL);
|
||||
EXPECT_HR(hr, E_INVALIDARG);
|
||||
|
@ -5925,14 +5989,7 @@ static void test_save(void)
|
|||
char *ptr;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
doc2 = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc2)
|
||||
{
|
||||
IXMLDOMDocument_Release(doc);
|
||||
return;
|
||||
}
|
||||
|
||||
/* save to IXMLDOMDocument */
|
||||
hr = IXMLDOMDocument_createElement(doc, _bstr_("Testing"), &root);
|
||||
|
@ -6051,18 +6108,10 @@ static void test_testTransforms(void)
|
|||
IXMLDOMDocument *doc, *docSS;
|
||||
IXMLDOMNode *pNode;
|
||||
VARIANT_BOOL bSucc;
|
||||
|
||||
HRESULT hr;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
docSS = create_document(&IID_IXMLDOMDocument);
|
||||
if (!docSS)
|
||||
{
|
||||
IXMLDOMDocument_Release(doc);
|
||||
return;
|
||||
}
|
||||
|
||||
hr = IXMLDOMDocument_loadXML(doc, _bstr_(szTransformXML), &bSucc);
|
||||
ok(hr == S_OK, "ret %08x\n", hr );
|
||||
|
@ -6122,15 +6171,16 @@ static void test_namespaces_change(void)
|
|||
HRESULT hr;
|
||||
BSTR str;
|
||||
|
||||
hr = CoCreateInstance(class_ptr->clsid, NULL, CLSCTX_INPROC_SERVER,
|
||||
&IID_IXMLDOMDocument, (void**)&doc);
|
||||
if (hr != S_OK)
|
||||
if (!is_clsid_supported(class_ptr->clsid, &IID_IXMLDOMDocument))
|
||||
{
|
||||
win_skip("failed to create class instance for %s\n", class_ptr->name);
|
||||
class_ptr++;
|
||||
continue;
|
||||
}
|
||||
|
||||
hr = CoCreateInstance(class_ptr->clsid, NULL, CLSCTX_INPROC_SERVER,
|
||||
&IID_IXMLDOMDocument, (void**)&doc);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
||||
V_VT(&var) = VT_I2;
|
||||
V_I2(&var) = NODE_ELEMENT;
|
||||
|
||||
|
@ -6191,7 +6241,6 @@ static void test_namespaces_basic(void)
|
|||
BSTR str;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
hr = IXMLDOMDocument_loadXML(doc, _bstr_(namespaces_xmlA), &b);
|
||||
EXPECT_HR(hr, S_OK);
|
||||
|
@ -6277,7 +6326,6 @@ static void test_FormattingXML(void)
|
|||
static const CHAR szLinefeedRootXML[] = "<Root>\r\n\t<Sub val=\"A\"/>\r\n</Root>";
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
hr = IXMLDOMDocument_loadXML(doc, _bstr_(szLinefeedXML), &bSucc);
|
||||
ok(hr == S_OK, "ret %08x\n", hr );
|
||||
|
@ -6353,7 +6401,6 @@ static void test_nodeTypedValue(void)
|
|||
HRESULT hr;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
b = VARIANT_FALSE;
|
||||
hr = IXMLDOMDocument_loadXML(doc, _bstr_(szTypeValueXML), &b);
|
||||
|
@ -6579,14 +6626,7 @@ static void test_TransformWithLoadingLocalFile(void)
|
|||
}
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
xsl = create_document(&IID_IXMLDOMDocument);
|
||||
if (!xsl)
|
||||
{
|
||||
IXMLDOMDocument_Release(doc);
|
||||
return;
|
||||
}
|
||||
|
||||
hr = IXMLDOMDocument_loadXML(doc, _bstr_(szTypeValueXML), &bSucc);
|
||||
ok(hr == S_OK, "ret %08x\n", hr );
|
||||
|
@ -6650,7 +6690,6 @@ static void test_put_nodeValue(void)
|
|||
VARIANT data, type;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
/* test for unsupported types */
|
||||
/* NODE_DOCUMENT */
|
||||
|
@ -6736,7 +6775,6 @@ static void test_IObjectSafety(void)
|
|||
HRESULT hr;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
hr = IXMLDOMDocument_QueryInterface(doc, &IID_IObjectSafety, (void**)&safety);
|
||||
ok(hr == S_OK, "ret %08x\n", hr );
|
||||
|
@ -6782,14 +6820,15 @@ static void test_default_properties(void)
|
|||
VARIANT var;
|
||||
HRESULT hr;
|
||||
|
||||
hr = CoCreateInstance(entry->guid, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument2, (void**)&doc);
|
||||
if (hr != S_OK)
|
||||
if (!is_clsid_supported(entry->guid, &IID_IXMLDOMDocument2))
|
||||
{
|
||||
win_skip("can't create %s instance\n", entry->clsid);
|
||||
entry++;
|
||||
continue;
|
||||
}
|
||||
|
||||
hr = CoCreateInstance(entry->guid, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument2, (void**)&doc);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
||||
hr = IXMLDOMDocument2_getProperty(doc, _bstr_(entry->property), &var);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
ok(lstrcmpW(V_BSTR(&var), _bstr_(entry->value)) == 0, "expected %s, for %s\n",
|
||||
|
@ -6915,7 +6954,6 @@ static void test_XSLPattern(void)
|
|||
LONG len;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument2);
|
||||
if (!doc) return;
|
||||
|
||||
b = VARIANT_FALSE;
|
||||
hr = IXMLDOMDocument2_loadXML(doc, _bstr_(szExampleXML), &b);
|
||||
|
@ -7012,7 +7050,6 @@ static void test_XSLPattern(void)
|
|||
IXMLDOMDocument2_Release(doc);
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument2);
|
||||
if (!doc) return;
|
||||
|
||||
hr = IXMLDOMDocument2_loadXML(doc, _bstr_(szNodeTypesXML), &b);
|
||||
EXPECT_HR(hr, S_OK);
|
||||
|
@ -7060,7 +7097,6 @@ static void test_splitText(void)
|
|||
HRESULT hr;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
hr = IXMLDOMDocument_loadXML(doc, _bstr_("<root></root>"), &success);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
@ -7205,7 +7241,6 @@ static void test_getQualifiedItem(void)
|
|||
LONG len;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
hr = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
|
||||
EXPECT_HR(hr, S_OK);
|
||||
|
@ -7306,7 +7341,6 @@ static void test_removeQualifiedItem(void)
|
|||
HRESULT hr;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
hr = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
|
||||
ok( hr == S_OK, "loadXML failed\n");
|
||||
|
@ -7443,14 +7477,11 @@ static void test_get_ownerDocument(void)
|
|||
VARIANT_BOOL b;
|
||||
VARIANT var;
|
||||
|
||||
if (!is_clsid_supported(&CLSID_DOMDocument2, &IID_IXMLDOMDocument2)) return;
|
||||
if (!is_clsid_supported(&CLSID_XMLSchemaCache, &IID_IXMLDOMSchemaCollection)) return;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument2);
|
||||
cache = create_cache(&IID_IXMLDOMSchemaCollection);
|
||||
if (!doc || !cache)
|
||||
{
|
||||
if (doc) IXMLDOMDocument2_Release(doc);
|
||||
if (cache) IXMLDOMSchemaCollection_Release(cache);
|
||||
return;
|
||||
}
|
||||
|
||||
VariantInit(&var);
|
||||
|
||||
|
@ -7518,7 +7549,6 @@ static void test_setAttributeNode(void)
|
|||
ULONG ref1, ref2;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
hr = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
|
||||
ok( hr == S_OK, "loadXML failed\n");
|
||||
|
@ -7664,7 +7694,6 @@ static void test_createNode(void)
|
|||
ULONG ref;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
EXPECT_REF(doc, 1);
|
||||
|
||||
|
@ -7754,7 +7783,6 @@ static void test_get_prefix(void)
|
|||
BSTR str;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
/* nodes that can't support prefix */
|
||||
/* 1. document */
|
||||
|
@ -7866,7 +7894,6 @@ static void test_selectSingleNode(void)
|
|||
LONG len;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
hr = IXMLDOMDocument_selectSingleNode(doc, NULL, NULL);
|
||||
ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
|
||||
|
@ -7931,7 +7958,6 @@ static void test_events(void)
|
|||
IDispatch *event;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
hr = IXMLDOMDocument_QueryInterface(doc, &IID_IConnectionPointContainer, (void**)&conn);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
@ -8000,7 +8026,6 @@ static void test_createProcessingInstruction(void)
|
|||
HRESULT hr;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
/* test for BSTR handling, pass broken BSTR */
|
||||
memcpy(&buff[2], bodyW, sizeof(bodyW));
|
||||
|
@ -8028,7 +8053,6 @@ static void test_put_nodeTypedValue(void)
|
|||
BSTR str;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
hr = IXMLDOMDocument_createElement(doc, _bstr_("Element"), &elem);
|
||||
EXPECT_HR(hr, S_OK);
|
||||
|
@ -8216,7 +8240,6 @@ static void test_get_xml(void)
|
|||
HRESULT hr;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
b = VARIANT_TRUE;
|
||||
hr = IXMLDOMDocument_loadXML( doc, _bstr_("<a>test</a>"), &b );
|
||||
|
@ -8325,8 +8348,8 @@ static void test_xsltemplate(void)
|
|||
ULONG ref1, ref2;
|
||||
VARIANT v;
|
||||
|
||||
if (!is_clsid_supported(&CLSID_XSLTemplate, &IID_IXSLTemplate)) return;
|
||||
template = create_xsltemplate(&IID_IXSLTemplate);
|
||||
if (!template) return;
|
||||
|
||||
/* works as reset */
|
||||
hr = IXSLTemplate_putref_stylesheet(template, NULL);
|
||||
|
@ -8354,14 +8377,15 @@ static void test_xsltemplate(void)
|
|||
|
||||
IXMLDOMDocument_Release(doc);
|
||||
|
||||
hr = CoCreateInstance(&CLSID_FreeThreadedDOMDocument, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument, (void**)&doc);
|
||||
if (hr != S_OK)
|
||||
if (!is_clsid_supported(&CLSID_FreeThreadedDOMDocument, &IID_IXMLDOMDocument))
|
||||
{
|
||||
win_skip("failed to create free threaded document instance: 0x%08x\n", hr);
|
||||
IXSLTemplate_Release(template);
|
||||
return;
|
||||
}
|
||||
|
||||
hr = CoCreateInstance(&CLSID_FreeThreadedDOMDocument, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument, (void**)&doc);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
||||
b = VARIANT_TRUE;
|
||||
hr = IXMLDOMDocument_loadXML( doc, _bstr_(szTransformSSXML), &b );
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
@ -10642,8 +10666,9 @@ static void test_parseerror(void)
|
|||
IXMLDOMParseError_Release(error);
|
||||
IXMLDOMDocument_Release(doc);
|
||||
|
||||
if (!is_clsid_supported(&CLSID_DOMDocument60, &IID_IXMLDOMDocument)) return;
|
||||
doc = create_document_version(60, &IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
hr = IXMLDOMDocument_get_parseError(doc, &error);
|
||||
EXPECT_HR(hr, S_OK);
|
||||
hr = IXMLDOMParseError_QueryInterface(error, &IID_IXMLDOMParseError2, (void**)&error2);
|
||||
|
@ -10739,8 +10764,8 @@ static void test_supporterrorinfo(void)
|
|||
void *dummy;
|
||||
HRESULT hr;
|
||||
|
||||
if (!is_clsid_supported(&CLSID_DOMDocument60, &IID_IXMLDOMDocument3)) return;
|
||||
doc = create_document_version(60, &IID_IXMLDOMDocument3);
|
||||
if (!doc) return;
|
||||
|
||||
EXPECT_REF(doc, 1);
|
||||
hr = IXMLDOMDocument_QueryInterface(doc, &IID_ISupportErrorInfo, (void**)&errorinfo);
|
||||
|
@ -10901,7 +10926,6 @@ static void test_nodeValue(void)
|
|||
HRESULT hr;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
while (ptr->type != NODE_INVALID)
|
||||
{
|
||||
|
@ -10949,7 +10973,6 @@ static void test_xmlns_attribute(void)
|
|||
HRESULT hr;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
hr = IXMLDOMDocument_createElement(doc, _bstr_("Testing"), &root);
|
||||
EXPECT_HR(hr, S_OK);
|
||||
|
@ -11031,8 +11054,8 @@ static void test_get_namespaces(void)
|
|||
LONG len;
|
||||
BSTR s;
|
||||
|
||||
if (!is_clsid_supported(&CLSID_DOMDocument2, &IID_IXMLDOMDocument2)) return;
|
||||
doc = create_document(&IID_IXMLDOMDocument2);
|
||||
if (!doc) return;
|
||||
|
||||
/* null pointer */
|
||||
hr = IXMLDOMDocument2_get_namespaces(doc, NULL);
|
||||
|
@ -11154,8 +11177,8 @@ static void test_get_namespaces(void)
|
|||
IXMLDOMDocument2_Release(doc);
|
||||
|
||||
/* now with CLSID_DOMDocument60 */
|
||||
if (!is_clsid_supported(&CLSID_DOMDocument60, &IID_IXMLDOMDocument2)) return;
|
||||
doc = create_document_version(60, &IID_IXMLDOMDocument2);
|
||||
if (!doc) return;
|
||||
|
||||
/* null pointer */
|
||||
hr = IXMLDOMDocument2_get_namespaces(doc, NULL);
|
||||
|
@ -11281,7 +11304,6 @@ static void test_put_data(void)
|
|||
HRESULT hr;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
memcpy(&buff[2], test_data, sizeof(test_data));
|
||||
/* just a big length */
|
||||
|
@ -11408,8 +11430,10 @@ static void test_putref_schemas(void)
|
|||
VARIANT schema;
|
||||
HRESULT hr;
|
||||
|
||||
if (!is_clsid_supported(&CLSID_DOMDocument2, &IID_IXMLDOMDocument2)) return;
|
||||
if (!is_clsid_supported(&CLSID_XMLSchemaCache, &IID_IXMLDOMSchemaCollection)) return;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument2);
|
||||
if (!doc) return;
|
||||
cache = create_cache(&IID_IXMLDOMSchemaCollection);
|
||||
|
||||
/* set to NULL iface when no schema is set */
|
||||
|
@ -11602,8 +11626,6 @@ static void test_xsltext(void)
|
|||
BSTR ret;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument);
|
||||
if (!doc) return;
|
||||
|
||||
doc2 = create_document(&IID_IXMLDOMDocument);
|
||||
|
||||
hr = IXMLDOMDocument_loadXML(doc, _bstr_(xsltext_xsl), &b);
|
||||
|
@ -11717,23 +11739,20 @@ static void test_create_attribute(void)
|
|||
|
||||
START_TEST(domdoc)
|
||||
{
|
||||
IXMLDOMDocument *doc;
|
||||
IUnknown *unk;
|
||||
HRESULT hr;
|
||||
|
||||
hr = CoInitialize( NULL );
|
||||
ok( hr == S_OK, "failed to init com\n");
|
||||
if (hr != S_OK) return;
|
||||
|
||||
hr = CoCreateInstance( &CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument, (void**)&doc );
|
||||
if (hr != S_OK)
|
||||
get_class_support_data(domdoc_support_data);
|
||||
if (!is_clsid_supported(&CLSID_DOMDocument2, &IID_IXMLDOMDocument))
|
||||
{
|
||||
win_skip("IXMLDOMDocument is not available (0x%08x)\n", hr);
|
||||
win_skip("DOMDocument2 is not supported. Skipping all tests.\n");
|
||||
CoUninitialize();
|
||||
return;
|
||||
}
|
||||
|
||||
IXMLDOMDocument_Release(doc);
|
||||
|
||||
test_domdoc();
|
||||
test_persiststreaminit();
|
||||
test_domnode();
|
||||
|
@ -11800,17 +11819,11 @@ START_TEST(domdoc)
|
|||
test_xsltemplate();
|
||||
test_xsltext();
|
||||
|
||||
hr = CoCreateInstance(&CLSID_MXNamespaceManager40, NULL, CLSCTX_INPROC_SERVER,
|
||||
&IID_IMXNamespaceManager, (void**)&unk);
|
||||
if (hr == S_OK)
|
||||
if (is_clsid_supported(&CLSID_MXNamespaceManager40, &IID_IMXNamespaceManager))
|
||||
{
|
||||
test_mxnamespacemanager();
|
||||
test_mxnamespacemanager_override();
|
||||
|
||||
IUnknown_Release(unk);
|
||||
}
|
||||
else
|
||||
win_skip("MXNamespaceManager is not available\n");
|
||||
|
||||
CoUninitialize();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue