mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 16:36:33 +00:00
[MSXML3_WINETEST] Sync with Wine Staging 1.9.11. CORE-11368
svn path=/trunk/; revision=71577
This commit is contained in:
parent
34ca173317
commit
820f0a6196
5 changed files with 140 additions and 16 deletions
|
@ -6742,9 +6742,9 @@ static void test_TransformWithLoadingLocalFile(void)
|
|||
BSTR sPart1 = _bstr_(szBasicTransformSSXMLPart1);
|
||||
BSTR sPart2 = _bstr_(szBasicTransformSSXMLPart2);
|
||||
BSTR sFileName = _bstr_(lpPathBuffer);
|
||||
int nLegnth = lstrlenW(sPart1) + lstrlenW(sPart2) + lstrlenW(sFileName) + 1;
|
||||
int nLength = lstrlenW(sPart1) + lstrlenW(sPart2) + lstrlenW(sFileName) + 1;
|
||||
|
||||
sXSL = SysAllocStringLen(NULL, nLegnth);
|
||||
sXSL = SysAllocStringLen(NULL, nLength);
|
||||
lstrcpyW(sXSL, sPart1);
|
||||
lstrcatW(sXSL, sFileName);
|
||||
lstrcatW(sXSL, sPart2);
|
||||
|
@ -9297,10 +9297,12 @@ static void test_get_attributes(void)
|
|||
{
|
||||
const get_attributes_t *entry = get_attributes;
|
||||
IXMLDOMNamedNodeMap *map;
|
||||
IXMLDOMDocument *doc;
|
||||
IXMLDOMDocument *doc, *doc2;
|
||||
IXMLDOMNode *node, *node2;
|
||||
IXMLDOMElement *elem;
|
||||
VARIANT_BOOL b;
|
||||
HRESULT hr;
|
||||
VARIANT v;
|
||||
BSTR str;
|
||||
LONG length;
|
||||
|
||||
|
@ -9472,6 +9474,39 @@ static void test_get_attributes(void)
|
|||
|
||||
IXMLDOMNamedNodeMap_Release(map);
|
||||
|
||||
/* append created element a different document, map still works */
|
||||
hr = IXMLDOMDocument_createElement(doc, _bstr_("test"), &elem);
|
||||
ok(hr == S_OK, "createElement failed: %08x\n", hr);
|
||||
|
||||
V_VT(&v) = VT_I4;
|
||||
V_I4(&v) = 1;
|
||||
hr = IXMLDOMElement_setAttribute(elem, _bstr_("testattr"), v);
|
||||
ok(hr == S_OK, "setAttribute failed: %08x\n", hr);
|
||||
|
||||
hr = IXMLDOMElement_get_attributes(elem, &map);
|
||||
ok(hr == S_OK, "get_attributes failed: %08x\n", hr);
|
||||
|
||||
length = 0;
|
||||
hr = IXMLDOMNamedNodeMap_get_length(map, &length);
|
||||
ok(hr == S_OK, "got %08x\n", hr);
|
||||
ok(length == 1, "got %d\n", length);
|
||||
|
||||
doc2 = create_document(&IID_IXMLDOMDocument);
|
||||
|
||||
hr = IXMLDOMDocument_appendChild(doc2, (IXMLDOMNode*)elem, &node);
|
||||
ok(hr == S_OK, "appendChild failed: %08x\n", hr);
|
||||
ok(node == (IXMLDOMNode*)elem, "node != elem\n");
|
||||
IXMLDOMNode_Release(node);
|
||||
IXMLDOMElement_Release(elem);
|
||||
IXMLDOMDocument_Release(doc2);
|
||||
|
||||
length = 0;
|
||||
hr = IXMLDOMNamedNodeMap_get_length(map, &length);
|
||||
ok(hr == S_OK, "got %08x\n", hr);
|
||||
ok(length == 1, "got %d\n", length);
|
||||
|
||||
IXMLDOMNamedNodeMap_Release(map);
|
||||
|
||||
while (entry->type)
|
||||
{
|
||||
VARIANT var;
|
||||
|
|
|
@ -49,9 +49,10 @@
|
|||
#define EXPECT_REF(node,ref) _expect_ref((IUnknown*)node, ref, __LINE__)
|
||||
static void _expect_ref(IUnknown* obj, ULONG ref, int line)
|
||||
{
|
||||
ULONG rc = IUnknown_AddRef(obj);
|
||||
IUnknown_Release(obj);
|
||||
ok_(__FILE__,line)(rc-1 == ref, "expected refcount %d, got %d\n", ref, rc-1);
|
||||
ULONG rc;
|
||||
IUnknown_AddRef(obj);
|
||||
rc = IUnknown_Release(obj);
|
||||
ok_(__FILE__, line)(rc == ref, "expected refcount %d, got %d\n", ref, rc);
|
||||
}
|
||||
|
||||
DEFINE_GUID(SID_SContainerDispatch, 0xb722be00, 0x4e68, 0x101b, 0xa2, 0xbc, 0x00, 0xaa, 0x00, 0x40, 0x47, 0x70);
|
||||
|
|
|
@ -47,9 +47,10 @@ static const WCHAR emptyW[] = {0};
|
|||
#define EXPECT_REF(obj,ref) _expect_ref((IUnknown*)obj, ref, __LINE__)
|
||||
static void _expect_ref(IUnknown* obj, ULONG ref, int line)
|
||||
{
|
||||
ULONG rc = IUnknown_AddRef(obj);
|
||||
IUnknown_Release(obj);
|
||||
ok_(__FILE__,line)(rc-1 == ref, "expected refcount %d, got %d\n", ref, rc-1);
|
||||
ULONG rc;
|
||||
IUnknown_AddRef(obj);
|
||||
rc = IUnknown_Release(obj);
|
||||
ok_(__FILE__, line)(rc == ref, "expected refcount %d, got %d\n", ref, rc);
|
||||
}
|
||||
|
||||
static LONG get_refcount(void *iface)
|
||||
|
@ -2931,7 +2932,6 @@ static void test_mxwriter_handlers(void)
|
|||
ok(hr == S_OK, "%s, expected S_OK, got %08x\n", wine_dbgstr_guid(riids[i]), hr);
|
||||
ok(writer2 == writer, "got %p, expected %p\n", writer2, writer);
|
||||
EXPECT_REF(writer, 3);
|
||||
EXPECT_REF(writer2, 3);
|
||||
IMXWriter_Release(writer2);
|
||||
IUnknown_Release(handler);
|
||||
}
|
||||
|
@ -3309,7 +3309,6 @@ static void test_mxwriter_flush(void)
|
|||
pos2.QuadPart = 0;
|
||||
hr = IStream_Seek(stream, pos, STREAM_SEEK_CUR, &pos2);
|
||||
EXPECT_HR(hr, S_OK);
|
||||
todo_wine
|
||||
ok(pos2.QuadPart != 0, "unexpected stream beginning\n");
|
||||
|
||||
hr = IMXWriter_get_output(writer, NULL);
|
||||
|
@ -4150,7 +4149,6 @@ static void test_mxwriter_stream(void)
|
|||
V_UNKNOWN(&dest) = (IUnknown*)&mxstream;
|
||||
hr = IMXWriter_put_output(writer, dest);
|
||||
ok(hr == S_OK, "put_output failed with %08x on test %d\n", hr, current_stream_test_index);
|
||||
VariantClear(&dest);
|
||||
|
||||
hr = IMXWriter_put_byteOrderMark(writer, test->bom);
|
||||
ok(hr == S_OK, "put_byteOrderMark failed with %08x on test %d\n", hr, current_stream_test_index);
|
||||
|
@ -4795,6 +4793,7 @@ static void test_mxwriter_dtd(void)
|
|||
ISAXLexicalHandler *lexical;
|
||||
IVBSAXDeclHandler *vbdecl;
|
||||
ISAXDeclHandler *decl;
|
||||
ISAXDTDHandler *dtd;
|
||||
IMXWriter *writer;
|
||||
VARIANT dest;
|
||||
HRESULT hr;
|
||||
|
@ -4993,6 +4992,9 @@ static void test_mxwriter_dtd(void)
|
|||
hr = IVBSAXDeclHandler_externalEntityDecl(vbdecl, NULL, NULL, NULL);
|
||||
ok(hr == E_POINTER, "got 0x%08x\n", hr);
|
||||
|
||||
hr = ISAXDeclHandler_externalEntityDecl(decl, _bstr_("name"), 0, NULL, 0, NULL, 0);
|
||||
ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
|
||||
|
||||
hr = ISAXDeclHandler_externalEntityDecl(decl, _bstr_("name"), -1, NULL, 0, NULL, 0);
|
||||
ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
|
||||
|
||||
|
@ -5000,13 +5002,61 @@ static void test_mxwriter_dtd(void)
|
|||
_bstr_("sysid"), strlen("sysid"));
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
||||
hr = ISAXDeclHandler_externalEntityDecl(decl, _bstr_("name"), strlen("name"), NULL, 0, _bstr_("sysid"), strlen("sysid"));
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
||||
hr = ISAXDeclHandler_externalEntityDecl(decl, _bstr_("name"), strlen("name"), _bstr_("pubid"), strlen("pubid"),
|
||||
NULL, 0);
|
||||
ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
|
||||
|
||||
V_VT(&dest) = VT_EMPTY;
|
||||
hr = IMXWriter_get_output(writer, &dest);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
|
||||
ok(!lstrcmpW(_bstr_("<!ENTITY name PUBLIC \"pubid\" \"sysid\">\r\n"), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
|
||||
ok(!lstrcmpW(_bstr_(
|
||||
"<!ENTITY name PUBLIC \"pubid\" \"sysid\">\r\n"
|
||||
"<!ENTITY name SYSTEM \"sysid\">\r\n"),
|
||||
V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
|
||||
|
||||
VariantClear(&dest);
|
||||
|
||||
/* notation declaration */
|
||||
hr = IMXWriter_QueryInterface(writer, &IID_ISAXDTDHandler, (void**)&dtd);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
||||
V_VT(&dest) = VT_EMPTY;
|
||||
hr = IMXWriter_put_output(writer, dest);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
||||
hr = ISAXDTDHandler_notationDecl(dtd, NULL, 0, NULL, 0, NULL, 0);
|
||||
ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
|
||||
|
||||
hr = ISAXDTDHandler_notationDecl(dtd, _bstr_("name"), strlen("name"), NULL, 0, NULL, 0);
|
||||
ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
|
||||
|
||||
hr = ISAXDTDHandler_notationDecl(dtd, _bstr_("name"), strlen("name"), _bstr_("pubid"), strlen("pubid"), NULL, 0);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
||||
hr = ISAXDTDHandler_notationDecl(dtd, _bstr_("name"), strlen("name"), _bstr_("pubid"), strlen("pubid"), _bstr_("sysid"), strlen("sysid"));
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
||||
hr = ISAXDTDHandler_notationDecl(dtd, _bstr_("name"), strlen("name"), NULL, 0, _bstr_("sysid"), strlen("sysid"));
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
||||
hr = IMXWriter_get_output(writer, &dest);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
|
||||
ok(!lstrcmpW(_bstr_(
|
||||
"<!NOTATION name"
|
||||
"<!NOTATION name PUBLIC \"pubid\">\r\n"
|
||||
"<!NOTATION name PUBLIC \"pubid\" \"sysid\">\r\n"
|
||||
"<!NOTATION name SYSTEM \"sysid\">\r\n"),
|
||||
V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
|
||||
|
||||
VariantClear(&dest);
|
||||
|
||||
ISAXDTDHandler_Release(dtd);
|
||||
|
||||
ISAXContentHandler_Release(content);
|
||||
ISAXLexicalHandler_Release(lexical);
|
||||
IVBSAXLexicalHandler_Release(vblexical);
|
||||
|
@ -5586,7 +5636,7 @@ START_TEST(saxreader)
|
|||
|
||||
if(FAILED(hr))
|
||||
{
|
||||
skip("Failed to create SAXXMLReader instance\n");
|
||||
win_skip("Failed to create SAXXMLReader instance\n");
|
||||
CoUninitialize();
|
||||
return;
|
||||
}
|
||||
|
@ -5636,7 +5686,7 @@ START_TEST(saxreader)
|
|||
test_mxattr_dispex();
|
||||
}
|
||||
else
|
||||
skip("SAXAttributes not supported\n");
|
||||
win_skip("SAXAttributes not supported\n");
|
||||
|
||||
CoUninitialize();
|
||||
}
|
||||
|
|
|
@ -514,6 +514,7 @@ static void test_schema_refs(void)
|
|||
VARIANT_BOOL b;
|
||||
BSTR str;
|
||||
LONG len;
|
||||
HRESULT hr;
|
||||
|
||||
doc = create_document(&IID_IXMLDOMDocument2);
|
||||
if (!doc)
|
||||
|
@ -565,6 +566,24 @@ static void test_schema_refs(void)
|
|||
ole_check(IXMLDOMSchemaCollection_get_length(cache, &len));
|
||||
ok(len == 0, "got %d\n", len);
|
||||
|
||||
/* same, but with VT_UNKNOWN type */
|
||||
V_VT(&v) = VT_UNKNOWN;
|
||||
V_UNKNOWN(&v) = (IUnknown*)doc;
|
||||
hr = IXMLDOMSchemaCollection_add(cache, NULL, v);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
||||
len = -1;
|
||||
hr = IXMLDOMSchemaCollection_get_length(cache, &len);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
ok(len == 1, "got %d\n", len);
|
||||
|
||||
hr = IXMLDOMSchemaCollection_remove(cache, NULL);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
len = -1;
|
||||
hr = IXMLDOMSchemaCollection_get_length(cache, &len);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
ok(len == 0, "got %d\n", len);
|
||||
|
||||
str = SysAllocString(xdr_schema_uri);
|
||||
ole_check(IXMLDOMSchemaCollection_add(cache, str, _variantdoc_(doc)));
|
||||
|
||||
|
@ -1638,6 +1657,24 @@ static void test_remove(void)
|
|||
free_bstrs();
|
||||
}
|
||||
|
||||
static void test_ifaces(void)
|
||||
{
|
||||
IXMLDOMSchemaCollection2 *cache;
|
||||
IUnknown *unk;
|
||||
HRESULT hr;
|
||||
|
||||
cache = create_cache_version(60, &IID_IXMLDOMSchemaCollection2);
|
||||
if (!cache) return;
|
||||
|
||||
/* CLSID_XMLSchemaCache60 is returned as an interface (the same as IXMLDOMSchemaCollection2). */
|
||||
hr = IXMLDOMSchemaCollection2_QueryInterface(cache, &CLSID_XMLSchemaCache60, (void**)&unk);
|
||||
ok (hr == S_OK, "Could not get CLSID_XMLSchemaCache60 iface: %08x\n", hr);
|
||||
ok (unk == (IUnknown*)cache, "unk != cache\n");
|
||||
|
||||
IUnknown_Release(unk);
|
||||
IXMLDOMSchemaCollection2_Release(cache);
|
||||
}
|
||||
|
||||
START_TEST(schema)
|
||||
{
|
||||
HRESULT r;
|
||||
|
@ -1655,6 +1692,7 @@ START_TEST(schema)
|
|||
test_dispex();
|
||||
test_get();
|
||||
test_remove();
|
||||
test_ifaces();
|
||||
|
||||
CoUninitialize();
|
||||
}
|
||||
|
|
|
@ -520,7 +520,7 @@ static BOOL test_try_xmldoc(void)
|
|||
&IID_IXMLDocument, (LPVOID*)&doc);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
skip("Failed to create XMLDocument instance\n");
|
||||
win_skip("Failed to create XMLDocument instance\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue