diff --git a/modules/rostests/winetests/msxml3/CMakeLists.txt b/modules/rostests/winetests/msxml3/CMakeLists.txt
index f08c274cdbc..0af4843b2a8 100644
--- a/modules/rostests/winetests/msxml3/CMakeLists.txt
+++ b/modules/rostests/winetests/msxml3/CMakeLists.txt
@@ -1,5 +1,4 @@
-add_definitions(-D__ROS_LONG64__)
add_definitions(
-DUSE_WINE_TODOS
-DWINETEST_USE_DBGSTR_LONGLONG)
@@ -25,7 +24,7 @@ add_executable(msxml3_winetest
add_idl_headers(xmlparser_idlheader_test xmlparser.idl)
add_dependencies(msxml3_winetest xmlparser_idlheader_test)
set_module_type(msxml3_winetest win32cui)
-add_importlibs(msxml3_winetest user32 ole32 oleaut32 msvcrt kernel32)
+add_importlibs(msxml3_winetest shlwapi user32 ole32 oleaut32 msvcrt kernel32)
if(MSVC)
add_importlibs(msxml3_winetest ntdll)
diff --git a/modules/rostests/winetests/msxml3/domdoc.c b/modules/rostests/winetests/msxml3/domdoc.c
index fbd0f8edef6..76f0c827c2a 100644
--- a/modules/rostests/winetests/msxml3/domdoc.c
+++ b/modules/rostests/winetests/msxml3/domdoc.c
@@ -37,18 +37,37 @@
#include "dispex.h"
#include "objsafe.h"
#include "mshtml.h"
+#include "docobj.h"
+#include "xmlparser.h"
#include "initguid.h"
#include "asptlb.h"
+#include "shlwapi.h"
-#include "wine/heap.h"
#include "wine/test.h"
+#define XML_E_UNEXPECTED_ATTRIBUTE 0xC00CE56C
+
/* undef the #define in msxml2 so that we can access all versions */
#undef CLSID_DOMDocument
DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
DEFINE_GUID(IID_transformdest_unknown,0xf5078f3a,0xc551,0x11d3,0x89,0xb9,0x00,0x00,0xf8,0x1f,0xe2,0x21);
+#define check_interface(a, b, c) check_interface_(__LINE__, a, b, c)
+static void check_interface_(unsigned int line, void *iface_ptr, REFIID iid, BOOL supported)
+{
+ IUnknown *iface = iface_ptr;
+ HRESULT hr, expected_hr;
+ IUnknown *unk;
+
+ expected_hr = supported ? S_OK : E_NOINTERFACE;
+
+ hr = IUnknown_QueryInterface(iface, iid, (void **)&unk);
+ ok_(__FILE__, line)(hr == expected_hr, "Got hr %#lx, expected %#lx.\n", hr, expected_hr);
+ if (SUCCEEDED(hr))
+ IUnknown_Release(unk);
+}
+
static int g_unexpectedcall, g_expectedcall;
struct msxmlsupported_data_t
@@ -173,7 +192,7 @@ static ULONG WINAPI dispevent_Release(IDispatch *iface)
ULONG ref = InterlockedDecrement( &This->ref );
if (ref == 0)
- heap_free(This);
+ free(This);
return ref;
}
@@ -203,8 +222,8 @@ static HRESULT WINAPI dispevent_Invoke(IDispatch *iface, DISPID member, REFIID r
LCID lcid, WORD flags, DISPPARAMS *params, VARIANT *result,
EXCEPINFO *excepInfo, UINT *argErr)
{
- ok(member == 0, "expected 0 member, got %d\n", member);
- ok(lcid == LOCALE_SYSTEM_DEFAULT, "expected LOCALE_SYSTEM_DEFAULT, got lcid %x\n", lcid);
+ ok(member == 0, "expected 0 member, got %ld\n", member);
+ ok(lcid == LOCALE_SYSTEM_DEFAULT, "expected LOCALE_SYSTEM_DEFAULT, got lcid %lx\n", lcid);
ok(flags == DISPATCH_METHOD, "expected DISPATCH_METHOD, got %d\n", flags);
ok(params->cArgs == 0, "got %d\n", params->cArgs);
@@ -233,12 +252,12 @@ static const IDispatchVtbl dispeventVtbl =
static IDispatch* create_dispevent(void)
{
- dispevent *event = heap_alloc(sizeof(*event));
+ dispevent *event = malloc(sizeof(*event));
event->IDispatch_iface.lpVtbl = &dispeventVtbl;
event->ref = 1;
- return (IDispatch*)&event->IDispatch_iface;
+ return &event->IDispatch_iface;
}
/* IStream */
@@ -501,13 +520,13 @@ static HRESULT WINAPI response_BinaryWrite(IResponse *iface, VARIANT input)
bound = 1;
hr = SafeArrayGetLBound(V_ARRAY(&input), 1, &bound);
- ok(hr == S_OK, "got %#x\n", hr);
- ok(bound == 0, "wrong array low bound %d\n", bound);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(bound == 0, "wrong array low bound %ld\n", bound);
bound = 0;
hr = SafeArrayGetUBound(V_ARRAY(&input), 1, &bound);
- ok(hr == S_OK, "got %#x\n", hr);
- ok(bound > 0, "wrong array high bound %d\n", bound);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(bound > 0, "wrong array high bound %ld\n", bound);
return E_NOTIMPL;
}
@@ -660,7 +679,7 @@ static void _expect_children(IXMLDOMNode *node, int line)
b = VARIANT_FALSE;
hr = IXMLDOMNode_hasChildNodes(node, &b);
- ok_(__FILE__,line)(hr == S_OK, "hasChildNodes() failed, 0x%08x\n", hr);
+ ok_(__FILE__,line)(hr == S_OK, "hasChildNodes() failed, %#lx.\n", hr);
ok_(__FILE__,line)(b == VARIANT_TRUE, "no children, %d\n", b);
}
@@ -672,7 +691,7 @@ static void _expect_no_children(IXMLDOMNode *node, int line)
b = VARIANT_TRUE;
hr = IXMLDOMNode_hasChildNodes(node, &b);
- ok_(__FILE__,line)(hr == S_FALSE, "hasChildNodes() failed, 0x%08x\n", hr);
+ ok_(__FILE__,line)(hr == S_FALSE, "hasChildNodes() failed, %#lx.\n", hr);
ok_(__FILE__,line)(b == VARIANT_FALSE, "no children, %d\n", b);
}
@@ -682,7 +701,7 @@ static void _expect_ref(IUnknown* obj, ULONG ref, int line)
ULONG rc;
IUnknown_AddRef(obj);
rc = IUnknown_Release(obj);
- ok_(__FILE__,line)(rc == ref, "expected refcount %d, got %d\n", ref, rc);
+ ok_(__FILE__,line)(rc == ref, "expected refcount %ld, got %ld\n", ref, rc);
}
#define EXPECT_LIST_LEN(list,len) _expect_list_len(list, len, __LINE__)
@@ -693,33 +712,41 @@ static void _expect_list_len(IXMLDOMNodeList *list, LONG len, int line)
length = 0;
hr = IXMLDOMNodeList_get_length(list, &length);
- ok_(__FILE__,line)(hr == S_OK, "got 0x%08x\n", hr);
- ok_(__FILE__,line)(length == len, "got %d, expected %d\n", length, len);
+ ok_(__FILE__,line)(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok_(__FILE__,line)(length == len, "got %ld, expected %ld\n", length, len);
}
-#define EXPECT_HR(hr,hr_exp) \
- ok(hr == hr_exp, "got 0x%08x, expected 0x%08x\n", hr, hr_exp)
+#define EXPECT_PARSE_ERROR(doc, hr_exp, hr_todo) _expect_parse_error(doc, hr_exp, hr_todo, __LINE__)
+static void _expect_parse_error(IXMLDOMDocument *doc, HRESULT hr_exp, BOOL hr_todo, int line)
+{
+ IXMLDOMParseError *error;
+ HRESULT hr;
+ LONG code;
-#ifdef __REACTOS__
-#define EXPECT_NOT_HR(hr,hr_exp) \
- ok(hr != hr_exp, "got 0x%08x, expected not 0x%08x\n", hr, hr_exp)
-#endif
+ error = NULL;
+ hr = IXMLDOMDocument_get_parseError(doc, &error);
+ ok_(__FILE__,line)(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok_(__FILE__,line)(!!error, "got NULL parseError\n");
-static const WCHAR szEmpty[] = { 0 };
-static const WCHAR szIncomplete[] = {
- '<','?','x','m','l',' ',
- 'v','e','r','s','i','o','n','=','\'','1','.','0','\'','?','>','\n',0
-};
-static const WCHAR szComplete1[] = {
- '<','?','x','m','l',' ',
- 'v','e','r','s','i','o','n','=','\'','1','.','0','\'','?','>','\n',
- '<','o','p','e','n','>','<','/','o','p','e','n','>','\n',0
-};
-static const WCHAR szComplete2[] = {
- '<','?','x','m','l',' ',
- 'v','e','r','s','i','o','n','=','\'','1','.','0','\'','?','>','\n',
- '<','a','>','<','/','a','>','\n',0
-};
+ code = 0xdeadbeef;
+ hr = IXMLDOMParseError_get_errorCode(error, &code);
+ if (FAILED(hr_exp))
+ {
+ ok_(__FILE__,line)(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok_(__FILE__,line)(FAILED(code), "expected failure HRESULT\n");
+ todo_wine_if(hr_todo)
+ ok_(__FILE__,line)(hr_exp == code, "expected %#lx, unexpected hr %#lx.\n", hr_exp, code);
+ }
+ else
+ {
+ ok_(__FILE__,line)(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ ok_(__FILE__,line)(SUCCEEDED(code), "expected successful HRESULT\n");
+ }
+
+ IXMLDOMParseError_Release(error);
+}
+
+static const WCHAR szComplete1[] = L"\n\n";
static const char complete4A[] =
"\n"
"\n"
@@ -737,25 +764,9 @@ static const char complete4A[] =
"\n"
"\n";
-static const WCHAR szComplete5[] = {
- '<','S',':','s','e','a','r','c','h',' ','x','m','l','n','s',':','D','=','"','D','A','V',':','"',' ',
- 'x','m','l','n','s',':','C','=','"','u','r','n',':','s','c','h','e','m','a','s','-','m','i','c','r','o','s','o','f','t','-','c','o','m',':','o','f','f','i','c','e',':','c','l','i','p','g','a','l','l','e','r','y','"',
- ' ','x','m','l','n','s',':','S','=','"','u','r','n',':','s','c','h','e','m','a','s','-','m','i','c','r','o','s','o','f','t','-','c','o','m',':','o','f','f','i','c','e',':','c','l','i','p','g','a','l','l','e','r','y',':','s','e','a','r','c','h','"','>',
- '<','S',':','s','c','o','p','e','>',
- '<','S',':','d','e','e','p','>','/','<','/','S',':','d','e','e','p','>',
- '<','/','S',':','s','c','o','p','e','>',
- '<','S',':','c','o','n','t','e','n','t','f','r','e','e','t','e','x','t','>',
- '<','C',':','t','e','x','t','o','r','p','r','o','p','e','r','t','y','/','>',
- 'c','o','m','p','u','t','e','r',
- '<','/','S',':','c','o','n','t','e','n','t','f','r','e','e','t','e','x','t','>',
- '<','/','S',':','s','e','a','r','c','h','>',0
-};
-
-static const WCHAR szComplete6[] = {
- '<','?','x','m','l',' ','v','e','r','s','i','o','n','=','\'','1','.','0','\'',' ',
- 'e','n','c','o','d','i','n','g','=','\'','W','i','n','d','o','w','s','-','1','2','5','2','\'','?','>','\n',
- '<','o','p','e','n','>','<','/','o','p','e','n','>','\n',0
-};
+static const WCHAR szComplete5[] =
+ L""
+ "/computer";
static const char complete7[] = {
"\n\t"
@@ -766,6 +777,27 @@ static const char complete7[] = {
""
};
+#define DECL_GBK \
+""
+
+static const char gbkxml[] =
+DECL_GBK
+"";
+
+#define DECL_ISO8859_1 \
+""
+
+static const char iso8859_1_xml[] =
+DECL_ISO8859_1
+"";
+
+#define DECL_WIN_936 \
+""
+
+static const char win936xml[] =
+DECL_WIN_936
+"";
+
#define DECL_WIN_1252 \
""
@@ -881,7 +913,11 @@ static const CHAR szTypeValueXML[] =
"\n"
"\n"
" Wine\n"
-" String\n"
+" String \n"
+" Wine Wine \n"
+" \nWine Wine\t\n"
+" \n"
+" s1 \ns2 s2\t\n"
" 12.44\n"
" -3.71e3\n"
" -13\n"
@@ -1144,52 +1180,9 @@ static const char attributes_map[] = {
""
};
-static const WCHAR nonexistent_fileW[] = {
- 'c', ':', '\\', 'N', 'o', 'n', 'e', 'x', 'i', 's', 't', 'e', 'n', 't', '.', 'x', 'm', 'l', 0
-};
-static const WCHAR nonexistent_attrW[] = {
- 'n','o','n','E','x','i','s','i','t','i','n','g','A','t','t','r','i','b','u','t','e',0
-};
-static const WCHAR szDocument[] = {
- '#', 'd', 'o', 'c', 'u', 'm', 'e', 'n', 't', 0
-};
+static const WCHAR nonexistent_fileW[] = L"c:\\Nonexistent.xml";
-static const WCHAR szOpen[] = { 'o','p','e','n',0 };
-static const WCHAR szdl[] = { 'd','l',0 };
-static const WCHAR szvr[] = { 'v','r',0 };
-static const WCHAR szlc[] = { 'l','c',0 };
-static const WCHAR szbs[] = { 'b','s',0 };
-static const WCHAR szstr1[] = { 's','t','r','1',0 };
-static const WCHAR szstr2[] = { 's','t','r','2',0 };
-static const WCHAR szstar[] = { '*',0 };
-static const WCHAR szfn1_txt[] = {'f','n','1','.','t','x','t',0};
-
-static const WCHAR szComment[] = {'A',' ','C','o','m','m','e','n','t',0 };
-static const WCHAR szCommentXML[] = {'<','!','-','-','A',' ','C','o','m','m','e','n','t','-','-','>',0 };
-static const WCHAR szCommentNodeText[] = {'#','c','o','m','m','e','n','t',0 };
-
-static WCHAR szElement[] = {'E','l','e','T','e','s','t', 0 };
-static const WCHAR szElementXML[] = {'<','E','l','e','T','e','s','t','/','>',0 };
-static const WCHAR szElementXML2[] = {'<','E','l','e','T','e','s','t',' ','A','t','t','r','=','"','"','/','>',0 };
-static const WCHAR szElementXML3[] = {'<','E','l','e','T','e','s','t',' ','A','t','t','r','=','"','"','>',
- 'T','e','s','t','i','n','g','N','o','d','e','<','/','E','l','e','T','e','s','t','>',0 };
-static const WCHAR szElementXML4[] = {'<','E','l','e','T','e','s','t',' ','A','t','t','r','=','"','"','>',
- '&','a','m','p',';','x',' ',0x2103,'<','/','E','l','e','T','e','s','t','>',0 };
-
-static const WCHAR szAttribute[] = {'A','t','t','r',0 };
-static const WCHAR szAttributeXML[] = {'A','t','t','r','=','"','"',0 };
-
-static const WCHAR szCData[] = {'[','1',']','*','2','=','3',';',' ','&','g','e','e',' ','t','h','a','t','s',
- ' ','n','o','t',' ','r','i','g','h','t','!', 0};
-static const WCHAR szCDataXML[] = {'<','!','[','C','D','A','T','A','[','[','1',']','*','2','=','3',';',' ','&',
- 'g','e','e',' ','t','h','a','t','s',' ','n','o','t',' ','r','i','g','h','t',
- '!',']',']','>',0};
-static const WCHAR szCDataNodeText[] = {'#','c','d','a','t','a','-','s','e','c','t','i','o','n',0 };
-static const WCHAR szDocFragmentText[] = {'#','d','o','c','u','m','e','n','t','-','f','r','a','g','m','e','n','t',0 };
-
-static const WCHAR szEntityRef[] = {'e','n','t','i','t','y','r','e','f',0 };
-static const WCHAR szEntityRefXML[] = {'&','e','n','t','i','t','y','r','e','f',';',0 };
-static const WCHAR szStrangeChars[] = {'&','x',' ',0x2103, 0};
+static const WCHAR szStrangeChars[] = L"&x \x2103";
#define expect_bstr_eq_and_free(bstr, expect) { \
BSTR bstrExp = alloc_str_from_narrow(expect); \
@@ -1200,11 +1193,6 @@ static const WCHAR szStrangeChars[] = {'&','x',' ',0x2103, 0};
#define expect_eq(expr, value, type, format) { type ret = (expr); ok((value) == ret, #expr " expected " format " got " format "\n", value, ret); }
-#define ole_check(expr) { \
- HRESULT r = expr; \
- ok(r == S_OK, #expr " returned %x\n", r); \
-}
-
#define ole_expect(expr, expect) { \
HRESULT r = expr; \
ok(r == (expect), #expr " returned %x, expected %x\n", r, expect); \
@@ -1218,7 +1206,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);
- ok(hr == S_OK, "failed to create %s instance: 0x%08x\n", name, hr);
+ ok(hr == S_OK, "failed to create %s instance: hr %#lx.\n", name, hr);
return obj;
}
@@ -1325,7 +1313,7 @@ static int get_node_position(IXMLDOMNode *node)
static void node_to_string(IXMLDOMNode *node, char *buf)
{
- HRESULT r = S_OK;
+ HRESULT hr = S_OK;
DOMNodeType type;
if (node == NULL)
@@ -1335,37 +1323,39 @@ static void node_to_string(IXMLDOMNode *node, char *buf)
}
IXMLDOMNode_AddRef(node);
- while (r == S_OK)
+ while (hr == S_OK)
{
IXMLDOMNode *new_node;
- ole_check(IXMLDOMNode_get_nodeType(node, &type));
+ hr = IXMLDOMNode_get_nodeType(node, &type);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
get_str_for_type(type, buf);
buf+=strlen(buf);
if (type == NODE_ATTRIBUTE)
{
BSTR bstr;
- ole_check(IXMLDOMNode_get_nodeName(node, &bstr));
+ hr = IXMLDOMNode_get_nodeName(node, &bstr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
*(buf++) = '\'';
wsprintfA(buf, "%ws", bstr);
buf += strlen(buf);
*(buf++) = '\'';
SysFreeString(bstr);
- r = IXMLDOMNode_selectSingleNode(node, _bstr_(".."), &new_node);
+ hr = IXMLDOMNode_selectSingleNode(node, _bstr_(".."), &new_node);
}
else
{
- r = IXMLDOMNode_get_parentNode(node, &new_node);
+ hr = IXMLDOMNode_get_parentNode(node, &new_node);
sprintf(buf, "%d", get_node_position(node));
buf += strlen(buf);
}
- ok(SUCCEEDED(r), "get_parentNode failed (%08x)\n", r);
+ ok(SUCCEEDED(hr), "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
node = new_node;
- if (r == S_OK)
+ if (hr == S_OK)
*(buf++) = '.';
}
@@ -1386,13 +1376,14 @@ static char *list_to_string(IXMLDOMNodeList *list)
return buf;
}
hr = IXMLDOMNodeList_get_length(list, &len);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
for (i = 0; i < len; i++)
{
IXMLDOMNode *node;
if (i > 0)
*(pos++) = ' ';
- ole_check(IXMLDOMNodeList_nextNode(list, &node));
+ hr = IXMLDOMNodeList_nextNode(list, &node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
node_to_string(node, pos);
pos += strlen(pos);
IXMLDOMNode_Release(node);
@@ -1438,7 +1429,6 @@ static const char* leading_spaces_xmldata[] = {
static void test_domdoc( void )
{
- HRESULT r, hr;
IXMLDOMDocument *doc;
IXMLDOMParseError *error;
IXMLDOMElement *element = NULL;
@@ -1457,6 +1447,7 @@ static void test_domdoc( void )
LONG nLength = 0;
WCHAR buff[100];
char path[MAX_PATH];
+ HRESULT hr;
int index;
GetTempPathA(MAX_PATH, path);
@@ -1492,7 +1483,7 @@ static void test_domdoc( void )
HANDLE file;
file = CreateFileA(path, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );
- ok(file != INVALID_HANDLE_VALUE, "can't create file %s: %u\n", path, GetLastError());
+ ok(file != INVALID_HANDLE_VALUE, "can't create file %s: %lu\n", path, GetLastError());
WriteFile(file, data, lstrlenW(data)*sizeof(WCHAR), &written, NULL);
CloseHandle(file);
@@ -1501,14 +1492,14 @@ static void test_domdoc( void )
V_VT(&var) = VT_BSTR;
V_BSTR(&var) = _bstr_(path);
hr = IXMLDOMDocument_load(doc, var, &b);
- EXPECT_HR(hr, class_ptr->ret[0].hr);
+ ok(hr == class_ptr->ret[0].hr, "Unexpected hr %#lx.\n", hr);
ok(b == class_ptr->ret[0].b, "%d:%d, got %d, expected %d\n", index, i, b, class_ptr->ret[0].b);
DeleteFileA(path);
b = 0xc;
hr = IXMLDOMDocument_loadXML(doc, data, &b);
- EXPECT_HR(hr, class_ptr->ret[1].hr);
+ ok(hr == class_ptr->ret[1].hr, "Unexpected hr %#lx.\n", hr);
ok(b == class_ptr->ret[1].b, "%d:%d, got %d, expected %d\n", index, i, b, class_ptr->ret[1].b);
data_ptr++;
@@ -1523,6 +1514,14 @@ static void test_domdoc( void )
doc = create_document(&IID_IXMLDOMDocument);
if (!doc) return;
+ check_interface(doc, &IID_IXMLDOMDocument, TRUE);
+ check_interface(doc, &IID_IPersistStreamInit, TRUE);
+ check_interface(doc, &IID_IObjectWithSite, TRUE);
+ check_interface(doc, &IID_IObjectSafety, TRUE);
+ check_interface(doc, &IID_IConnectionPointContainer, TRUE);
+ check_interface(doc, &IID_IDispatch, TRUE);
+ check_interface(doc, &IID_IDispatchEx, TRUE);
+
if (0)
{
/* crashes on native */
@@ -1531,11 +1530,11 @@ if (0)
/* try some stupid things */
hr = IXMLDOMDocument_loadXML( doc, NULL, NULL );
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
b = VARIANT_TRUE;
hr = IXMLDOMDocument_loadXML( doc, NULL, &b );
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_FALSE, "failed to load XML string\n");
/* try to load a document from a nonexistent file */
@@ -1545,51 +1544,51 @@ if (0)
V_VT(&var) = VT_BSTR;
V_BSTR(&var) = str;
- r = IXMLDOMDocument_load( doc, var, &b);
- ok( r == S_FALSE, "loadXML succeeded\n");
+ hr = IXMLDOMDocument_load( doc, var, &b);
+ ok(hr == S_FALSE, "loadXML succeeded\n");
ok( b == VARIANT_FALSE, "succeeded in loading XML string\n");
SysFreeString( str );
str = (void *)0xdeadbeef;
hr = IXMLDOMDocument_get_url(doc, &str);
- ok(hr == S_FALSE, "got 0x%08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(str == NULL, "got %p\n", str);
/* try load an empty document */
b = VARIANT_TRUE;
- str = SysAllocString( szEmpty );
- r = IXMLDOMDocument_loadXML( doc, str, &b );
- ok( r == S_FALSE, "loadXML succeeded\n");
+ str = SysAllocString( L"" );
+ hr = IXMLDOMDocument_loadXML( doc, str, &b );
+ ok(hr == S_FALSE, "loadXML succeeded\n");
ok( b == VARIANT_FALSE, "succeeded in loading XML string\n");
SysFreeString( str );
- r = IXMLDOMDocument_get_async( doc, &b );
- ok( r == S_OK, "get_async failed (%08x)\n", r);
+ hr = IXMLDOMDocument_get_async( doc, &b );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_TRUE, "Wrong default value\n");
/* check that there's no document element */
element = NULL;
- r = IXMLDOMDocument_get_documentElement( doc, &element );
- ok( r == S_FALSE, "should be no document element\n");
+ hr = IXMLDOMDocument_get_documentElement( doc, &element );
+ ok(hr == S_FALSE, "should be no document element\n");
/* try finding a node */
node = NULL;
- str = SysAllocString( szstr1 );
- r = IXMLDOMDocument_selectSingleNode( doc, str, &node );
- ok( r == S_FALSE, "ret %08x\n", r );
+ str = SysAllocString( L"str1" );
+ hr = IXMLDOMDocument_selectSingleNode( doc, str, &node );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
SysFreeString( str );
b = VARIANT_TRUE;
- str = SysAllocString( szIncomplete );
- r = IXMLDOMDocument_loadXML( doc, str, &b );
- ok( r == S_FALSE, "loadXML succeeded\n");
+ str = SysAllocString( L"\n" );
+ hr = IXMLDOMDocument_loadXML( doc, str, &b );
+ ok(hr == S_FALSE, "loadXML succeeded\n");
ok( b == VARIANT_FALSE, "succeeded in loading XML string\n");
SysFreeString( str );
/* check that there's no document element */
element = (IXMLDOMElement*)1;
- r = IXMLDOMDocument_get_documentElement( doc, &element );
- ok( r == S_FALSE, "should be no document element\n");
+ hr = IXMLDOMDocument_get_documentElement( doc, &element );
+ ok(hr == S_FALSE, "should be no document element\n");
ok( element == NULL, "Element should be NULL\n");
/* test for BSTR handling, pass broken BSTR */
@@ -1597,65 +1596,73 @@ if (0)
/* just a big length */
*(DWORD*)buff = 0xf0f0;
b = VARIANT_FALSE;
- r = IXMLDOMDocument_loadXML( doc, &buff[2], &b );
- ok( r == S_OK, "loadXML failed\n");
+ hr = IXMLDOMDocument_loadXML( doc, &buff[2], &b );
+ ok(hr == S_OK, "loadXML failed\n");
ok( b == VARIANT_TRUE, "failed to load XML string\n");
/* loadXML ignores the encoding attribute and always expects Unicode */
b = VARIANT_FALSE;
- str = SysAllocString( szComplete6 );
- r = IXMLDOMDocument_loadXML( doc, str, &b );
- ok( r == S_OK, "loadXML failed\n");
+ str = SysAllocString( L"\n\n" );
+ hr = IXMLDOMDocument_loadXML( doc, str, &b );
+ ok(hr == S_OK, "loadXML failed\n");
ok( b == VARIANT_TRUE, "failed to load XML string\n");
SysFreeString( str );
/* try a BSTR containing a Windows-1252 document */
b = VARIANT_TRUE;
str = SysAllocStringByteLen( win1252xml, strlen(win1252xml) );
- r = IXMLDOMDocument_loadXML( doc, str, &b );
- ok( r == S_FALSE, "loadXML succeeded\n");
+ hr = IXMLDOMDocument_loadXML( doc, str, &b );
+ ok(hr == S_FALSE, "loadXML succeeded\n");
+ ok( b == VARIANT_FALSE, "succeeded in loading XML string\n");
+ SysFreeString( str );
+
+ /* try a BSTR containing a ISO8859-1 document */
+ b = VARIANT_TRUE;
+ str = SysAllocStringByteLen( iso8859_1_xml, strlen(iso8859_1_xml) );
+ hr = IXMLDOMDocument_loadXML( doc, str, &b );
+ ok(hr == S_FALSE, "loadXML succeeded\n");
ok( b == VARIANT_FALSE, "succeeded in loading XML string\n");
SysFreeString( str );
/* try to load something valid */
b = VARIANT_FALSE;
str = SysAllocString( szComplete1 );
- r = IXMLDOMDocument_loadXML( doc, str, &b );
- ok( r == S_OK, "loadXML failed\n");
+ hr = IXMLDOMDocument_loadXML( doc, str, &b );
+ ok(hr == S_OK, "loadXML failed\n");
ok( b == VARIANT_TRUE, "failed to load XML string\n");
SysFreeString( str );
/* check if nodename is correct */
- r = IXMLDOMDocument_get_nodeName( doc, NULL );
- ok ( r == E_INVALIDARG, "get_nodeName (NULL) wrong code\n");
+ hr = IXMLDOMDocument_get_nodeName( doc, NULL );
+ ok ( hr == E_INVALIDARG, "get_nodeName (NULL) wrong code\n");
str = (void *)0xdeadbeef;
- r = IXMLDOMDocument_get_baseName( doc, &str );
- ok ( r == S_FALSE, "got 0x%08x\n", r);
+ hr = IXMLDOMDocument_get_baseName( doc, &str );
+ ok ( hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok (str == NULL, "got %p\n", str);
/* content doesn't matter here */
str = NULL;
- r = IXMLDOMDocument_get_nodeName( doc, &str );
- ok ( r == S_OK, "get_nodeName wrong code\n");
+ hr = IXMLDOMDocument_get_nodeName( doc, &str );
+ ok ( hr == S_OK, "get_nodeName wrong code\n");
ok ( str != NULL, "str is null\n");
- ok( !lstrcmpW( str, szDocument ), "incorrect nodeName\n");
+ ok( !lstrcmpW( str, L"#document" ), "incorrect nodeName\n");
SysFreeString( str );
/* test put_text */
- r = IXMLDOMDocument_put_text( doc, _bstr_("Should fail") );
- ok( r == E_FAIL, "ret %08x\n", r );
+ hr = IXMLDOMDocument_put_text( doc, _bstr_("Should fail") );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
/* check that there's a document element */
element = NULL;
- r = IXMLDOMDocument_get_documentElement( doc, &element );
- ok( r == S_OK, "should be a document element\n");
+ hr = IXMLDOMDocument_get_documentElement( doc, &element );
+ ok(hr == S_OK, "should be a document element\n");
if( element )
{
IObjectIdentity *ident;
- r = IXMLDOMElement_QueryInterface( element, &IID_IObjectIdentity, (void**)&ident );
- ok( r == E_NOINTERFACE, "ret %08x\n", r);
+ hr = IXMLDOMElement_QueryInterface( element, &IID_IObjectIdentity, (void**)&ident );
+ ok(hr == E_NOINTERFACE, "Unexpected hr %#lx.\n", hr);
IXMLDOMElement_Release( element );
element = NULL;
@@ -1663,486 +1670,486 @@ if (0)
/* as soon as we call loadXML again, the document element will disappear */
b = 2;
- r = IXMLDOMDocument_loadXML( doc, NULL, NULL );
- ok( r == S_FALSE, "loadXML failed\n");
+ hr = IXMLDOMDocument_loadXML( doc, NULL, NULL );
+ ok(hr == S_FALSE, "loadXML failed\n");
ok( b == 2, "variant modified\n");
- r = IXMLDOMDocument_get_documentElement( doc, &element );
- ok( r == S_FALSE, "should be no document element\n");
+ hr = IXMLDOMDocument_get_documentElement( doc, &element );
+ ok(hr == S_FALSE, "should be no document element\n");
/* try to load something else simple and valid */
b = VARIANT_FALSE;
- str = SysAllocString( szComplete2 );
- r = IXMLDOMDocument_loadXML( doc, str, &b );
- ok( r == S_OK, "loadXML failed\n");
+ str = SysAllocString( L"\n\n" );
+ hr = IXMLDOMDocument_loadXML( doc, str, &b );
+ ok(hr == S_OK, "loadXML failed\n");
ok( b == VARIANT_TRUE, "failed to load XML string\n");
SysFreeString( str );
/* try something a little more complicated */
b = FALSE;
- r = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
- ok( r == S_OK, "loadXML failed\n");
+ hr = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
+ ok(hr == S_OK, "loadXML failed\n");
ok( b == VARIANT_TRUE, "failed to load XML string\n");
- r = IXMLDOMDocument_get_parseError( doc, &error );
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMDocument_get_parseError( doc, &error );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMParseError_get_errorCode( error, &code );
- ok( r == S_FALSE, "returns %08x\n", r );
- ok( code == 0, "code %d\n", code );
+ hr = IXMLDOMParseError_get_errorCode( error, &code );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ ok( code == 0, "code %ld\n", code );
IXMLDOMParseError_Release( error );
/* test createTextNode */
- r = IXMLDOMDocument_createTextNode(doc, _bstr_(""), &nodetext);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createTextNode(doc, _bstr_(""), &nodetext);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMText_Release(nodetext);
- str = SysAllocString( szOpen );
- r = IXMLDOMDocument_createTextNode(doc, str, NULL);
- ok( r == E_INVALIDARG, "returns %08x\n", r );
- r = IXMLDOMDocument_createTextNode(doc, str, &nodetext);
- ok( r == S_OK, "returns %08x\n", r );
+ str = SysAllocString( L"open" );
+ hr = IXMLDOMDocument_createTextNode(doc, str, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument_createTextNode(doc, str, &nodetext);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
SysFreeString( str );
if(nodetext)
{
- r = IXMLDOMText_QueryInterface(nodetext, &IID_IXMLDOMElement, (void**)&element);
- ok(r == E_NOINTERFACE, "ret %08x\n", r );
+ hr = IXMLDOMText_QueryInterface(nodetext, &IID_IXMLDOMElement, (void**)&element);
+ ok(hr == E_NOINTERFACE, "Unexpected hr %#lx.\n", hr);
/* Text Last Child Checks */
- r = IXMLDOMText_get_lastChild(nodetext, NULL);
- ok(r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMText_get_lastChild(nodetext, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
nodeChild = (IXMLDOMNode*)0x1;
- r = IXMLDOMText_get_lastChild(nodetext, &nodeChild);
- ok(r == S_FALSE, "ret %08x\n", r );
+ hr = IXMLDOMText_get_lastChild(nodetext, &nodeChild);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(nodeChild == NULL, "nodeChild not NULL\n");
/* test length property */
- r = IXMLDOMText_get_length(nodetext, NULL);
- ok(r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMText_get_length(nodetext, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_get_length(nodetext, &nLength);
- ok(r == S_OK, "ret %08x\n", r );
- ok(nLength == 4, "expected 4 got %d\n", nLength);
+ hr = IXMLDOMText_get_length(nodetext, &nLength);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(nLength == 4, "expected 4 got %ld\n", nLength);
/* put data Tests */
- r = IXMLDOMText_put_data(nodetext, _bstr_("This &is a ; test <>\\"));
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_put_data(nodetext, _bstr_("This &is a ; test <>\\"));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* get data Tests */
- r = IXMLDOMText_get_data(nodetext, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("This &is a ; test <>\\") ), "incorrect put_data string\n");
+ hr = IXMLDOMText_get_data(nodetext, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"This &is a ; test <>\\"), "incorrect put_data string\n");
SysFreeString(str);
/* Confirm XML text is good */
- r = IXMLDOMText_get_xml(nodetext, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("This &is a ; test <>\\") ), "incorrect xml string\n");
+ hr = IXMLDOMText_get_xml(nodetext, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"This &is a ; test <>\\"), "incorrect xml string\n");
SysFreeString(str);
/* Confirm we get the put_data Text back */
- r = IXMLDOMText_get_text(nodetext, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("This &is a ; test <>\\") ), "incorrect xml string\n");
+ hr = IXMLDOMText_get_text(nodetext, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"This &is a ; test <>\\"), "incorrect xml string\n");
SysFreeString(str);
/* test substringData */
- r = IXMLDOMText_substringData(nodetext, 0, 4, NULL);
- ok(r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMText_substringData(nodetext, 0, 4, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
/* test substringData - Invalid offset */
str = (void *)0xdeadbeef;
- r = IXMLDOMText_substringData(nodetext, -1, 4, &str);
- ok(r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMText_substringData(nodetext, -1, 4, &str);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok( str == NULL, "incorrect string\n");
/* test substringData - Invalid offset */
str = (void *)0xdeadbeef;
- r = IXMLDOMText_substringData(nodetext, 30, 0, &str);
- ok(r == S_FALSE, "ret %08x\n", r );
+ hr = IXMLDOMText_substringData(nodetext, 30, 0, &str);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok( str == NULL, "incorrect string\n");
/* test substringData - Invalid size */
str = (void *)0xdeadbeef;
- r = IXMLDOMText_substringData(nodetext, 0, -1, &str);
- ok(r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMText_substringData(nodetext, 0, -1, &str);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok( str == NULL, "incorrect string\n");
/* test substringData - Invalid size */
str = (void *)0xdeadbeef;
- r = IXMLDOMText_substringData(nodetext, 2, 0, &str);
- ok(r == S_FALSE, "ret %08x\n", r );
+ hr = IXMLDOMText_substringData(nodetext, 2, 0, &str);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok( str == NULL, "incorrect string\n");
/* test substringData - Start of string */
- r = IXMLDOMText_substringData(nodetext, 0, 4, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("This") ), "incorrect substringData string\n");
+ hr = IXMLDOMText_substringData(nodetext, 0, 4, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"This"), "incorrect substringData string\n");
SysFreeString(str);
/* test substringData - Middle of string */
- r = IXMLDOMText_substringData(nodetext, 13, 4, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("test") ), "incorrect substringData string\n");
+ hr = IXMLDOMText_substringData(nodetext, 13, 4, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"test"), "incorrect substringData string\n");
SysFreeString(str);
/* test substringData - End of string */
- r = IXMLDOMText_substringData(nodetext, 20, 4, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("\\") ), "incorrect substringData string\n");
+ hr = IXMLDOMText_substringData(nodetext, 20, 4, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"\\"), "incorrect substringData string\n");
SysFreeString(str);
/* test appendData */
- r = IXMLDOMText_appendData(nodetext, NULL);
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_appendData(nodetext, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_appendData(nodetext, _bstr_(""));
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_appendData(nodetext, _bstr_(""));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_appendData(nodetext, _bstr_("Append"));
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_appendData(nodetext, _bstr_("Append"));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_get_text(nodetext, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("This &is a ; test <>\\Append") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ hr = IXMLDOMText_get_text(nodetext, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"This &is a ; test <>\\Append"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* test insertData */
str = SysAllocStringLen(NULL, 0);
- r = IXMLDOMText_insertData(nodetext, -1, str);
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_insertData(nodetext, -1, str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_insertData(nodetext, -1, NULL);
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_insertData(nodetext, -1, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_insertData(nodetext, 1000, str);
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_insertData(nodetext, 1000, str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_insertData(nodetext, 1000, NULL);
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_insertData(nodetext, 1000, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_insertData(nodetext, 0, NULL);
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_insertData(nodetext, 0, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_insertData(nodetext, 0, str);
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_insertData(nodetext, 0, str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
SysFreeString(str);
- r = IXMLDOMText_insertData(nodetext, -1, _bstr_("Inserting"));
- ok(r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMText_insertData(nodetext, -1, _bstr_("Inserting"));
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_insertData(nodetext, 1000, _bstr_("Inserting"));
- ok(r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMText_insertData(nodetext, 1000, _bstr_("Inserting"));
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_insertData(nodetext, 0, _bstr_("Begin "));
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_insertData(nodetext, 0, _bstr_("Begin "));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_insertData(nodetext, 17, _bstr_("Middle"));
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_insertData(nodetext, 17, _bstr_("Middle"));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_insertData(nodetext, 39, _bstr_(" End"));
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_insertData(nodetext, 39, _bstr_(" End"));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_get_text(nodetext, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("Begin This &is a Middle; test <>\\Append End") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ hr = IXMLDOMText_get_text(nodetext, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"Begin This &is a Middle; test <>\\Append End"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* delete data */
/* invalid arguments */
- r = IXMLDOMText_deleteData(nodetext, -1, 1);
- ok(r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMText_deleteData(nodetext, -1, 1);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_deleteData(nodetext, 0, 0);
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_deleteData(nodetext, 0, 0);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_deleteData(nodetext, 0, -1);
- ok(r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMText_deleteData(nodetext, 0, -1);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_get_length(nodetext, &nLength);
- ok(r == S_OK, "ret %08x\n", r );
- ok(nLength == 43, "expected 43 got %d\n", nLength);
+ hr = IXMLDOMText_get_length(nodetext, &nLength);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(nLength == 43, "expected 43 got %ld\n", nLength);
- r = IXMLDOMText_deleteData(nodetext, nLength, 1);
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_deleteData(nodetext, nLength, 1);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_deleteData(nodetext, nLength+1, 1);
- ok(r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMText_deleteData(nodetext, nLength+1, 1);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
/* delete from start */
- r = IXMLDOMText_deleteData(nodetext, 0, 5);
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_deleteData(nodetext, 0, 5);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_get_length(nodetext, &nLength);
- ok(r == S_OK, "ret %08x\n", r );
- ok(nLength == 38, "expected 38 got %d\n", nLength);
+ hr = IXMLDOMText_get_length(nodetext, &nLength);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(nLength == 38, "expected 38 got %ld\n", nLength);
- r = IXMLDOMText_get_text(nodetext, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("This &is a Middle; test <>\\Append End") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ hr = IXMLDOMText_get_text(nodetext, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"This &is a Middle; test <>\\Append End"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* delete from end */
- r = IXMLDOMText_deleteData(nodetext, 35, 3);
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_deleteData(nodetext, 35, 3);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_get_length(nodetext, &nLength);
- ok(r == S_OK, "ret %08x\n", r );
- ok(nLength == 35, "expected 35 got %d\n", nLength);
+ hr = IXMLDOMText_get_length(nodetext, &nLength);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(nLength == 35, "expected 35 got %ld\n", nLength);
- r = IXMLDOMText_get_text(nodetext, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("This &is a Middle; test <>\\Append") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ hr = IXMLDOMText_get_text(nodetext, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"This &is a Middle; test <>\\Append"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* delete from inside */
- r = IXMLDOMText_deleteData(nodetext, 1, 33);
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_deleteData(nodetext, 1, 33);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_get_length(nodetext, &nLength);
- ok(r == S_OK, "ret %08x\n", r );
- ok(nLength == 2, "expected 2 got %d\n", nLength);
+ hr = IXMLDOMText_get_length(nodetext, &nLength);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(nLength == 2, "expected 2 got %ld\n", nLength);
- r = IXMLDOMText_get_text(nodetext, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ hr = IXMLDOMText_get_text(nodetext, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L""), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* delete whole data ... */
- r = IXMLDOMText_get_length(nodetext, &nLength);
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_get_length(nodetext, &nLength);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_deleteData(nodetext, 0, nLength);
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_deleteData(nodetext, 0, nLength);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* ... and try again with empty string */
- r = IXMLDOMText_deleteData(nodetext, 0, nLength);
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_deleteData(nodetext, 0, nLength);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* test put_data */
V_VT(&var) = VT_BSTR;
- V_BSTR(&var) = SysAllocString(szstr1);
- r = IXMLDOMText_put_nodeValue(nodetext, var);
- ok(r == S_OK, "ret %08x\n", r );
+ V_BSTR(&var) = SysAllocString(L"str1");
+ hr = IXMLDOMText_put_nodeValue(nodetext, var);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
VariantClear(&var);
- r = IXMLDOMText_get_text(nodetext, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, szstr1 ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ hr = IXMLDOMText_get_text(nodetext, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok( !lstrcmpW( str, L"str1" ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
SysFreeString(str);
/* test put_data */
V_VT(&var) = VT_I4;
V_I4(&var) = 99;
- r = IXMLDOMText_put_nodeValue(nodetext, var);
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_put_nodeValue(nodetext, var);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
VariantClear(&var);
- r = IXMLDOMText_get_text(nodetext, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("99") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ hr = IXMLDOMText_get_text(nodetext, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"99"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* ::replaceData() */
V_VT(&var) = VT_BSTR;
- V_BSTR(&var) = SysAllocString(szstr1);
- r = IXMLDOMText_put_nodeValue(nodetext, var);
- ok(r == S_OK, "ret %08x\n", r );
+ V_BSTR(&var) = SysAllocString(L"str1");
+ hr = IXMLDOMText_put_nodeValue(nodetext, var);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
VariantClear(&var);
- r = IXMLDOMText_replaceData(nodetext, 6, 0, NULL);
- ok(r == E_INVALIDARG, "ret %08x\n", r );
- r = IXMLDOMText_get_text(nodetext, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("str1") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ hr = IXMLDOMText_replaceData(nodetext, 6, 0, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMText_get_text(nodetext, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"str1"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
- r = IXMLDOMText_replaceData(nodetext, 0, 0, NULL);
- ok(r == S_OK, "ret %08x\n", r );
- r = IXMLDOMText_get_text(nodetext, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("str1") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ hr = IXMLDOMText_replaceData(nodetext, 0, 0, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMText_get_text(nodetext, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"str1"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* NULL pointer means delete */
- r = IXMLDOMText_replaceData(nodetext, 0, 1, NULL);
- ok(r == S_OK, "ret %08x\n", r );
- r = IXMLDOMText_get_text(nodetext, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("tr1") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ hr = IXMLDOMText_replaceData(nodetext, 0, 1, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMText_get_text(nodetext, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"tr1"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* empty string means delete */
- r = IXMLDOMText_replaceData(nodetext, 0, 1, _bstr_(""));
- ok(r == S_OK, "ret %08x\n", r );
- r = IXMLDOMText_get_text(nodetext, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("r1") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ hr = IXMLDOMText_replaceData(nodetext, 0, 1, _bstr_(""));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMText_get_text(nodetext, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"r1"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* zero count means insert */
- r = IXMLDOMText_replaceData(nodetext, 0, 0, _bstr_("a"));
- ok(r == S_OK, "ret %08x\n", r );
- r = IXMLDOMText_get_text(nodetext, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("ar1") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ hr = IXMLDOMText_replaceData(nodetext, 0, 0, _bstr_("a"));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMText_get_text(nodetext, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"ar1"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
- r = IXMLDOMText_replaceData(nodetext, 0, 2, NULL);
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMText_replaceData(nodetext, 0, 2, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMText_insertData(nodetext, 0, _bstr_("m"));
- ok(r == S_OK, "ret %08x\n", r );
- r = IXMLDOMText_get_text(nodetext, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("m1") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ hr = IXMLDOMText_insertData(nodetext, 0, _bstr_("m"));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMText_get_text(nodetext, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"m1"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* nonempty string, count greater than its length */
- r = IXMLDOMText_replaceData(nodetext, 0, 2, _bstr_("a1.2"));
- ok(r == S_OK, "ret %08x\n", r );
- r = IXMLDOMText_get_text(nodetext, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("a1.2") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ hr = IXMLDOMText_replaceData(nodetext, 0, 2, _bstr_("a1.2"));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMText_get_text(nodetext, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"a1.2"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* nonempty string, count less than its length */
- r = IXMLDOMText_replaceData(nodetext, 0, 1, _bstr_("wine"));
- ok(r == S_OK, "ret %08x\n", r );
- r = IXMLDOMText_get_text(nodetext, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("wine1.2") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ hr = IXMLDOMText_replaceData(nodetext, 0, 1, _bstr_("wine"));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMText_get_text(nodetext, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"wine1.2"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
IXMLDOMText_Release( nodetext );
}
/* test Create Comment */
- r = IXMLDOMDocument_createComment(doc, NULL, NULL);
- ok( r == E_INVALIDARG, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createComment(doc, NULL, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
node_comment = (IXMLDOMComment*)0x1;
/* empty comment */
- r = IXMLDOMDocument_createComment(doc, _bstr_(""), &node_comment);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createComment(doc, _bstr_(""), &node_comment);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
str = NULL;
- r = IXMLDOMComment_get_data(node_comment, &str);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMComment_get_data(node_comment, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( str && SysStringLen(str) == 0, "expected empty string data\n");
IXMLDOMComment_Release(node_comment);
SysFreeString(str);
- r = IXMLDOMDocument_createComment(doc, NULL, &node_comment);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createComment(doc, NULL, &node_comment);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
str = NULL;
- r = IXMLDOMComment_get_data(node_comment, &str);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMComment_get_data(node_comment, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( str && (SysStringLen(str) == 0), "expected empty string data\n");
IXMLDOMComment_Release(node_comment);
SysFreeString(str);
- str = SysAllocString(szComment);
- r = IXMLDOMDocument_createComment(doc, str, &node_comment);
+ str = SysAllocString(L"A Comment");
+ hr = IXMLDOMDocument_createComment(doc, str, &node_comment);
SysFreeString(str);
- ok( r == S_OK, "returns %08x\n", r );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if(node_comment)
{
/* Last Child Checks */
- r = IXMLDOMComment_get_lastChild(node_comment, NULL);
- ok(r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMComment_get_lastChild(node_comment, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
nodeChild = (IXMLDOMNode*)0x1;
- r = IXMLDOMComment_get_lastChild(node_comment, &nodeChild);
- ok(r == S_FALSE, "ret %08x\n", r );
+ hr = IXMLDOMComment_get_lastChild(node_comment, &nodeChild);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(nodeChild == NULL, "pLastChild not NULL\n");
/* baseName */
str = (void *)0xdeadbeef;
- r = IXMLDOMComment_get_baseName(node_comment, &str);
- ok(r == S_FALSE, "ret %08x\n", r );
+ hr = IXMLDOMComment_get_baseName(node_comment, &str);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(str == NULL, "Expected NULL\n");
IXMLDOMComment_Release( node_comment );
}
/* test Create Attribute */
- str = SysAllocString(szAttribute);
- r = IXMLDOMDocument_createAttribute(doc, NULL, NULL);
- ok( r == E_INVALIDARG, "returns %08x\n", r );
- r = IXMLDOMDocument_createAttribute(doc, str, &node_attr);
- ok( r == S_OK, "returns %08x\n", r );
+ str = SysAllocString(L"Attr");
+ hr = IXMLDOMDocument_createAttribute(doc, NULL, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument_createAttribute(doc, str, &node_attr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMAttribute_Release( node_attr);
SysFreeString(str);
/* test Processing Instruction */
str = SysAllocStringLen(NULL, 0);
- r = IXMLDOMDocument_createProcessingInstruction(doc, str, str, NULL);
- ok( r == E_INVALIDARG, "returns %08x\n", r );
- r = IXMLDOMDocument_createProcessingInstruction(doc, NULL, str, &nodePI);
- ok( r == E_FAIL, "returns %08x\n", r );
- r = IXMLDOMDocument_createProcessingInstruction(doc, str, str, &nodePI);
- ok( r == E_FAIL, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createProcessingInstruction(doc, str, str, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument_createProcessingInstruction(doc, NULL, str, &nodePI);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument_createProcessingInstruction(doc, str, str, &nodePI);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
SysFreeString(str);
- r = IXMLDOMDocument_createProcessingInstruction(doc, _bstr_("xml"), _bstr_("version=\"1.0\""), &nodePI);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createProcessingInstruction(doc, _bstr_("xml"), _bstr_("version=\"1.0\""), &nodePI);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if(nodePI)
{
/* Last Child Checks */
- r = IXMLDOMProcessingInstruction_get_lastChild(nodePI, NULL);
- ok(r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMProcessingInstruction_get_lastChild(nodePI, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
nodeChild = (IXMLDOMNode*)0x1;
- r = IXMLDOMProcessingInstruction_get_lastChild(nodePI, &nodeChild);
- ok(r == S_FALSE, "ret %08x\n", r );
+ hr = IXMLDOMProcessingInstruction_get_lastChild(nodePI, &nodeChild);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(nodeChild == NULL, "nodeChild not NULL\n");
/* test nodeName */
- r = IXMLDOMProcessingInstruction_get_nodeName(nodePI, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("xml") ), "incorrect nodeName string\n");
+ hr = IXMLDOMProcessingInstruction_get_nodeName(nodePI, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"xml"), "incorrect nodeName string\n");
SysFreeString(str);
/* test baseName */
str = NULL;
- r = IXMLDOMProcessingInstruction_get_baseName(nodePI, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("xml") ), "incorrect nodeName string\n");
+ hr = IXMLDOMProcessingInstruction_get_baseName(nodePI, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"xml"), "incorrect nodeName string\n");
SysFreeString(str);
/* test Target */
- r = IXMLDOMProcessingInstruction_get_target(nodePI, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("xml") ), "incorrect target string\n");
+ hr = IXMLDOMProcessingInstruction_get_target(nodePI, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"xml"), "incorrect target string\n");
SysFreeString(str);
/* test get_data */
- r = IXMLDOMProcessingInstruction_get_data(nodePI, &str);
- ok(r == S_OK, "ret %08x\n", r );
- ok( !lstrcmpW( str, _bstr_("version=\"1.0\"") ), "incorrect data string\n");
+ hr = IXMLDOMProcessingInstruction_get_data(nodePI, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"version=\"1.0\""), "incorrect data string\n");
SysFreeString(str);
/* test put_data */
- r = IXMLDOMProcessingInstruction_put_data(nodePI, _bstr_("version=\"1.0\" encoding=\"UTF-8\""));
- ok(r == E_FAIL, "ret %08x\n", r );
+ hr = IXMLDOMProcessingInstruction_put_data(nodePI, _bstr_("version=\"1.0\" encoding=\"UTF-8\""));
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
/* test put_data */
V_VT(&var) = VT_BSTR;
- V_BSTR(&var) = SysAllocString(szOpen); /* Doesn't matter what the string is, cannot set an xml node. */
- r = IXMLDOMProcessingInstruction_put_nodeValue(nodePI, var);
- ok(r == E_FAIL, "ret %08x\n", r );
+ V_BSTR(&var) = SysAllocString(L"open"); /* Doesn't matter what the string is, cannot set an xml node. */
+ hr = IXMLDOMProcessingInstruction_put_nodeValue(nodePI, var);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
VariantClear(&var);
/* test get nodeName */
- r = IXMLDOMProcessingInstruction_get_nodeName(nodePI, &str);
- ok( !lstrcmpW( str, _bstr_("xml") ), "incorrect nodeName string\n");
- ok(r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMProcessingInstruction_get_nodeName(nodePI, &str);
+ ok(!lstrcmpW(str, L"xml"), "incorrect nodeName string\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
SysFreeString(str);
IXMLDOMProcessingInstruction_Release(nodePI);
}
ref = IXMLDOMDocument_Release( doc );
- ok( ref == 0, "got %d\n", ref);
+ ok( ref == 0, "got %ld\n", ref);
free_bstrs();
}
@@ -2153,47 +2160,58 @@ static void test_persiststream(void)
IPersistStream *stream;
IXMLDOMDocument *doc;
ULARGE_INTEGER size;
- IPersist *persist;
+ IStream *istream;
HRESULT hr;
CLSID clsid;
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_QueryInterface(doc, &IID_IPersistStreamInit, (void**)&streaminit);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IPersistStreamInit_InitNew(streaminit);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IPersistStreamInit_GetSizeMax(streaminit, &size);
- ok(hr == E_NOTIMPL, "got 0x%08x\n", hr);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_QueryInterface(doc, &IID_IPersistStream, (void **)&stream);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok((IUnknown *)stream == (IUnknown *)streaminit, "got %p, %p\n", stream, streaminit);
- hr = IPersistStream_QueryInterface(stream, &IID_IPersist, (void **)&persist);
- ok(hr == E_NOINTERFACE, "got 0x%08x\n", hr);
-
- hr = IXMLDOMDocument_QueryInterface(doc, &IID_IPersist, (void **)&persist);
- ok(hr == E_NOINTERFACE, "got 0x%08x\n", hr);
+ check_interface(stream, &IID_IPersist, FALSE);
+ check_interface(doc, &IID_IPersist, FALSE);
hr = IPersistStreamInit_GetClassID(streaminit, NULL);
- ok(hr == E_POINTER, "got 0x%08x\n", hr);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
memset(&clsid, 0, sizeof(clsid));
hr = IPersistStreamInit_GetClassID(streaminit, &clsid);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(IsEqualGUID(&clsid, &CLSID_DOMDocument2), "wrong clsid %s\n", wine_dbgstr_guid(&clsid));
IPersistStream_Release(stream);
+
+ /* test Load */
+ istream = SHCreateMemStream((const BYTE*)complete4A, strlen(complete4A));
+ hr = IPersistStreamInit_Load(streaminit, istream);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ IStream_Release(istream);
+ EXPECT_PARSE_ERROR(doc, S_OK, FALSE);
+
+ istream = SHCreateMemStream((const BYTE*)"", 0);
+ hr = IPersistStreamInit_Load(streaminit, istream);
+ todo_wine ok(hr == XML_E_MISSINGROOT, "Unexpected hr %#lx.\n", hr);
+ ok(FAILED(hr), "got success\n");
+ IStream_Release(istream);
+ EXPECT_PARSE_ERROR(doc, XML_E_MISSINGROOT, TRUE);
+
IPersistStreamInit_Release(streaminit);
IXMLDOMDocument_Release(doc);
}
static void test_domnode( void )
{
- HRESULT r;
IXMLDOMDocument *doc, *owner = NULL;
IXMLDOMElement *element = NULL;
IXMLDOMNamedNodeMap *map = NULL;
@@ -2202,6 +2220,7 @@ static void test_domnode( void )
IXMLDOMAttribute *attr = NULL;
DOMNodeType type = NODE_INVALID;
VARIANT_BOOL b;
+ HRESULT hr;
BSTR str;
VARIANT var;
LONG count;
@@ -2209,95 +2228,97 @@ static void test_domnode( void )
doc = create_document(&IID_IXMLDOMDocument);
b = FALSE;
- r = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
- ok( r == S_OK, "loadXML failed\n");
+ hr = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
+ ok(hr == S_OK, "loadXML failed\n");
ok( b == VARIANT_TRUE, "failed to load XML string\n");
EXPECT_CHILDREN(doc);
- r = IXMLDOMDocument_get_documentElement( doc, &element );
- ok( r == S_OK, "should be a document element\n");
+ hr = IXMLDOMDocument_get_documentElement( doc, &element );
+ ok(hr == S_OK, "should be a document element\n");
ok( element != NULL, "should be an element\n");
VariantInit(&var);
ok( V_VT(&var) == VT_EMPTY, "variant init failed\n");
- r = IXMLDOMDocument_get_nodeValue( doc, NULL );
- ok(r == E_INVALIDARG, "get_nodeValue ret %08x\n", r );
+ hr = IXMLDOMDocument_get_nodeValue( doc, NULL );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMDocument_get_nodeValue( doc, &var );
- ok( r == S_FALSE, "nextNode returned wrong code\n");
+ hr = IXMLDOMDocument_get_nodeValue( doc, &var );
+ ok(hr == S_FALSE, "get_nodeValue returned wrong code\n");
ok( V_VT(&var) == VT_NULL, "variant wasn't empty\n");
ok( V_BSTR(&var) == NULL, "variant value wasn't null\n");
if (element)
{
+ IXMLDOMNamedNodeMap *attributes;
+
owner = NULL;
- r = IXMLDOMElement_get_ownerDocument( element, &owner );
- ok( r == S_OK, "get_ownerDocument return code\n");
+ hr = IXMLDOMElement_get_ownerDocument( element, &owner );
+ ok(hr == S_OK, "get_ownerDocument return code\n");
ok( owner != doc, "get_ownerDocument return\n");
IXMLDOMDocument_Release(owner);
type = NODE_INVALID;
- r = IXMLDOMElement_get_nodeType( element, &type);
- ok( r == S_OK, "got %08x\n", r);
+ hr = IXMLDOMElement_get_nodeType( element, &type);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( type == NODE_ELEMENT, "node not an element\n");
str = NULL;
- r = IXMLDOMElement_get_baseName( element, &str );
- ok( r == S_OK, "get_baseName returned wrong code\n");
- ok( lstrcmpW(str,szlc) == 0, "basename was wrong\n");
+ hr = IXMLDOMElement_get_baseName( element, &str );
+ ok(hr == S_OK, "get_baseName returned wrong code\n");
+ ok( !lstrcmpW(str, L"lc"), "Unexpected basename.\n");
SysFreeString(str);
/* check if nodename is correct */
- r = IXMLDOMElement_get_nodeName( element, NULL );
- ok ( r == E_INVALIDARG, "get_nodeName (NULL) wrong code\n");
+ hr = IXMLDOMElement_get_nodeName( element, NULL );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
/* content doesn't matter here */
str = NULL;
- r = IXMLDOMElement_get_nodeName( element, &str );
- ok ( r == S_OK, "get_nodeName wrong code\n");
+ hr = IXMLDOMElement_get_nodeName( element, &str );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok ( str != NULL, "str is null\n");
- ok( !lstrcmpW( str, szlc ), "incorrect nodeName\n");
+ ok( !lstrcmpW( str, L"lc" ), "Unexpected nodeName\n");
SysFreeString( str );
str = SysAllocString( nonexistent_fileW );
V_VT(&var) = VT_I4;
V_I4(&var) = 0x1234;
- r = IXMLDOMElement_getAttribute( element, str, &var );
- ok( r == E_FAIL, "getAttribute ret %08x\n", r );
+ hr = IXMLDOMElement_getAttribute( element, str, &var );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok( V_VT(&var) == VT_NULL || V_VT(&var) == VT_EMPTY, "vt = %x\n", V_VT(&var));
VariantClear(&var);
SysFreeString(str);
- str = SysAllocString( szdl );
+ str = SysAllocString( L"dl" );
V_VT(&var) = VT_I4;
V_I4(&var) = 0x1234;
- r = IXMLDOMElement_getAttribute( element, str, &var );
- ok( r == S_OK, "getAttribute ret %08x\n", r );
+ hr = IXMLDOMElement_getAttribute( element, str, &var );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( V_VT(&var) == VT_BSTR, "vt = %x\n", V_VT(&var));
- ok( !lstrcmpW(V_BSTR(&var), szstr1), "wrong attr value\n");
+ ok( !lstrcmpW(V_BSTR(&var), L"str1"), "wrong attr value\n");
VariantClear( &var );
- r = IXMLDOMElement_getAttribute( element, NULL, &var );
- ok( r == E_INVALIDARG, "getAttribute ret %08x\n", r );
+ hr = IXMLDOMElement_getAttribute( element, NULL, &var );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMElement_getAttribute( element, str, NULL );
- ok( r == E_INVALIDARG, "getAttribute ret %08x\n", r );
+ hr = IXMLDOMElement_getAttribute( element, str, NULL );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
attr = NULL;
- r = IXMLDOMElement_getAttributeNode( element, str, &attr);
- ok( r == S_OK, "GetAttributeNode ret %08x\n", r );
+ hr = IXMLDOMElement_getAttributeNode( element, str, &attr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( attr != NULL, "getAttributeNode returned NULL\n" );
if (attr)
{
- r = IXMLDOMAttribute_get_parentNode( attr, NULL );
- ok( r == E_INVALIDARG, "Expected E_INVALIDARG, ret %08x\n", r );
+ hr = IXMLDOMAttribute_get_parentNode( attr, NULL );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
/* attribute doesn't have a parent in msxml interpretation */
node = (IXMLDOMNode*)0xdeadbeef;
- r = IXMLDOMAttribute_get_parentNode( attr, &node );
- ok( r == S_FALSE, "Expected S_FALSE, ret %08x\n", r );
+ hr = IXMLDOMAttribute_get_parentNode( attr, &node );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok( node == NULL, "Expected NULL, got %p\n", node );
IXMLDOMAttribute_Release(attr);
@@ -2305,88 +2326,111 @@ static void test_domnode( void )
SysFreeString( str );
- r = IXMLDOMElement_get_attributes( element, &map );
- ok( r == S_OK, "get_attributes returned wrong code\n");
+ hr = IXMLDOMElement_get_attributes( element, &map );
+ ok(hr == S_OK, "get_attributes returned wrong code\n");
ok( map != NULL, "should be attributes\n");
EXPECT_CHILDREN(element);
+
+ hr = IXMLDOMElement_get_childNodes( element, &list );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNodeList_nextNode( list, &node ); /* */
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ IXMLDOMNode_Release( node );
+ hr = IXMLDOMNodeList_nextNode( list, &node ); /* */
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ IXMLDOMNode_Release( node );
+ hr = IXMLDOMNodeList_nextNode( list, &node ); /* */
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNode_get_attributes( node, &attributes );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ next = (IXMLDOMNode*)0xdeadbeef;
+ hr = IXMLDOMNamedNodeMap_nextNode( attributes, &next );
+ ok(hr == S_FALSE, "Unexpected %#lx.\n", hr);
+ ok( next == NULL, "Expected NULL, ret %p\n", next );
+ IXMLDOMNamedNodeMap_Release( attributes );
+ IXMLDOMNode_Release( node );
+ node = NULL;
+ next = NULL;
+ IXMLDOMNodeList_Release( list );
+ list = NULL;
}
else
ok( FALSE, "no element\n");
if (map)
{
- str = SysAllocString( szdl );
- r = IXMLDOMNamedNodeMap_getNamedItem( map, str, &node );
- ok( r == S_OK, "getNamedItem returned wrong code\n");
+ str = SysAllocString( L"dl" );
+ hr = IXMLDOMNamedNodeMap_getNamedItem( map, str, &node );
+ ok(hr == S_OK, "getNamedItem returned wrong code\n");
ok( node != NULL, "should be attributes\n");
IXMLDOMNode_Release(node);
SysFreeString( str );
- str = SysAllocString( szdl );
- r = IXMLDOMNamedNodeMap_getNamedItem( map, str, NULL );
- ok( r == E_INVALIDARG, "getNamedItem should return E_INVALIDARG\n");
+ str = SysAllocString( L"dl" );
+ hr = IXMLDOMNamedNodeMap_getNamedItem( map, str, NULL );
+ ok(hr == E_INVALIDARG, "getNamedItem should return E_INVALIDARG\n");
SysFreeString( str );
/* something that isn't in complete4A */
- str = SysAllocString( szOpen );
+ str = SysAllocString( L"open" );
node = (IXMLDOMNode *) 1;
- r = IXMLDOMNamedNodeMap_getNamedItem( map, str, &node );
- ok( r == S_FALSE, "getNamedItem found a node that wasn't there\n");
+ hr = IXMLDOMNamedNodeMap_getNamedItem( map, str, &node );
+ ok(hr == S_FALSE, "getNamedItem found a node that wasn't there\n");
ok( node == NULL, "getNamedItem should have returned NULL\n");
SysFreeString( str );
/* test indexed access of attributes */
- r = IXMLDOMNamedNodeMap_get_length( map, NULL );
- ok ( r == E_INVALIDARG, "get_length should return E_INVALIDARG\n");
+ hr = IXMLDOMNamedNodeMap_get_length( map, NULL );
+ ok ( hr == E_INVALIDARG, "get_length should return E_INVALIDARG\n");
- r = IXMLDOMNamedNodeMap_get_length( map, &count );
- ok ( r == S_OK, "get_length wrong code\n");
+ hr = IXMLDOMNamedNodeMap_get_length( map, &count );
+ ok ( hr == S_OK, "get_length wrong code\n");
ok ( count == 1, "get_length != 1\n");
node = NULL;
- r = IXMLDOMNamedNodeMap_get_item( map, -1, &node);
- ok ( r == S_FALSE, "get_item (-1) wrong code\n");
+ hr = IXMLDOMNamedNodeMap_get_item( map, -1, &node);
+ ok ( hr == S_FALSE, "get_item (-1) wrong code\n");
ok ( node == NULL, "there is no node\n");
node = NULL;
- r = IXMLDOMNamedNodeMap_get_item( map, 1, &node);
- ok ( r == S_FALSE, "get_item (1) wrong code\n");
+ hr = IXMLDOMNamedNodeMap_get_item( map, 1, &node);
+ ok ( hr == S_FALSE, "get_item (1) wrong code\n");
ok ( node == NULL, "there is no attribute\n");
node = NULL;
- r = IXMLDOMNamedNodeMap_get_item( map, 0, &node);
- ok ( r == S_OK, "get_item (0) wrong code\n");
+ hr = IXMLDOMNamedNodeMap_get_item( map, 0, &node);
+ ok ( hr == S_OK, "get_item (0) wrong code\n");
ok ( node != NULL, "should be attribute\n");
- r = IXMLDOMNode_get_nodeName( node, NULL );
- ok ( r == E_INVALIDARG, "get_nodeName (NULL) wrong code\n");
+ hr = IXMLDOMNode_get_nodeName( node, NULL );
+ ok ( hr == E_INVALIDARG, "get_nodeName (NULL) wrong code\n");
/* content doesn't matter here */
str = NULL;
- r = IXMLDOMNode_get_nodeName( node, &str );
- ok ( r == S_OK, "get_nodeName wrong code\n");
+ hr = IXMLDOMNode_get_nodeName( node, &str );
+ ok ( hr == S_OK, "get_nodeName wrong code\n");
ok ( str != NULL, "str is null\n");
- ok( !lstrcmpW( str, szdl ), "incorrect node name\n");
+ ok( !lstrcmpW( str, L"dl" ), "incorrect node name\n");
SysFreeString( str );
IXMLDOMNode_Release( node );
/* test sequential access of attributes */
node = NULL;
- r = IXMLDOMNamedNodeMap_nextNode( map, &node );
- ok ( r == S_OK, "nextNode (first time) wrong code\n");
+ hr = IXMLDOMNamedNodeMap_nextNode( map, &node );
+ ok ( hr == S_OK, "nextNode (first time) wrong code\n");
ok ( node != NULL, "nextNode, should be attribute\n");
IXMLDOMNode_Release( node );
- r = IXMLDOMNamedNodeMap_nextNode( map, &node );
- ok ( r != S_OK, "nextNode (second time) wrong code\n");
+ hr = IXMLDOMNamedNodeMap_nextNode( map, &node );
+ ok ( hr != S_OK, "nextNode (second time) wrong code\n");
ok ( node == NULL, "nextNode, there is no attribute\n");
- r = IXMLDOMNamedNodeMap_reset( map );
- ok ( r == S_OK, "reset should return S_OK\n");
+ hr = IXMLDOMNamedNodeMap_reset( map );
+ ok ( hr == S_OK, "reset should return S_OK\n");
- r = IXMLDOMNamedNodeMap_nextNode( map, &node );
- ok ( r == S_OK, "nextNode (third time) wrong code\n");
+ hr = IXMLDOMNamedNodeMap_nextNode( map, &node );
+ ok ( hr == S_OK, "nextNode (third time) wrong code\n");
ok ( node != NULL, "nextNode, should be attribute\n");
}
else
@@ -2395,30 +2439,30 @@ static void test_domnode( void )
if (node)
{
type = NODE_INVALID;
- r = IXMLDOMNode_get_nodeType( node, &type);
- ok( r == S_OK, "getNamedItem returned wrong code\n");
+ hr = IXMLDOMNode_get_nodeType( node, &type);
+ ok(hr == S_OK, "get_nodeType returned wrong code\n");
ok( type == NODE_ATTRIBUTE, "node not an attribute\n");
str = NULL;
- r = IXMLDOMNode_get_baseName( node, NULL );
- ok( r == E_INVALIDARG, "get_baseName returned wrong code\n");
+ hr = IXMLDOMNode_get_baseName( node, NULL );
+ ok(hr == E_INVALIDARG, "get_baseName returned wrong code\n");
str = NULL;
- r = IXMLDOMNode_get_baseName( node, &str );
- ok( r == S_OK, "get_baseName returned wrong code\n");
- ok( lstrcmpW(str,szdl) == 0, "basename was wrong\n");
+ hr = IXMLDOMNode_get_baseName( node, &str );
+ ok(hr == S_OK, "get_baseName returned wrong code\n");
+ ok( !lstrcmpW(str, L"dl"), "Unexpected basename.\n");
SysFreeString( str );
- r = IXMLDOMNode_get_childNodes( node, NULL );
- ok( r == E_INVALIDARG, "get_childNodes returned wrong code\n");
+ hr = IXMLDOMNode_get_childNodes( node, NULL );
+ ok(hr == E_INVALIDARG, "get_childNodes returned wrong code\n");
- r = IXMLDOMNode_get_childNodes( node, &list );
- ok( r == S_OK, "get_childNodes returned wrong code\n");
+ hr = IXMLDOMNode_get_childNodes( node, &list );
+ ok(hr == S_OK, "get_childNodes returned wrong code\n");
if (list)
{
- r = IXMLDOMNodeList_nextNode( list, &next );
- ok( r == S_OK, "nextNode returned wrong code\n");
+ hr = IXMLDOMNodeList_nextNode( list, &next );
+ ok(hr == S_OK, "nextNode returned wrong code\n");
}
else
ok( FALSE, "no childlist\n");
@@ -2428,13 +2472,13 @@ static void test_domnode( void )
EXPECT_NO_CHILDREN(next);
type = NODE_INVALID;
- r = IXMLDOMNode_get_nodeType( next, &type);
- ok( r == S_OK, "getNamedItem returned wrong code\n");
+ hr = IXMLDOMNode_get_nodeType( next, &type);
+ ok(hr == S_OK, "get_nodeType returned wrong code\n");
ok( type == NODE_TEXT, "node not text\n");
str = (void *)0xdeadbeef;
- r = IXMLDOMNode_get_baseName( next, &str );
- ok( r == S_FALSE, "get_baseName returned wrong code\n");
+ hr = IXMLDOMNode_get_baseName( next, &str );
+ ok(hr == S_FALSE, "get_baseName returned wrong code\n");
ok( str == NULL, "basename was wrong\n");
SysFreeString(str);
}
@@ -2460,56 +2504,64 @@ static void test_domnode( void )
/* now traverse the tree from the root element */
if (element)
{
- r = IXMLDOMElement_get_childNodes( element, &list );
- ok( r == S_OK, "get_childNodes returned wrong code\n");
+ hr = IXMLDOMElement_get_childNodes( element, &list );
+ ok(hr == S_OK, "get_childNodes returned wrong code\n");
/* using get_item for child list doesn't advance the position */
- ole_check(IXMLDOMNodeList_get_item(list, 1, &node));
+ hr = IXMLDOMNodeList_get_item(list, 1, &node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_node(node, "E2.E2.D1");
IXMLDOMNode_Release(node);
- ole_check(IXMLDOMNodeList_nextNode(list, &node));
+ hr = IXMLDOMNodeList_nextNode(list, &node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_node(node, "E1.E2.D1");
IXMLDOMNode_Release(node);
- ole_check(IXMLDOMNodeList_reset(list));
+ hr = IXMLDOMNodeList_reset(list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNodeList_AddRef(list);
expect_list_and_release(list, "E1.E2.D1 E2.E2.D1 E3.E2.D1 E4.E2.D1");
- ole_check(IXMLDOMNodeList_reset(list));
+ hr = IXMLDOMNodeList_reset(list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
node = (void*)0xdeadbeef;
- str = SysAllocString(szdl);
- r = IXMLDOMElement_selectSingleNode( element, str, &node );
+ str = SysAllocString(L"dl");
+ hr = IXMLDOMElement_selectSingleNode( element, str, &node );
SysFreeString(str);
- ok( r == S_FALSE, "ret %08x\n", r );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok( node == NULL, "node %p\n", node );
- str = SysAllocString(szbs);
- r = IXMLDOMElement_selectSingleNode( element, str, &node );
+ node = (void*)0xdeadbeef;
+ hr = IXMLDOMElement_selectSingleNode( element, _bstr_("In Valid"), &node );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
+ ok( node == NULL, "node %p\n", node );
+
+ str = SysAllocString(L"bs");
+ hr = IXMLDOMElement_selectSingleNode( element, str, &node );
SysFreeString(str);
- ok( r == S_OK, "ret %08x\n", r );
- r = IXMLDOMNode_Release( node );
- ok( r == 0, "ret %08x\n", r );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ IXMLDOMNode_Release( node );
}
else
ok( FALSE, "no element\n");
if (list)
{
- r = IXMLDOMNodeList_get_item(list, 0, NULL);
- ok(r == E_INVALIDARG, "Expected E_INVALIDARG got %08x\n", r);
+ hr = IXMLDOMNodeList_get_item(list, 0, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNodeList_get_length(list, NULL);
- ok(r == E_INVALIDARG, "Expected E_INVALIDARG got %08x\n", r);
+ hr = IXMLDOMNodeList_get_length(list, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNodeList_get_length( list, &count );
- ok( r == S_OK, "get_length returns %08x\n", r );
- ok( count == 4, "get_length got %d\n", count );
+ hr = IXMLDOMNodeList_get_length( list, &count );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok( count == 4, "get_length got %ld\n", count );
- r = IXMLDOMNodeList_nextNode(list, NULL);
- ok(r == E_INVALIDARG, "Expected E_INVALIDARG got %08x\n", r);
+ hr = IXMLDOMNodeList_nextNode(list, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNodeList_nextNode( list, &node );
- ok( r == S_OK, "nextNode returned wrong code\n");
+ hr = IXMLDOMNodeList_nextNode( list, &node );
+ ok(hr == S_OK, "nextNode returned wrong code\n");
}
else
ok( FALSE, "no list\n");
@@ -2517,19 +2569,19 @@ static void test_domnode( void )
if (node)
{
type = NODE_INVALID;
- r = IXMLDOMNode_get_nodeType( node, &type);
- ok( r == S_OK, "getNamedItem returned wrong code\n");
+ hr = IXMLDOMNode_get_nodeType( node, &type);
+ ok(hr == S_OK, "get_nodeType returned wrong code\n");
ok( type == NODE_ELEMENT, "node not text\n");
- r = IXMLDOMNode_hasChildNodes( node, NULL );
- ok( r == E_INVALIDARG, "hasChildNodes bad return\n");
+ hr = IXMLDOMNode_hasChildNodes( node, NULL );
+ ok(hr == E_INVALIDARG, "hasChildNodes bad return\n");
EXPECT_CHILDREN(node);
str = NULL;
- r = IXMLDOMNode_get_baseName( node, &str );
- ok( r == S_OK, "get_baseName returned wrong code\n");
- ok( lstrcmpW(str,szbs) == 0, "basename was wrong\n");
+ hr = IXMLDOMNode_get_baseName( node, &str );
+ ok(hr == S_OK, "get_baseName returned wrong code\n");
+ ok( !lstrcmpW(str, L"bs"), "Unexpected basename.\n");
SysFreeString(str);
}
else
@@ -2544,27 +2596,26 @@ static void test_domnode( void )
b = FALSE;
str = SysAllocString( szComplete5 );
- r = IXMLDOMDocument_loadXML( doc, str, &b );
- ok( r == S_OK, "loadXML failed\n");
+ hr = IXMLDOMDocument_loadXML( doc, str, &b );
+ ok(hr == S_OK, "loadXML failed\n");
ok( b == VARIANT_TRUE, "failed to load XML string\n");
SysFreeString( str );
EXPECT_CHILDREN(doc);
- r = IXMLDOMDocument_get_documentElement( doc, &element );
- ok( r == S_OK, "should be a document element\n");
+ hr = IXMLDOMDocument_get_documentElement( doc, &element );
+ ok(hr == S_OK, "should be a document element\n");
ok( element != NULL, "should be an element\n");
if (element)
{
- static const WCHAR szSSearch[] = {'S',':','s','e','a','r','c','h',0};
BSTR tag = NULL;
/* check if the tag is correct */
- r = IXMLDOMElement_get_tagName( element, &tag );
- ok( r == S_OK, "couldn't get tag name\n");
+ hr = IXMLDOMElement_get_tagName( element, &tag );
+ ok(hr == S_OK, "couldn't get tag name\n");
ok( tag != NULL, "tag was null\n");
- ok( !lstrcmpW( tag, szSSearch ), "incorrect tag name\n");
+ ok( !lstrcmpW( tag, L"S:search" ), "incorrect tag name\n");
SysFreeString( tag );
IXMLDOMElement_Release( element );
@@ -2619,13 +2670,13 @@ static void test_refs(void)
EXPECT_REF(doc, 1);
hr = IXMLDOMDocument_createNode(doc, type, _bstr_("name"), NULL, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(doc, 1);
EXPECT_REF(node, 1);
/* try IDispatch and IUnknown from IXMLDOMNode */
hr = IXMLDOMNode_QueryInterface(node, &IID_IUnknown, (void**)&unk);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(unk, 2);
todo_wine {
EXPECT_REF(node, 1);
@@ -2633,14 +2684,14 @@ todo_wine {
}
EXPECT_REF(unk, 2);
hr = IUnknown_QueryInterface(unk, &IID_IDispatch, (void**)&disp);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine ok(unk != (IUnknown*)disp, "%d: got %p and %p\n", ptr->type, unk, disp);
EXPECT_REF(unk, 3);
todo_wine EXPECT_REF(disp, 1);
EXPECT_REF(unk, 3);
hr = IUnknown_QueryInterface(unk, &IID_IDispatch, (void**)&disp2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine ok(disp != disp2, "%d: got %p and %p\n", ptr->type, disp, disp2);
EXPECT_REF(unk, 4);
todo_wine EXPECT_REF(disp2, 1);
@@ -2651,14 +2702,14 @@ todo_wine {
/* get IXMLDOMNode from this IUnknown */
EXPECT_REF(unk, 2);
hr = IUnknown_QueryInterface(unk, &IID_IXMLDOMNode, (void**)&node2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine ok(unk != (IUnknown*)node2, "%d: got %p and %p\n", ptr->type, unk, node2);
EXPECT_REF(unk, 3);
todo_wine EXPECT_REF(node2, 1);
EXPECT_REF(unk, 3);
hr = IUnknown_QueryInterface(unk, &IID_IXMLDOMNode, (void**)&node3);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine ok(node2 != node3, "%d: got %p and %p\n", ptr->type, node2, node3);
EXPECT_REF(unk, 4);
todo_wine EXPECT_REF(node3, 1);
@@ -2669,14 +2720,14 @@ todo_wine {
/* try IDispatchEx from IUnknown */
EXPECT_REF(unk, 2);
hr = IUnknown_QueryInterface(unk, &IID_IDispatchEx, (void**)&dispex);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(unk != (IUnknown*)dispex, "%d: got %p and %p\n", ptr->type, unk, dispex);
EXPECT_REF(unk, 3);
todo_wine EXPECT_REF(dispex, 1);
EXPECT_REF(unk, 3);
hr = IUnknown_QueryInterface(unk, &IID_IDispatchEx, (void**)&dispex2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine ok(dispex != dispex2, "%d: got %p and %p\n", ptr->type, dispex, dispex2);
EXPECT_REF(unk, 4);
todo_wine EXPECT_REF(dispex2, 1);
@@ -2687,10 +2738,10 @@ todo_wine {
/* try corresponding IXMLDOM* */
EXPECT_REF(unk, 2);
hr = IUnknown_QueryInterface(unk, ptr->iid, (void**)&node_typed);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(unk, 3);
hr = IUnknown_QueryInterface(unk, ptr->iid, (void**)&node_typed2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(unk, 4);
todo_wine ok(node_typed != node_typed2, "%d: got %p and %p\n", ptr->type, node_typed, node_typed2);
IUnknown_Release(node_typed);
@@ -2698,19 +2749,19 @@ todo_wine {
/* try invalid IXMLDOM* */
hr = IUnknown_QueryInterface(unk, (ptr+1)->iid, (void**)&node_typed);
- EXPECT_HR(hr, E_NOINTERFACE);
+ ok(hr == E_NOINTERFACE, "Unexpected hr %#lx.\n", hr);
IUnknown_Release(unk);
EXPECT_REF(node, 1);
hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMNode, (void**)&node2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(node, 2);
ok(node == node2, "%d: got %p and %p\n", ptr->type, node, node2);
EXPECT_REF(node, 2);
hr = IXMLDOMNode_QueryInterface(node, ptr->iid, (void**)&node_typed);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(node, 3);
todo_wine {
EXPECT_REF(node_typed, 2);
@@ -2726,13 +2777,13 @@ todo_wine {
EXPECT_REF(doc, 1);
ref = IXMLDOMDocument_Release(doc);
- ok( ref == 0, "ref %d\n", ref);
+ ok( ref == 0, "ref %ld\n", ref);
/* check IUnknown after releasing DOM iface */
doc = create_document(&IID_IXMLDOMDocument);
EXPECT_REF(doc, 1);
hr = IXMLDOMDocument_QueryInterface(doc, &IID_IUnknown, (void**)&unk);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine {
EXPECT_REF(unk, 3);
EXPECT_REF(doc, 1);
@@ -2745,7 +2796,7 @@ todo_wine {
EXPECT_REF(doc, 1);
hr = IXMLDOMDocument_QueryInterface(doc, &IID_IUnknown, (void**)&unk);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine {
EXPECT_REF(unk, 3);
EXPECT_REF(doc, 1);
@@ -2755,11 +2806,11 @@ todo_wine {
/* IXMLDOMImplementation */
EXPECT_REF(doc, 1);
hr = IXMLDOMDocument_get_implementation(doc, &impl);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(doc, 1);
EXPECT_REF(impl, 1);
hr = IXMLDOMDocument_get_implementation(doc, &impl2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(doc, 1);
EXPECT_REF(impl2, 1);
ok(impl != impl2, "got %p, %p\n", impl, impl2);
@@ -2767,7 +2818,7 @@ todo_wine {
IXMLDOMImplementation_Release(impl2);
hr = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_TRUE, "failed to load XML string\n");
EXPECT_REF(doc, 1);
@@ -2781,19 +2832,19 @@ todo_wine {
EXPECT_REF(doc, 1);
hr = IXMLDOMDocument_QueryInterface(doc, &IID_IUnknown, (void**)&unk);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine {
EXPECT_REF(unk, 3);
EXPECT_REF(doc, 1);
}
hr = IXMLDOMDocument_get_documentElement(doc, &element);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine {
EXPECT_REF(doc, 1);
EXPECT_REF(element, 2);
}
hr = IXMLDOMDocument_get_documentElement(doc, &elem2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine {
EXPECT_REF(doc, 1);
@@ -2806,14 +2857,14 @@ todo_wine {
/* get IUnknown from a node doesn't touch node instance refcount */
hr = IXMLDOMElement_QueryInterface(element, &IID_IUnknown, (void**)&unk);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(element, 2);
todo_wine {
EXPECT_REF(unk, 4);
EXPECT_REF(elem2, 2);
}
hr = IXMLDOMElement_QueryInterface(elem2, &IID_IUnknown, (void**)&unk2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine {
EXPECT_REF(unk, 5);
EXPECT_REF(unk2, 5);
@@ -2836,45 +2887,45 @@ todo_wine {
IUnknown_Release(unk2);
hr = IXMLDOMElement_get_childNodes( element, &node_list );
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine EXPECT_REF(element, 2);
EXPECT_REF(node_list, 1);
hr = IXMLDOMNodeList_get_item( node_list, 0, &node );
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(node_list, 1);
EXPECT_REF(node, 1);
hr = IXMLDOMNodeList_get_item( node_list, 0, &node2 );
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(node_list, 1);
EXPECT_REF(node2, 1);
ref = IXMLDOMNode_Release( node );
- ok( ref == 0, "ref %d\n", ref );
+ ok( ref == 0, "ref %ld\n", ref );
ref = IXMLDOMNode_Release( node2 );
- ok( ref == 0, "ref %d\n", ref );
+ ok( ref == 0, "ref %ld\n", ref );
ref = IXMLDOMNodeList_Release( node_list );
- ok( ref == 0, "ref %d\n", ref );
+ ok( ref == 0, "ref %ld\n", ref );
ok( node != node2, "node %p node2 %p\n", node, node2 );
ref = IXMLDOMDocument_Release( doc );
- todo_wine ok( ref == 0, "ref %d\n", ref );
+ todo_wine ok( ref == 0, "ref %ld\n", ref );
todo_wine EXPECT_REF(element, 2);
/* IUnknown must be unique however we obtain it */
hr = IXMLDOMElement_QueryInterface(element, &IID_IUnknown, (void**)&unk);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(element, 2);
hr = IXMLDOMElement_QueryInterface(element, &IID_IXMLDOMNode, (void**)&node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine EXPECT_REF(element, 2);
hr = IXMLDOMNode_QueryInterface(node, &IID_IUnknown, (void**)&unk2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine EXPECT_REF(element, 2);
ok(unk == unk2, "unk %p unk2 %p\n", unk, unk2);
todo_wine ok(element != (void*)node, "node %p element %p\n", node, element);
@@ -2891,9 +2942,6 @@ todo_wine {
static void test_create(void)
{
- static const WCHAR szOne[] = {'1',0};
- static const WCHAR szOneGarbage[] = {'1','G','a','r','b','a','g','e',0};
- HRESULT r;
VARIANT var;
BSTR str, name;
IXMLDOMDocument *doc;
@@ -2904,6 +2952,7 @@ static void test_create(void)
IXMLDOMNode *root, *node, *child;
IXMLDOMNamedNodeMap *attr_map;
IUnknown *unk;
+ HRESULT hr;
LONG ref;
LONG num;
@@ -2915,76 +2964,76 @@ static void test_create(void)
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_DOCUMENT;
node = (IXMLDOMNode*)0x1;
- r = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
- ok( r == E_INVALIDARG, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok( node == (void*)0x1, "expected same ptr, got %p\n", node);
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_DOCUMENT_TYPE;
node = (IXMLDOMNode*)0x1;
- r = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
- ok( r == E_INVALIDARG, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok( node == (void*)0x1, "expected same ptr, got %p\n", node);
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_ENTITY;
node = (IXMLDOMNode*)0x1;
- r = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
- ok( r == E_INVALIDARG, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok( node == (void*)0x1, "expected same ptr, got %p\n", node);
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_NOTATION;
node = (IXMLDOMNode*)0x1;
- r = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
- ok( r == E_INVALIDARG, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok( node == (void*)0x1, "expected same ptr, got %p\n", node);
/* NODE_COMMENT */
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_COMMENT;
node = NULL;
- r = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( node != NULL, "\n");
- r = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMComment, (void**)&comment);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMComment, (void**)&comment);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
str = NULL;
- r = IXMLDOMComment_get_data(comment, &str);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMComment_get_data(comment, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( str && SysStringLen(str) == 0, "expected empty comment, %p\n", str);
IXMLDOMComment_Release(comment);
SysFreeString(str);
node = (IXMLDOMNode*)0x1;
- r = IXMLDOMDocument_createNode( doc, var, _bstr_(""), NULL, &node );
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, _bstr_(""), NULL, &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMComment, (void**)&comment);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMComment, (void**)&comment);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
str = NULL;
- r = IXMLDOMComment_get_data(comment, &str);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMComment_get_data(comment, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( str && SysStringLen(str) == 0, "expected empty comment, %p\n", str);
IXMLDOMComment_Release(comment);
SysFreeString(str);
node = (IXMLDOMNode*)0x1;
- r = IXMLDOMDocument_createNode( doc, var, _bstr_("blah"), NULL, &node );
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, _bstr_("blah"), NULL, &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMComment, (void**)&comment);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMComment, (void**)&comment);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
str = NULL;
- r = IXMLDOMComment_get_data(comment, &str);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMComment_get_data(comment, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( str && SysStringLen(str) == 0, "expected empty comment, %p\n", str);
IXMLDOMComment_Release(comment);
SysFreeString(str);
@@ -2993,47 +3042,47 @@ static void test_create(void)
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_TEXT;
node = NULL;
- r = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( node != NULL, "\n");
- r = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMText, (void**)&text);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMText, (void**)&text);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
str = NULL;
- r = IXMLDOMText_get_data(text, &str);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMText_get_data(text, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( str && SysStringLen(str) == 0, "expected empty comment, %p\n", str);
IXMLDOMText_Release(text);
SysFreeString(str);
node = (IXMLDOMNode*)0x1;
- r = IXMLDOMDocument_createNode( doc, var, _bstr_(""), NULL, &node );
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, _bstr_(""), NULL, &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMText, (void**)&text);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMText, (void**)&text);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
str = NULL;
- r = IXMLDOMText_get_data(text, &str);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMText_get_data(text, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( str && SysStringLen(str) == 0, "expected empty comment, %p\n", str);
IXMLDOMText_Release(text);
SysFreeString(str);
node = (IXMLDOMNode*)0x1;
- r = IXMLDOMDocument_createNode( doc, var, _bstr_("blah"), NULL, &node );
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, _bstr_("blah"), NULL, &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMText, (void**)&text);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMText, (void**)&text);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
str = NULL;
- r = IXMLDOMText_get_data(text, &str);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMText_get_data(text, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( str && SysStringLen(str) == 0, "expected empty comment, %p\n", str);
IXMLDOMText_Release(text);
SysFreeString(str);
@@ -3042,47 +3091,47 @@ static void test_create(void)
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_CDATA_SECTION;
node = NULL;
- r = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( node != NULL, "\n");
- r = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMCDATASection, (void**)&cdata);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMCDATASection, (void**)&cdata);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
str = NULL;
- r = IXMLDOMCDATASection_get_data(cdata, &str);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMCDATASection_get_data(cdata, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( str && SysStringLen(str) == 0, "expected empty comment, %p\n", str);
IXMLDOMCDATASection_Release(cdata);
SysFreeString(str);
node = (IXMLDOMNode*)0x1;
- r = IXMLDOMDocument_createNode( doc, var, _bstr_(""), NULL, &node );
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, _bstr_(""), NULL, &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMCDATASection, (void**)&cdata);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMCDATASection, (void**)&cdata);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
str = NULL;
- r = IXMLDOMCDATASection_get_data(cdata, &str);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMCDATASection_get_data(cdata, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( str && SysStringLen(str) == 0, "expected empty comment, %p\n", str);
IXMLDOMCDATASection_Release(cdata);
SysFreeString(str);
node = (IXMLDOMNode*)0x1;
- r = IXMLDOMDocument_createNode( doc, var, _bstr_("blah"), NULL, &node );
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, _bstr_("blah"), NULL, &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMCDATASection, (void**)&cdata);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMCDATASection, (void**)&cdata);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
str = NULL;
- r = IXMLDOMCDATASection_get_data(cdata, &str);
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMCDATASection_get_data(cdata, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( str && SysStringLen(str) == 0, "expected empty comment, %p\n", str);
IXMLDOMCDATASection_Release(cdata);
SysFreeString(str);
@@ -3091,33 +3140,33 @@ static void test_create(void)
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_ATTRIBUTE;
node = (IXMLDOMNode*)0x1;
- r = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
- ok( r == E_FAIL, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok( node == (void*)0x1, "expected same ptr, got %p\n", node);
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_ATTRIBUTE;
node = (IXMLDOMNode*)0x1;
- r = IXMLDOMDocument_createNode( doc, var, _bstr_(""), NULL, &node );
- ok( r == E_FAIL, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, _bstr_(""), NULL, &node );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok( node == (void*)0x1, "expected same ptr, got %p\n", node);
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_ATTRIBUTE;
- str = SysAllocString( szlc );
- r = IXMLDOMDocument_createNode( doc, var, str, NULL, &node );
- ok( r == S_OK, "returns %08x\n", r );
- if( SUCCEEDED(r) ) IXMLDOMNode_Release( node );
+ str = SysAllocString( L"lc" );
+ hr = IXMLDOMDocument_createNode( doc, var, str, NULL, &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ if (SUCCEEDED(hr)) IXMLDOMNode_Release(node);
SysFreeString(str);
/* a name is required for attribute, try a BSTR with first null wchar */
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_ATTRIBUTE;
- str = SysAllocString( szstr1 );
+ str = SysAllocString( L"str1" );
str[0] = 0;
node = (IXMLDOMNode*)0x1;
- r = IXMLDOMDocument_createNode( doc, var, str, NULL, &node );
- ok( r == E_FAIL, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, str, NULL, &node );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok( node == (void*)0x1, "expected same ptr, got %p\n", node);
SysFreeString(str);
@@ -3125,119 +3174,119 @@ static void test_create(void)
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_PROCESSING_INSTRUCTION;
node = (IXMLDOMNode*)0x1;
- r = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
- ok( r == E_FAIL, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok( node == (void*)0x1, "expected same ptr, got %p\n", node);
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_PROCESSING_INSTRUCTION;
node = (IXMLDOMNode*)0x1;
- r = IXMLDOMDocument_createNode( doc, var, _bstr_(""), NULL, &node );
- ok( r == E_FAIL, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, _bstr_(""), NULL, &node );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok( node == (void*)0x1, "expected same ptr, got %p\n", node);
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_PROCESSING_INSTRUCTION;
- r = IXMLDOMDocument_createNode( doc, var, _bstr_("pi"), NULL, NULL );
- ok( r == E_INVALIDARG, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, _bstr_("pi"), NULL, NULL );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
/* NODE_ENTITY_REFERENCE */
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_ENTITY_REFERENCE;
node = (IXMLDOMNode*)0x1;
- r = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
- ok( r == E_FAIL, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok( node == (void*)0x1, "expected same ptr, got %p\n", node);
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_ENTITY_REFERENCE;
node = (IXMLDOMNode*)0x1;
- r = IXMLDOMDocument_createNode( doc, var, _bstr_(""), NULL, &node );
- ok( r == E_FAIL, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, _bstr_(""), NULL, &node );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok( node == (void*)0x1, "expected same ptr, got %p\n", node);
/* NODE_ELEMENT */
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_ELEMENT;
node = (IXMLDOMNode*)0x1;
- r = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
- ok( r == E_FAIL, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, NULL, NULL, &node );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok( node == (void*)0x1, "expected same ptr, got %p\n", node);
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_ELEMENT;
node = (IXMLDOMNode*)0x1;
- r = IXMLDOMDocument_createNode( doc, var, _bstr_(""), NULL, &node );
- ok( r == E_FAIL, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, _bstr_(""), NULL, &node );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok( node == (void*)0x1, "expected same ptr, got %p\n", node);
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_ELEMENT;
- str = SysAllocString( szlc );
- r = IXMLDOMDocument_createNode( doc, var, str, NULL, &node );
- ok( r == S_OK, "returns %08x\n", r );
- if( SUCCEEDED(r) ) IXMLDOMNode_Release( node );
+ str = SysAllocString( L"lc" );
+ hr = IXMLDOMDocument_createNode( doc, var, str, NULL, &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ if( SUCCEEDED(hr) ) IXMLDOMNode_Release( node );
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_ELEMENT;
- r = IXMLDOMDocument_createNode( doc, var, str, NULL, NULL );
- ok( r == E_INVALIDARG, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, str, NULL, NULL );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
V_VT(&var) = VT_R4;
V_R4(&var) = NODE_ELEMENT;
- r = IXMLDOMDocument_createNode( doc, var, str, NULL, &node );
- ok( r == S_OK, "returns %08x\n", r );
- if( SUCCEEDED(r) ) IXMLDOMNode_Release( node );
+ hr = IXMLDOMDocument_createNode( doc, var, str, NULL, &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ if( SUCCEEDED(hr) ) IXMLDOMNode_Release( node );
V_VT(&var) = VT_BSTR;
- V_BSTR(&var) = SysAllocString( szOne );
- r = IXMLDOMDocument_createNode( doc, var, str, NULL, &node );
- ok( r == S_OK, "returns %08x\n", r );
- if( SUCCEEDED(r) ) IXMLDOMNode_Release( node );
+ V_BSTR(&var) = SysAllocString( L"1" );
+ hr = IXMLDOMDocument_createNode( doc, var, str, NULL, &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ if( SUCCEEDED(hr) ) IXMLDOMNode_Release( node );
VariantClear(&var);
V_VT(&var) = VT_BSTR;
- V_BSTR(&var) = SysAllocString( szOneGarbage );
- r = IXMLDOMDocument_createNode( doc, var, str, NULL, &node );
- ok( r == E_INVALIDARG, "returns %08x\n", r );
- if( SUCCEEDED(r) ) IXMLDOMNode_Release( node );
+ V_BSTR(&var) = SysAllocString( L"1Garbage" );
+ hr = IXMLDOMDocument_createNode( doc, var, str, NULL, &node );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+ if( SUCCEEDED(hr) ) IXMLDOMNode_Release( node );
VariantClear(&var);
V_VT(&var) = VT_I4;
V_I4(&var) = NODE_ELEMENT;
- r = IXMLDOMDocument_createNode( doc, var, str, NULL, &node );
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMDocument_createNode( doc, var, str, NULL, &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(doc, 1);
- r = IXMLDOMDocument_appendChild( doc, node, &root );
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMDocument_appendChild( doc, node, &root );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( node == root, "%p %p\n", node, root );
EXPECT_REF(doc, 1);
EXPECT_REF(node, 2);
ref = IXMLDOMNode_Release( node );
- ok(ref == 1, "ref %d\n", ref);
+ ok(ref == 1, "ref %ld\n", ref);
SysFreeString( str );
V_VT(&var) = VT_I4;
V_I4(&var) = NODE_ELEMENT;
- str = SysAllocString( szbs );
- r = IXMLDOMDocument_createNode( doc, var, str, NULL, &node );
- ok( r == S_OK, "returns %08x\n", r );
+ str = SysAllocString( L"bs" );
+ hr = IXMLDOMDocument_createNode( doc, var, str, NULL, &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
SysFreeString( str );
EXPECT_REF(node, 1);
- r = IXMLDOMNode_QueryInterface( node, &IID_IUnknown, (void**)&unk );
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMNode_QueryInterface( node, &IID_IUnknown, (void**)&unk );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(unk, 2);
V_VT(&var) = VT_EMPTY;
child = NULL;
- r = IXMLDOMNode_insertBefore( root, (IXMLDOMNode*)unk, var, &child );
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMNode_insertBefore( root, (IXMLDOMNode*)unk, var, &child );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( unk == (IUnknown*)child, "%p %p\n", unk, child );
todo_wine EXPECT_REF(unk, 4);
@@ -3247,79 +3296,79 @@ static void test_create(void)
V_VT(&var) = VT_NULL;
V_DISPATCH(&var) = (IDispatch*)node;
- r = IXMLDOMNode_insertBefore( root, node, var, &child );
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMNode_insertBefore( root, node, var, &child );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( node == child, "%p %p\n", node, child );
IXMLDOMNode_Release( child );
V_VT(&var) = VT_NULL;
V_DISPATCH(&var) = (IDispatch*)node;
- r = IXMLDOMNode_insertBefore( root, node, var, NULL );
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMNode_insertBefore( root, node, var, NULL );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release( node );
- r = IXMLDOMNode_QueryInterface( root, &IID_IXMLDOMElement, (void**)&element );
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMNode_QueryInterface( root, &IID_IXMLDOMElement, (void**)&element );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMElement_get_attributes( element, &attr_map );
- ok( r == S_OK, "returns %08x\n", r );
- r = IXMLDOMNamedNodeMap_get_length( attr_map, &num );
- ok( r == S_OK, "returns %08x\n", r );
- ok( num == 0, "num %d\n", num );
+ hr = IXMLDOMElement_get_attributes( element, &attr_map );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNamedNodeMap_get_length( attr_map, &num );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok( num == 0, "num %ld\n", num );
IXMLDOMNamedNodeMap_Release( attr_map );
V_VT(&var) = VT_BSTR;
- V_BSTR(&var) = SysAllocString( szstr1 );
- name = SysAllocString( szdl );
- r = IXMLDOMElement_setAttribute( element, name, var );
- ok( r == S_OK, "returns %08x\n", r );
- r = IXMLDOMElement_get_attributes( element, &attr_map );
- ok( r == S_OK, "returns %08x\n", r );
- r = IXMLDOMNamedNodeMap_get_length( attr_map, &num );
- ok( r == S_OK, "returns %08x\n", r );
- ok( num == 1, "num %d\n", num );
+ V_BSTR(&var) = SysAllocString( L"str1" );
+ name = SysAllocString( L"dl" );
+ hr = IXMLDOMElement_setAttribute( element, name, var );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMElement_get_attributes( element, &attr_map );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNamedNodeMap_get_length( attr_map, &num );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok( num == 1, "num %ld\n", num );
IXMLDOMNamedNodeMap_Release( attr_map );
VariantClear(&var);
V_VT(&var) = VT_BSTR;
- V_BSTR(&var) = SysAllocString( szstr2 );
- r = IXMLDOMElement_setAttribute( element, name, var );
- ok( r == S_OK, "returns %08x\n", r );
- r = IXMLDOMElement_get_attributes( element, &attr_map );
- ok( r == S_OK, "returns %08x\n", r );
- r = IXMLDOMNamedNodeMap_get_length( attr_map, &num );
- ok( r == S_OK, "returns %08x\n", r );
- ok( num == 1, "num %d\n", num );
+ V_BSTR(&var) = SysAllocString( L"str2" );
+ hr = IXMLDOMElement_setAttribute( element, name, var );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMElement_get_attributes( element, &attr_map );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNamedNodeMap_get_length( attr_map, &num );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok( num == 1, "num %ld\n", num );
IXMLDOMNamedNodeMap_Release( attr_map );
VariantClear(&var);
- r = IXMLDOMElement_getAttribute( element, name, &var );
- ok( r == S_OK, "returns %08x\n", r );
- ok( !lstrcmpW(V_BSTR(&var), szstr2), "wrong attr value\n");
+ hr = IXMLDOMElement_getAttribute( element, name, &var );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok( !lstrcmpW(V_BSTR(&var), L"str2"), "wrong attr value\n");
VariantClear(&var);
SysFreeString(name);
V_VT(&var) = VT_BSTR;
- V_BSTR(&var) = SysAllocString( szstr1 );
- name = SysAllocString( szlc );
- r = IXMLDOMElement_setAttribute( element, name, var );
- ok( r == S_OK, "returns %08x\n", r );
- r = IXMLDOMElement_get_attributes( element, &attr_map );
- ok( r == S_OK, "returns %08x\n", r );
- r = IXMLDOMNamedNodeMap_get_length( attr_map, &num );
- ok( r == S_OK, "returns %08x\n", r );
- ok( num == 2, "num %d\n", num );
+ V_BSTR(&var) = SysAllocString( L"str1" );
+ name = SysAllocString( L"lc" );
+ hr = IXMLDOMElement_setAttribute( element, name, var );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMElement_get_attributes( element, &attr_map );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNamedNodeMap_get_length( attr_map, &num );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok( num == 2, "num %ld\n", num );
IXMLDOMNamedNodeMap_Release( attr_map );
VariantClear(&var);
SysFreeString(name);
V_VT(&var) = VT_I4;
V_I4(&var) = 10;
- name = SysAllocString( szbs );
- r = IXMLDOMElement_setAttribute( element, name, var );
- ok( r == S_OK, "returns %08x\n", r );
+ name = SysAllocString( L"bs" );
+ hr = IXMLDOMElement_setAttribute( element, name, var );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
VariantClear(&var);
- r = IXMLDOMElement_getAttribute( element, name, &var );
- ok( r == S_OK, "returns %08x\n", r );
+ hr = IXMLDOMElement_getAttribute( element, name, &var );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( V_VT(&var) == VT_BSTR, "variant type %x\n", V_VT(&var));
VariantClear(&var);
SysFreeString(name);
@@ -3327,9 +3376,9 @@ static void test_create(void)
/* Create an Attribute */
V_VT(&var) = VT_I4;
V_I4(&var) = NODE_ATTRIBUTE;
- str = SysAllocString( szAttribute );
- r = IXMLDOMDocument_createNode( doc, var, str, NULL, &node );
- ok( r == S_OK, "returns %08x\n", r );
+ str = SysAllocString( L"Attr" );
+ hr = IXMLDOMDocument_createNode( doc, var, str, NULL, &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( node != NULL, "node was null\n");
SysFreeString(str);
@@ -3361,29 +3410,29 @@ static void test_getElementsByTagName(void)
IXMLDOMElement *elem;
WCHAR buff[100];
VARIANT_BOOL b;
- HRESULT r;
+ HRESULT hr;
LONG len;
BSTR str;
doc = create_document(&IID_IXMLDOMDocument);
- r = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
- ok( r == S_OK, "loadXML failed\n");
+ hr = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
+ ok(hr == S_OK, "loadXML failed\n");
ok( b == VARIANT_TRUE, "failed to load XML string\n");
/* null arguments cases */
- r = IXMLDOMDocument_getElementsByTagName(doc, NULL, &node_list);
- ok( r == E_INVALIDARG, "ret %08x\n", r );
- r = IXMLDOMDocument_getElementsByTagName(doc, _bstr_("*"), NULL);
- ok( r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMDocument_getElementsByTagName(doc, NULL, &node_list);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument_getElementsByTagName(doc, _bstr_("*"), NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
while (ptr->query)
{
- r = IXMLDOMDocument_getElementsByTagName(doc, _bstr_(ptr->query), &node_list);
- ok(r == S_OK, "ret %08x\n", r);
- r = IXMLDOMNodeList_get_length(node_list, &len);
- ok(r == S_OK, "ret %08x\n", r);
- ok(len == ptr->len, "%s: got len %d, expected %d\n", ptr->query, len, ptr->len);
+ hr = IXMLDOMDocument_getElementsByTagName(doc, _bstr_(ptr->query), &node_list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNodeList_get_length(node_list, &len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(len == ptr->len, "%s: got len %ld, expected %d\n", ptr->query, len, ptr->len);
expect_list_and_release(node_list, ptr->result);
free_bstrs();
@@ -3391,45 +3440,45 @@ static void test_getElementsByTagName(void)
}
/* broken query BSTR */
- memcpy(&buff[2], szstar, sizeof(szstar));
+ memcpy(&buff[2], L"*", 2 * sizeof(WCHAR));
/* just a big length */
*(DWORD*)buff = 0xf0f0;
- r = IXMLDOMDocument_getElementsByTagName(doc, &buff[2], &node_list);
- ok( r == S_OK, "ret %08x\n", r );
- r = IXMLDOMNodeList_get_length( node_list, &len );
- ok( r == S_OK, "ret %08x\n", r );
- ok( len == 6, "len %d\n", len );
+ hr = IXMLDOMDocument_getElementsByTagName(doc, &buff[2], &node_list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNodeList_get_length( node_list, &len );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok( len == 6, "len %ld\n", len );
IXMLDOMNodeList_Release( node_list );
/* test for element */
- r = IXMLDOMDocument_get_documentElement(doc, &elem);
- ok( r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMDocument_get_documentElement(doc, &elem);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- str = SysAllocString( szstar );
+ str = SysAllocString( L"*" );
/* null arguments cases */
- r = IXMLDOMElement_getElementsByTagName(elem, NULL, &node_list);
- ok( r == E_INVALIDARG, "ret %08x\n", r );
- r = IXMLDOMElement_getElementsByTagName(elem, str, NULL);
- ok( r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMElement_getElementsByTagName(elem, NULL, &node_list);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMElement_getElementsByTagName(elem, str, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMElement_getElementsByTagName(elem, str, &node_list);
- ok( r == S_OK, "ret %08x\n", r );
- r = IXMLDOMNodeList_get_length( node_list, &len );
- ok( r == S_OK, "ret %08x\n", r );
- ok( len == 5, "len %d\n", len );
+ hr = IXMLDOMElement_getElementsByTagName(elem, str, &node_list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNodeList_get_length( node_list, &len );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok( len == 5, "len %ld\n", len );
expect_list_and_release(node_list, "E1.E2.D1 E2.E2.D1 E3.E2.D1 E4.E2.D1 E1.E4.E2.D1");
SysFreeString( str );
/* broken query BSTR */
- memcpy(&buff[2], szstar, sizeof(szstar));
+ memcpy(&buff[2], L"*", 2 * sizeof(WCHAR));
/* just a big length */
*(DWORD*)buff = 0xf0f0;
- r = IXMLDOMElement_getElementsByTagName(elem, &buff[2], &node_list);
- ok( r == S_OK, "ret %08x\n", r );
- r = IXMLDOMNodeList_get_length( node_list, &len );
- ok( r == S_OK, "ret %08x\n", r );
- ok( len == 5, "len %d\n", len );
+ hr = IXMLDOMElement_getElementsByTagName(elem, &buff[2], &node_list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNodeList_get_length( node_list, &len );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok( len == 5, "len %ld\n", len );
IXMLDOMNodeList_Release( node_list );
IXMLDOMElement_Release(elem);
@@ -3441,7 +3490,6 @@ static void test_getElementsByTagName(void)
static void test_get_text(void)
{
- HRESULT r;
BSTR str;
VARIANT_BOOL b;
IXMLDOMDocument *doc;
@@ -3449,76 +3497,77 @@ static void test_get_text(void)
IXMLDOMNode *nodeRoot;
IXMLDOMNodeList *node_list;
IXMLDOMNamedNodeMap *node_map;
+ HRESULT hr;
LONG len;
doc = create_document(&IID_IXMLDOMDocument);
- r = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
- ok( r == S_OK, "loadXML failed\n");
+ hr = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
+ ok(hr == S_OK, "loadXML failed\n");
ok( b == VARIANT_TRUE, "failed to load XML string\n");
- str = SysAllocString( szbs );
- r = IXMLDOMDocument_getElementsByTagName( doc, str, &node_list );
- ok( r == S_OK, "ret %08x\n", r );
+ str = SysAllocString( L"bs" );
+ hr = IXMLDOMDocument_getElementsByTagName( doc, str, &node_list );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
SysFreeString(str);
/* Test to get all child node text. */
- r = IXMLDOMDocument_QueryInterface(doc, &IID_IXMLDOMNode, (void**)&nodeRoot);
- ok( r == S_OK, "ret %08x\n", r );
- if(r == S_OK)
+ hr = IXMLDOMDocument_QueryInterface(doc, &IID_IXMLDOMNode, (void**)&nodeRoot);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ if (hr == S_OK)
{
- r = IXMLDOMNode_get_text( nodeRoot, &str );
- ok( r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMNode_get_text( nodeRoot, &str );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_bstr_eq_and_free(str, "fn1.txt\n \nfn2.txt\n \nf1");
IXMLDOMNode_Release(nodeRoot);
}
- r = IXMLDOMNodeList_get_length( node_list, NULL );
- ok( r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMNodeList_get_length( node_list, NULL );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNodeList_get_length( node_list, &len );
- ok( r == S_OK, "ret %08x\n", r );
- ok( len == 1, "expect 1 got %d\n", len );
+ hr = IXMLDOMNodeList_get_length( node_list, &len );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok( len == 1, "expect 1 got %ld\n", len );
- r = IXMLDOMNodeList_get_item( node_list, 0, NULL );
- ok( r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMNodeList_get_item( node_list, 0, NULL );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNodeList_nextNode( node_list, NULL );
- ok( r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMNodeList_nextNode( node_list, NULL );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNodeList_get_item( node_list, 0, &node );
- ok( r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMNodeList_get_item( node_list, 0, &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNodeList_Release( node_list );
/* Invalid output parameter*/
- r = IXMLDOMNode_get_text( node, NULL );
- ok( r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMNode_get_text( node, NULL );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNode_get_text( node, &str );
- ok( r == S_OK, "ret %08x\n", r );
- ok( !memcmp(str, szfn1_txt, lstrlenW(szfn1_txt) ), "wrong string\n" );
+ hr = IXMLDOMNode_get_text( node, &str );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok( !lstrcmpW(str, L"fn1.txt"), "wrong string\n" );
SysFreeString(str);
- r = IXMLDOMNode_get_attributes( node, &node_map );
- ok( r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMNode_get_attributes( node, &node_map );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- str = SysAllocString( szvr );
- r = IXMLDOMNamedNodeMap_getNamedItem( node_map, str, &node2 );
- ok( r == S_OK, "ret %08x\n", r );
+ str = SysAllocString( L"vr" );
+ hr = IXMLDOMNamedNodeMap_getNamedItem( node_map, str, &node2 );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
SysFreeString(str);
- r = IXMLDOMNode_get_text( node2, &str );
- ok( r == S_OK, "ret %08x\n", r );
- ok( !memcmp(str, szstr2, sizeof(szstr2)), "wrong string\n" );
+ hr = IXMLDOMNode_get_text( node2, &str );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok( !lstrcmpW(str, L"str2"), "Unexpected string.\n" );
SysFreeString(str);
- r = IXMLDOMNode_get_firstChild( node2, &node3 );
- ok( r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMNode_get_firstChild( node2, &node3 );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNode_get_text( node3, &str );
- ok( r == S_OK, "ret %08x\n", r );
- ok( !memcmp(str, szstr2, sizeof(szstr2)), "wrong string\n" );
+ hr = IXMLDOMNode_get_text( node3, &str );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok( !lstrcmpW(str, L"str2"), "Unexpected string.\n" );
SysFreeString(str);
@@ -3531,32 +3580,6 @@ static void test_get_text(void)
free_bstrs();
}
-#ifdef __REACTOS__
-/*
- * This function is to display that xmlnodelist_QueryInterface
- * generates SEGV for these conditions, and once fixed make sure
- * it never does it again.
- */
-static void verify_nodelist_query_interface(IXMLDOMNodeList *node_list)
-{
- HRESULT hr;
- /*
- * NOTE: The following calls are supposed to test wine's
- * xmlnodelist_QueryInterface behaving properly.
- * While we should be able to expect E_POINTER (due to the NULL pointer),
- * it seems MS' own implementation(s) violate the spec and return
- * E_INVALIDARG. To not get cought be a potentially correct implementation
- * in the future, we check for NOT S_OK.
- */
- hr = IXMLDOMNodeList_QueryInterface(node_list, &IID_IUnknown, NULL);
- EXPECT_NOT_HR(hr, S_OK);
- hr = IXMLDOMNodeList_QueryInterface(node_list, &IID_IDispatch, NULL);
- EXPECT_NOT_HR(hr, S_OK);
- hr = IXMLDOMNodeList_QueryInterface(node_list, &IID_IXMLDOMNodeList, NULL);
- EXPECT_NOT_HR(hr, S_OK);
-}
-#endif
-
static void test_get_childNodes(void)
{
IXMLDOMNodeList *node_list, *node_list2;
@@ -3566,49 +3589,46 @@ static void test_get_childNodes(void)
IXMLDOMNode *node, *node2;
IXMLDOMElement *element;
IUnknown *unk1, *unk2;
+ ULONG fetched;
+ VARIANT v[2];
HRESULT hr;
- VARIANT v;
BSTR str;
LONG len;
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_TRUE, "failed to load XML string\n");
hr = IXMLDOMDocument_get_documentElement( doc, &element );
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_get_childNodes( element, &node_list );
- EXPECT_HR(hr, S_OK);
-
-#ifdef __REACTOS__
- verify_nodelist_query_interface(node_list);
-#endif
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNodeList_get_length( node_list, &len );
- EXPECT_HR(hr, S_OK);
- ok( len == 4, "len %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok( len == 4, "len %ld\n", len);
/* refcount tests for IEnumVARIANT support */
EXPECT_REF(node_list, 1);
hr = IXMLDOMNodeList_QueryInterface(node_list, &IID_IEnumVARIANT, (void**)&enum1);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(node_list, 1);
EXPECT_REF(enum1, 2);
EXPECT_REF(node_list, 1);
hr = IXMLDOMNodeList_QueryInterface(node_list, &IID_IEnumVARIANT, (void**)&enum2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(node_list, 1);
ok(enum2 == enum1, "got %p, %p\n", enum2, enum1);
IEnumVARIANT_Release(enum2);
hr = IXMLDOMNodeList_QueryInterface(node_list, &IID_IUnknown, (void**)&unk1);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IEnumVARIANT_QueryInterface(enum1, &IID_IUnknown, (void**)&unk2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(node_list, 3);
EXPECT_REF(enum1, 2);
ok(unk1 == unk2, "got %p, %p\n", unk1, unk2);
@@ -3617,16 +3637,16 @@ static void test_get_childNodes(void)
EXPECT_REF(node_list, 1);
hr = IXMLDOMNodeList__newEnum(node_list, (IUnknown**)&enum2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(node_list, 2);
EXPECT_REF(enum2, 1);
ok(enum2 != enum1, "got %p, %p\n", enum2, enum1);
/* enumerator created with _newEnum() doesn't share IUnknown* with main object */
hr = IXMLDOMNodeList_QueryInterface(node_list, &IID_IUnknown, (void**)&unk1);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IEnumVARIANT_QueryInterface(enum2, &IID_IUnknown, (void**)&unk2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(node_list, 3);
EXPECT_REF(enum2, 2);
ok(unk1 != unk2, "got %p, %p\n", unk1, unk2);
@@ -3634,63 +3654,102 @@ static void test_get_childNodes(void)
IUnknown_Release(unk2);
hr = IXMLDOMNodeList__newEnum(node_list, (IUnknown**)&enum3);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(enum2 != enum3, "got %p, %p\n", enum2, enum3);
IEnumVARIANT_Release(enum3);
IEnumVARIANT_Release(enum2);
/* iteration tests */
hr = IXMLDOMNodeList_get_item(node_list, 0, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_nodeName(node, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("bs")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"bs"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
IXMLDOMNode_Release(node);
hr = IXMLDOMNodeList_nextNode(node_list, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_nodeName(node, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("bs")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"bs"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
IXMLDOMNode_Release(node);
- V_VT(&v) = VT_EMPTY;
- hr = IEnumVARIANT_Next(enum1, 1, &v, NULL);
- EXPECT_HR(hr, S_OK);
- ok(V_VT(&v) == VT_DISPATCH, "got var type %d\n", V_VT(&v));
- hr = IDispatch_QueryInterface(V_DISPATCH(&v), &IID_IXMLDOMNode, (void**)&node);
- EXPECT_HR(hr, S_OK);
+ V_VT(&v[0]) = VT_EMPTY;
+ hr = IEnumVARIANT_Next(enum1, 1, &v[0], NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&v[0]) == VT_DISPATCH, "got var type %d\n", V_VT(&v[0]));
+ hr = IDispatch_QueryInterface(V_DISPATCH(&v[0]), &IID_IXMLDOMNode, (void**)&node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_nodeName(node, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("bs")), "got node name %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"bs"), "got node name %s\n", wine_dbgstr_w(str));
SysFreeString(str);
IXMLDOMNode_Release(node);
- VariantClear(&v);
+ VariantClear(&v[0]);
+
+ V_VT(&v[1]) = VT_EMPTY;
+ V_VT(&v[0]) = VT_EMPTY;
+ hr = IEnumVARIANT_Next(enum1, 2, v, &fetched);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&v[0]) == VT_DISPATCH, "got var type %d\n", V_VT(&v[0]));
+ ok(V_VT(&v[1]) == VT_DISPATCH, "got var type %d\n", V_VT(&v[1]));
+ ok(fetched == 2, "got %ld, expected 2\n", fetched);
+ hr = IDispatch_QueryInterface(V_DISPATCH(&v[0]), &IID_IXMLDOMNode, (void**)&node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNode_get_nodeName(node, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"pr"), "got node name %s\n", wine_dbgstr_w(str));
+ SysFreeString(str);
+ IXMLDOMNode_Release(node);
+ hr = IDispatch_QueryInterface(V_DISPATCH(&v[1]), &IID_IXMLDOMNode, (void**)&node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNode_get_nodeName(node, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"empty"), "got node name %s\n", wine_dbgstr_w(str));
+ SysFreeString(str);
+ IXMLDOMNode_Release(node);
+ VariantClear(&v[1]);
+ VariantClear(&v[0]);
+
+ V_VT(&v[1]) = VT_NULL;
+ V_VT(&v[0]) = VT_EMPTY;
+ hr = IEnumVARIANT_Next(enum1, 2, v, &fetched);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&v[0]) == VT_DISPATCH, "got var type %d\n", V_VT(&v[0]));
+ ok(V_VT(&v[1]) == VT_EMPTY, "got var type %d\n", V_VT(&v[1]));
+ ok(fetched == 1, "got %ld, expected 1\n", fetched);
+ hr = IDispatch_QueryInterface(V_DISPATCH(&v[0]), &IID_IXMLDOMNode, (void**)&node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNode_get_nodeName(node, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"fo"), "got node name %s\n", wine_dbgstr_w(str));
+ SysFreeString(str);
+ VariantClear(&v[0]);
hr = IXMLDOMNodeList_nextNode(node_list, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_nodeName(node, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("pr")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"pr"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
IXMLDOMNode_Release(node);
IEnumVARIANT_Release(enum1);
hr = IXMLDOMNodeList_get_item( node_list, 2, &node );
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_childNodes( node, &node_list2 );
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNodeList_get_length( node_list2, &len );
- EXPECT_HR(hr, S_OK);
- ok( len == 0, "len %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok( len == 0, "len %ld\n", len);
hr = IXMLDOMNodeList_get_item( node_list2, 0, &node2);
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
IXMLDOMNodeList_Release( node_list2 );
IXMLDOMNode_Release( node );
@@ -3699,23 +3758,23 @@ static void test_get_childNodes(void)
/* test for children of node */
hr = IXMLDOMDocument_get_firstChild(doc, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
str = NULL;
hr = IXMLDOMNode_get_nodeName(node, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("xml")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"xml"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
/* it returns empty but valid node list */
node_list = (void*)0xdeadbeef;
hr = IXMLDOMNode_get_childNodes(node, &node_list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = -1;
hr = IXMLDOMNodeList_get_length(node_list, &len);
- EXPECT_HR(hr, S_OK);
- ok(len == 0, "got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(len == 0, "got %ld\n", len);
IXMLDOMNodeList_Release( node_list );
IXMLDOMNode_Release(node);
@@ -3726,26 +3785,25 @@ static void test_get_childNodes(void)
static void test_get_firstChild(void)
{
- static const WCHAR xmlW[] = {'x','m','l',0};
IXMLDOMDocument *doc;
IXMLDOMNode *node;
VARIANT_BOOL b;
- HRESULT r;
+ HRESULT hr;
BSTR str;
doc = create_document(&IID_IXMLDOMDocument);
- r = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
- ok( r == S_OK, "loadXML failed\n");
+ hr = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
+ ok(hr == S_OK, "loadXML failed\n");
ok( b == VARIANT_TRUE, "failed to load XML string\n");
- r = IXMLDOMDocument_get_firstChild( doc, &node );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMDocument_get_firstChild( doc, &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNode_get_nodeName( node, &str );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMNode_get_nodeName( node, &str );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- ok(!lstrcmpW(str, xmlW), "expected \"xml\" node name, got %s\n", wine_dbgstr_w(str));
+ ok(!lstrcmpW(str, L"xml"), "expected \"xml\" node name, got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
IXMLDOMNode_Release( node );
@@ -3756,36 +3814,34 @@ static void test_get_firstChild(void)
static void test_get_lastChild(void)
{
- static const WCHAR lcW[] = {'l','c',0};
- static const WCHAR foW[] = {'f','o',0};
IXMLDOMDocument *doc;
IXMLDOMNode *node, *child;
VARIANT_BOOL b;
- HRESULT r;
+ HRESULT hr;
BSTR str;
doc = create_document(&IID_IXMLDOMDocument);
- r = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
- ok( r == S_OK, "loadXML failed\n");
+ hr = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
+ ok(hr == S_OK, "loadXML failed\n");
ok( b == VARIANT_TRUE, "failed to load XML string\n");
- r = IXMLDOMDocument_get_lastChild( doc, &node );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMDocument_get_lastChild( doc, &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNode_get_nodeName( node, &str );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMNode_get_nodeName( node, &str );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- ok(memcmp(str, lcW, sizeof(lcW)) == 0, "expected \"lc\" node name\n");
+ ok(!lstrcmpW(str, L"lc"), "Unexpected node name.\n");
SysFreeString(str);
- r = IXMLDOMNode_get_lastChild( node, &child );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMNode_get_lastChild( node, &child );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNode_get_nodeName( child, &str );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMNode_get_nodeName( child, &str );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- ok(memcmp(str, foW, sizeof(foW)) == 0, "expected \"fo\" node name\n");
+ ok(!lstrcmpW(str, L"fo"), "Unexpected node name.\n");
SysFreeString(str);
IXMLDOMNode_Release( child );
@@ -3797,93 +3853,93 @@ static void test_get_lastChild(void)
static void test_removeChild(void)
{
- HRESULT r;
VARIANT_BOOL b;
IXMLDOMDocument *doc;
IXMLDOMElement *element, *lc_element;
IXMLDOMNode *fo_node, *ba_node, *removed_node, *temp_node, *lc_node;
IXMLDOMNodeList *root_list, *fo_list;
+ HRESULT hr;
doc = create_document(&IID_IXMLDOMDocument);
- r = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
- ok( r == S_OK, "loadXML failed\n");
+ hr = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
+ ok(hr == S_OK, "loadXML failed\n");
ok( b == VARIANT_TRUE, "failed to load XML string\n");
- r = IXMLDOMDocument_get_documentElement( doc, &element );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMDocument_get_documentElement( doc, &element );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine EXPECT_REF(element, 2);
- r = IXMLDOMElement_get_childNodes( element, &root_list );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMElement_get_childNodes( element, &root_list );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(root_list, 1);
- r = IXMLDOMNodeList_get_item( root_list, 3, &fo_node );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMNodeList_get_item( root_list, 3, &fo_node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(fo_node, 1);
- r = IXMLDOMNode_get_childNodes( fo_node, &fo_list );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMNode_get_childNodes( fo_node, &fo_list );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(fo_list, 1);
- r = IXMLDOMNodeList_get_item( fo_list, 0, &ba_node );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMNodeList_get_item( fo_list, 0, &ba_node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(ba_node, 1);
/* invalid parameter: NULL ptr */
removed_node = (void*)0xdeadbeef;
- r = IXMLDOMElement_removeChild( element, NULL, &removed_node );
- ok( r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMElement_removeChild( element, NULL, &removed_node );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok( removed_node == (void*)0xdeadbeef, "%p\n", removed_node );
/* ba_node is a descendant of element, but not a direct child. */
removed_node = (void*)0xdeadbeef;
EXPECT_REF(ba_node, 1);
EXPECT_CHILDREN(fo_node);
- r = IXMLDOMElement_removeChild( element, ba_node, &removed_node );
- ok( r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMElement_removeChild( element, ba_node, &removed_node );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok( removed_node == NULL, "%p\n", removed_node );
EXPECT_REF(ba_node, 1);
EXPECT_CHILDREN(fo_node);
EXPECT_REF(ba_node, 1);
EXPECT_REF(fo_node, 1);
- r = IXMLDOMElement_removeChild( element, fo_node, &removed_node );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMElement_removeChild( element, fo_node, &removed_node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( fo_node == removed_node, "node %p node2 %p\n", fo_node, removed_node );
EXPECT_REF(fo_node, 2);
EXPECT_REF(ba_node, 1);
/* try removing already removed child */
temp_node = (void*)0xdeadbeef;
- r = IXMLDOMElement_removeChild( element, fo_node, &temp_node );
- ok( r == E_INVALIDARG, "ret %08x\n", r);
+ hr = IXMLDOMElement_removeChild( element, fo_node, &temp_node );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok( temp_node == NULL, "%p\n", temp_node );
IXMLDOMNode_Release( fo_node );
/* the removed node has no parent anymore */
- r = IXMLDOMNode_get_parentNode( removed_node, &temp_node );
- ok( r == S_FALSE, "ret %08x\n", r);
+ hr = IXMLDOMNode_get_parentNode( removed_node, &temp_node );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok( temp_node == NULL, "%p\n", temp_node );
IXMLDOMNode_Release( removed_node );
IXMLDOMNode_Release( ba_node );
IXMLDOMNodeList_Release( fo_list );
- r = IXMLDOMNodeList_get_item( root_list, 0, &lc_node );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMNodeList_get_item( root_list, 0, &lc_node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNode_QueryInterface( lc_node, &IID_IXMLDOMElement, (void**)&lc_element );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMNode_QueryInterface( lc_node, &IID_IXMLDOMElement, (void**)&lc_element );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* MS quirk: passing wrong interface pointer works, too */
- r = IXMLDOMElement_removeChild( element, (IXMLDOMNode*)lc_element, NULL );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMElement_removeChild( element, (IXMLDOMNode*)lc_element, NULL );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMElement_Release( lc_element );
temp_node = (void*)0xdeadbeef;
- r = IXMLDOMNode_get_parentNode( lc_node, &temp_node );
- ok( r == S_FALSE, "ret %08x\n", r);
+ hr = IXMLDOMNode_get_parentNode( lc_node, &temp_node );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok( temp_node == NULL, "%p\n", temp_node );
IXMLDOMNode_Release( lc_node );
@@ -3896,103 +3952,103 @@ static void test_removeChild(void)
static void test_replaceChild(void)
{
- HRESULT r;
VARIANT_BOOL b;
IXMLDOMDocument *doc;
IXMLDOMElement *element, *ba_element;
IXMLDOMNode *fo_node, *ba_node, *lc_node, *removed_node, *temp_node;
IXMLDOMNodeList *root_list, *fo_list;
IUnknown * unk1, *unk2;
+ HRESULT hr;
LONG len;
doc = create_document(&IID_IXMLDOMDocument);
- r = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
- ok( r == S_OK, "loadXML failed\n");
+ hr = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
+ ok(hr == S_OK, "loadXML failed\n");
ok( b == VARIANT_TRUE, "failed to load XML string\n");
- r = IXMLDOMDocument_get_documentElement( doc, &element );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMDocument_get_documentElement( doc, &element );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMElement_get_childNodes( element, &root_list );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMElement_get_childNodes( element, &root_list );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNodeList_get_item( root_list, 0, &lc_node );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMNodeList_get_item( root_list, 0, &lc_node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNodeList_get_item( root_list, 3, &fo_node );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMNodeList_get_item( root_list, 3, &fo_node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNode_get_childNodes( fo_node, &fo_list );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMNode_get_childNodes( fo_node, &fo_list );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNodeList_get_item( fo_list, 0, &ba_node );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMNodeList_get_item( fo_list, 0, &ba_node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNodeList_Release( fo_list );
/* invalid parameter: NULL ptr for element to remove */
removed_node = (void*)0xdeadbeef;
- r = IXMLDOMElement_replaceChild( element, ba_node, NULL, &removed_node );
- ok( r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMElement_replaceChild( element, ba_node, NULL, &removed_node );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok( removed_node == (void*)0xdeadbeef, "%p\n", removed_node );
/* invalid parameter: NULL for replacement element. (Sic!) */
removed_node = (void*)0xdeadbeef;
- r = IXMLDOMElement_replaceChild( element, NULL, fo_node, &removed_node );
- ok( r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMElement_replaceChild( element, NULL, fo_node, &removed_node );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok( removed_node == (void*)0xdeadbeef, "%p\n", removed_node );
/* invalid parameter: OldNode is not a child */
removed_node = (void*)0xdeadbeef;
- r = IXMLDOMElement_replaceChild( element, lc_node, ba_node, &removed_node );
- ok( r == E_INVALIDARG, "ret %08x\n", r );
+ hr = IXMLDOMElement_replaceChild( element, lc_node, ba_node, &removed_node );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok( removed_node == NULL, "%p\n", removed_node );
IXMLDOMNode_Release( lc_node );
/* invalid parameter: would create loop */
removed_node = (void*)0xdeadbeef;
- r = IXMLDOMNode_replaceChild( fo_node, fo_node, ba_node, &removed_node );
- ok( r == E_FAIL, "ret %08x\n", r );
+ hr = IXMLDOMNode_replaceChild( fo_node, fo_node, ba_node, &removed_node );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok( removed_node == NULL, "%p\n", removed_node );
- r = IXMLDOMElement_replaceChild( element, ba_node, fo_node, NULL );
- ok( r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMElement_replaceChild( element, ba_node, fo_node, NULL );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNodeList_get_item( root_list, 3, &temp_node );
- ok( r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMNodeList_get_item( root_list, 3, &temp_node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* ba_node and temp_node refer to the same node, yet they
are different interface pointers */
ok( ba_node != temp_node, "ba_node %p temp_node %p\n", ba_node, temp_node);
- r = IXMLDOMNode_QueryInterface( temp_node, &IID_IUnknown, (void**)&unk1);
- ok( r == S_OK, "ret %08x\n", r );
- r = IXMLDOMNode_QueryInterface( ba_node, &IID_IUnknown, (void**)&unk2);
- ok( r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMNode_QueryInterface( temp_node, &IID_IUnknown, (void**)&unk1);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNode_QueryInterface( ba_node, &IID_IUnknown, (void**)&unk2);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine ok( unk1 == unk2, "unk1 %p unk2 %p\n", unk1, unk2);
IUnknown_Release( unk1 );
IUnknown_Release( unk2 );
/* ba_node should have been removed from below fo_node */
- r = IXMLDOMNode_get_childNodes( fo_node, &fo_list );
- ok( r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMNode_get_childNodes( fo_node, &fo_list );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* MS quirk: replaceChild also accepts elements instead of nodes */
- r = IXMLDOMNode_QueryInterface( ba_node, &IID_IXMLDOMElement, (void**)&ba_element);
- ok( r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMNode_QueryInterface( ba_node, &IID_IXMLDOMElement, (void**)&ba_element);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(ba_element, 2);
removed_node = NULL;
- r = IXMLDOMElement_replaceChild( element, ba_node, (IXMLDOMNode*)ba_element, &removed_node );
- ok( r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMElement_replaceChild( element, ba_node, (IXMLDOMNode*)ba_element, &removed_node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( removed_node != NULL, "got %p\n", removed_node);
EXPECT_REF(ba_element, 3);
IXMLDOMElement_Release( ba_element );
- r = IXMLDOMNodeList_get_length( fo_list, &len);
- ok( r == S_OK, "ret %08x\n", r );
- ok( len == 0, "len %d\n", len);
+ hr = IXMLDOMNodeList_get_length( fo_list, &len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(len == 0, "len %ld\n", len);
IXMLDOMNodeList_Release( fo_list );
@@ -4010,81 +4066,122 @@ static void test_removeNamedItem(void)
{
IXMLDOMDocument *doc;
IXMLDOMElement *element;
- IXMLDOMNode *pr_node, *removed_node, *removed_node2;
+ IXMLDOMNode *node, *removed_node, *removed_node2;
IXMLDOMNodeList *root_list;
- IXMLDOMNamedNodeMap * pr_attrs;
+ IXMLDOMNamedNodeMap *map;
VARIANT_BOOL b;
+ HRESULT hr;
BSTR str;
LONG len;
- HRESULT r;
doc = create_document(&IID_IXMLDOMDocument);
- r = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
- ok( r == S_OK, "loadXML failed\n");
+ hr = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
+ ok(hr == S_OK, "loadXML failed\n");
ok( b == VARIANT_TRUE, "failed to load XML string\n");
- r = IXMLDOMDocument_get_documentElement( doc, &element );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMDocument_get_documentElement( doc, &element );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMElement_get_childNodes( element, &root_list );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMElement_get_childNodes( element, &root_list );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNodeList_get_item( root_list, 1, &pr_node );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMNodeList_get_item( root_list, 1, &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNode_get_attributes( pr_node, &pr_attrs );
- ok( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMNode_get_attributes( node, &map );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNamedNodeMap_get_length( pr_attrs, &len );
- ok( r == S_OK, "ret %08x\n", r);
- ok( len == 3, "length %d\n", len);
+ hr = IXMLDOMNamedNodeMap_get_length( map, &len );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok( len == 3, "length %ld\n", len);
removed_node = (void*)0xdeadbeef;
- r = IXMLDOMNamedNodeMap_removeNamedItem( pr_attrs, NULL, &removed_node);
- ok ( r == E_INVALIDARG, "ret %08x\n", r);
- ok ( removed_node == (void*)0xdeadbeef, "got %p\n", removed_node);
+ hr = IXMLDOMNamedNodeMap_removeNamedItem( map, NULL, &removed_node );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+ ok(removed_node == (void*)0xdeadbeef, "got %p\n", removed_node);
removed_node = (void*)0xdeadbeef;
- str = SysAllocString(szvr);
- r = IXMLDOMNamedNodeMap_removeNamedItem( pr_attrs, str, &removed_node);
- ok ( r == S_OK, "ret %08x\n", r);
+ str = SysAllocString(L"vr");
+ hr = IXMLDOMNamedNodeMap_removeNamedItem( map, str, &removed_node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
removed_node2 = (void*)0xdeadbeef;
- r = IXMLDOMNamedNodeMap_removeNamedItem( pr_attrs, str, &removed_node2);
- ok ( r == S_FALSE, "ret %08x\n", r);
- ok ( removed_node2 == NULL, "got %p\n", removed_node2 );
+ hr = IXMLDOMNamedNodeMap_removeNamedItem( map, str, &removed_node2 );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ ok(removed_node2 == NULL, "got %p\n", removed_node2 );
- r = IXMLDOMNamedNodeMap_get_length( pr_attrs, &len );
- ok( r == S_OK, "ret %08x\n", r);
- ok( len == 2, "length %d\n", len);
+ hr = IXMLDOMNamedNodeMap_get_length( map, &len );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(len == 2, "length %ld\n", len);
- r = IXMLDOMNamedNodeMap_setNamedItem( pr_attrs, removed_node, NULL);
- ok ( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMNamedNodeMap_setNamedItem( map, removed_node, NULL );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(removed_node);
- r = IXMLDOMNamedNodeMap_get_length( pr_attrs, &len );
- ok( r == S_OK, "ret %08x\n", r);
- ok( len == 3, "length %d\n", len);
+ hr = IXMLDOMNamedNodeMap_get_length( map, &len );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(len == 3, "length %ld\n", len);
- r = IXMLDOMNamedNodeMap_removeNamedItem( pr_attrs, str, NULL);
- ok ( r == S_OK, "ret %08x\n", r);
+ hr = IXMLDOMNamedNodeMap_removeNamedItem( map, str, NULL );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- r = IXMLDOMNamedNodeMap_get_length( pr_attrs, &len );
- ok( r == S_OK, "ret %08x\n", r);
- ok( len == 2, "length %d\n", len);
+ hr = IXMLDOMNamedNodeMap_get_length( map, &len );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(len == 2, "length %ld\n", len);
- r = IXMLDOMNamedNodeMap_removeNamedItem( pr_attrs, str, NULL);
- ok ( r == S_FALSE, "ret %08x\n", r);
+ hr = IXMLDOMNamedNodeMap_removeNamedItem( map, str, NULL );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
SysFreeString(str);
- IXMLDOMNamedNodeMap_Release( pr_attrs );
- IXMLDOMNode_Release( pr_node );
+ IXMLDOMNamedNodeMap_Release( map );
+ IXMLDOMNode_Release( node );
IXMLDOMNodeList_Release( root_list );
IXMLDOMElement_Release( element );
- IXMLDOMDocument_Release( doc );
+ /* test with namespaces */
+ hr = IXMLDOMDocument_loadXML( doc, _bstr_(default_ns_doc), &b );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IXMLDOMDocument_selectSingleNode( doc, _bstr_("a"), &node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IXMLDOMNode_QueryInterface( node, &IID_IXMLDOMElement, (void**)&element );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ IXMLDOMNode_Release( node );
+
+ hr = IXMLDOMElement_get_attributes( element, &map );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ removed_node = (void*)0xdeadbeef;
+ hr = IXMLDOMNamedNodeMap_removeNamedItem( map, _bstr_("foo:bar"), &removed_node );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ ok ( removed_node == NULL, "got %p\n", removed_node );
+
+ removed_node = NULL;
+ hr = IXMLDOMNamedNodeMap_removeNamedItem( map, _bstr_("d"), &removed_node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ IXMLDOMNode_Release( removed_node );
+
+ removed_node = NULL;
+ hr = IXMLDOMNamedNodeMap_removeNamedItem( map, _bstr_("ns:b"), &removed_node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ IXMLDOMNode_Release( removed_node );
+
+ removed_node = NULL;
+ hr = IXMLDOMNamedNodeMap_removeNamedItem( map, _bstr_("xml:lang"), &removed_node );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ IXMLDOMNode_Release( removed_node );
+
+ len = -1;
+ hr = IXMLDOMNamedNodeMap_get_length( map, &len );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok( len == 2, "length %ld\n", len );
+
+ IXMLDOMNamedNodeMap_Release( map );
+ IXMLDOMElement_Release( element );
+ IXMLDOMDocument_Release( doc );
free_bstrs();
}
@@ -4098,30 +4195,30 @@ static void _test_IObjectSafety_set(unsigned line, IObjectSafety *safety, HRESUL
hr = IObjectSafety_SetInterfaceSafetyOptions(safety, NULL, set, mask);
if (result == result2)
- ok_(__FILE__,line)(hr == result, "SetInterfaceSafetyOptions: expected %08x, returned %08x\n", result, hr );
+ ok_(__FILE__,line)(hr == result, "SetInterfaceSafetyOptions: expected %#lx, returned %#lx\n", result, hr );
else
ok_(__FILE__,line)(broken(hr == result) || hr == result2,
- "SetInterfaceSafetyOptions: expected %08x, got %08x\n", result2, hr );
+ "SetInterfaceSafetyOptions: expected %#lx, got %#lx\n", result2, hr );
supported = enabled = 0xCAFECAFE;
hr = IObjectSafety_GetInterfaceSafetyOptions(safety, NULL, &supported, &enabled);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
if (expected == expected2)
- ok_(__FILE__,line)(enabled == expected, "Expected %08x, got %08x\n", expected, enabled);
+ ok_(__FILE__,line)(enabled == expected, "Expected %#lx, got %#lx\n", expected, enabled);
else
ok_(__FILE__,line)(broken(enabled == expected) || enabled == expected2,
- "Expected %08x, got %08x\n", expected2, enabled);
+ "Expected %#lx, got %#lx\n", expected2, enabled);
/* reset the safety options */
hr = IObjectSafety_SetInterfaceSafetyOptions(safety, NULL,
INTERFACESAFE_FOR_UNTRUSTED_CALLER|INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_SECURITY_MANAGER,
0);
- ok_(__FILE__,line)(hr == S_OK, "ret %08x\n", hr );
+ ok_(__FILE__,line)(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IObjectSafety_GetInterfaceSafetyOptions(safety, NULL, &supported, &enabled);
- ok_(__FILE__,line)(hr == S_OK, "ret %08x\n", hr );
- ok_(__FILE__,line)(enabled == 0, "Expected 0, got %08x\n", enabled);
+ ok_(__FILE__,line)(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok_(__FILE__,line)(enabled == 0, "Expected 0, got %#lx\n", enabled);
}
#define test_IObjectSafety_common(s) _test_IObjectSafety_common(__LINE__,s)
@@ -4132,17 +4229,17 @@ static void _test_IObjectSafety_common(unsigned line, IObjectSafety *safety)
/* get */
hr = IObjectSafety_GetInterfaceSafetyOptions(safety, NULL, NULL, &enabled);
- ok_(__FILE__,line)(hr == E_POINTER, "ret %08x\n", hr );
+ ok_(__FILE__,line)(hr == E_POINTER, "Unexpected hr %#lx.\n", hr );
hr = IObjectSafety_GetInterfaceSafetyOptions(safety, NULL, &supported, NULL);
- ok_(__FILE__,line)(hr == E_POINTER, "ret %08x\n", hr );
+ ok_(__FILE__,line)(hr == E_POINTER, "Unexpected hr %#lx.\n", hr );
hr = IObjectSafety_GetInterfaceSafetyOptions(safety, NULL, &supported, &enabled);
- ok_(__FILE__,line)(hr == S_OK, "ret %08x\n", hr );
+ ok_(__FILE__,line)(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok_(__FILE__,line)(broken(supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA)) ||
supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER) /* msxml3 SP8+ */,
"Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER), "
- "got %08x\n", supported);
- ok_(__FILE__,line)(enabled == 0, "Expected 0, got %08x\n", enabled);
+ "got %#lx\n", supported);
+ ok_(__FILE__,line)(enabled == 0, "Expected 0, got %#lx\n", enabled);
/* set -- individual flags */
@@ -4197,40 +4294,39 @@ static void _test_IObjectSafety_common(unsigned line, IObjectSafety *safety)
hr = IObjectSafety_SetInterfaceSafetyOptions(safety, NULL,
INTERFACESAFE_FOR_UNTRUSTED_CALLER,
INTERFACESAFE_FOR_UNTRUSTED_CALLER);
- ok_(__FILE__,line)(hr == S_OK, "ret %08x\n", hr );
+ ok_(__FILE__,line)(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IObjectSafety_GetInterfaceSafetyOptions(safety, NULL, &supported, &enabled);
- ok_(__FILE__,line)(hr == S_OK, "ret %08x\n", hr );
- ok_(__FILE__,line)(enabled == INTERFACESAFE_FOR_UNTRUSTED_CALLER, "Expected INTERFACESAFE_FOR_UNTRUSTED_CALLER got %08x\n", enabled);
+ ok_(__FILE__,line)(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok_(__FILE__,line)(enabled == INTERFACESAFE_FOR_UNTRUSTED_CALLER, "Expected INTERFACESAFE_FOR_UNTRUSTED_CALLER got %#lx\n", enabled);
ok_(__FILE__,line)(broken(supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA)) ||
supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER) /* msxml3 SP8+ */,
"Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER), "
- "got %08x\n", supported);
+ "got %#lx.\n", supported);
hr = IObjectSafety_SetInterfaceSafetyOptions(safety, NULL,
INTERFACESAFE_FOR_UNTRUSTED_DATA,
INTERFACESAFE_FOR_UNTRUSTED_DATA);
- ok_(__FILE__,line)(hr == S_OK, "ret %08x\n", hr );
+ ok_(__FILE__,line)(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IObjectSafety_GetInterfaceSafetyOptions(safety, NULL, &supported, &enabled);
- ok_(__FILE__,line)(hr == S_OK, "ret %08x\n", hr );
+ ok_(__FILE__,line)(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok_(__FILE__,line)(broken(enabled == INTERFACESAFE_FOR_UNTRUSTED_DATA) ||
enabled == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA),
- "Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA) got %08x\n", enabled);
+ "Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA) got %#lx\n", enabled);
ok_(__FILE__,line)(broken(supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA)) ||
supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER) /* msxml3 SP8+ */,
"Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER), "
- "got %08x\n", supported);
+ "got %#lx\n", supported);
}
static void test_IXMLDOMDocument2(void)
{
- static const WCHAR emptyW[] = {0};
IXMLDOMDocument2 *doc2, *dtddoc2;
IXMLDOMDocument *doc;
IXMLDOMParseError* err;
IDispatchEx *dispex;
VARIANT_BOOL b;
VARIANT var;
- HRESULT r;
+ HRESULT hr;
LONG res;
if (!is_clsid_supported(&CLSID_DOMDocument2, &IID_IXMLDOMDocument2)) return;
@@ -4238,52 +4334,58 @@ static void test_IXMLDOMDocument2(void)
doc = create_document(&IID_IXMLDOMDocument);
dtddoc2 = create_document(&IID_IXMLDOMDocument2);
- r = IXMLDOMDocument_QueryInterface( doc, &IID_IXMLDOMDocument2, (void**)&doc2 );
- ok( r == S_OK, "ret %08x\n", r );
+ hr = IXMLDOMDocument_QueryInterface( doc, &IID_IXMLDOMDocument2, (void**)&doc2 );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( doc == (IXMLDOMDocument*)doc2, "interfaces differ\n");
- ole_expect(IXMLDOMDocument2_get_readyState(doc2, NULL), E_INVALIDARG);
- ole_check(IXMLDOMDocument2_get_readyState(doc2, &res));
- ok(res == READYSTATE_COMPLETE, "expected READYSTATE_COMPLETE (4), got %i\n", res);
+ hr = IXMLDOMDocument2_get_readyState(doc2, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument2_get_readyState(doc2, &res);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(res == READYSTATE_COMPLETE, "expected READYSTATE_COMPLETE (4), got %ld\n", res);
err = NULL;
- ole_expect(IXMLDOMDocument2_validate(doc2, NULL), S_FALSE);
- ole_expect(IXMLDOMDocument2_validate(doc2, &err), S_FALSE);
+ hr = IXMLDOMDocument2_validate(doc2, NULL);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument2_validate(doc2, &err);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(err != NULL, "expected a pointer\n");
if (err)
{
res = 0;
- ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ hr = IXMLDOMParseError_get_errorCode(err, &res);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* XML_E_NOTWF */
- ok(res == E_XML_NOTWF, "got %08x\n", res);
+ ok(res == E_XML_NOTWF, "Unexpected code %#lx.\n", res);
IXMLDOMParseError_Release(err);
}
- r = IXMLDOMDocument2_loadXML( doc2, _bstr_(complete4A), &b );
- ok( r == S_OK, "loadXML failed\n");
+ hr = IXMLDOMDocument2_loadXML( doc2, _bstr_(complete4A), &b );
+ ok(hr == S_OK, "loadXML failed\n");
ok( b == VARIANT_TRUE, "failed to load XML string\n");
- ole_check(IXMLDOMDocument_get_readyState(doc, &res));
- ok(res == READYSTATE_COMPLETE, "expected READYSTATE_COMPLETE (4), got %i\n", res);
+ hr = IXMLDOMDocument_get_readyState(doc, &res);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(res == READYSTATE_COMPLETE, "expected READYSTATE_COMPLETE (4), got %ld\n", res);
err = NULL;
- ole_expect(IXMLDOMDocument2_validate(doc2, &err), S_FALSE);
+ hr = IXMLDOMDocument2_validate(doc2, &err);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(err != NULL, "expected a pointer\n");
if (err)
{
res = 0;
- ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ hr = IXMLDOMParseError_get_errorCode(err, &res);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* XML_E_NODTD */
- ok(res == E_XML_NODTD, "got %08x\n", res);
+ ok(res == E_XML_NODTD, "Unexpected code %#lx.\n", res);
IXMLDOMParseError_Release(err);
}
- r = IXMLDOMDocument_QueryInterface( doc, &IID_IDispatchEx, (void**)&dispex );
- ok( r == S_OK, "ret %08x\n", r );
- if(r == S_OK)
- {
+ hr = IXMLDOMDocument_QueryInterface( doc, &IID_IDispatchEx, (void**)&dispex );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ if(hr == S_OK)
IDispatchEx_Release(dispex);
- }
/* we will check if the variant got cleared */
IXMLDOMDocument2_AddRef(doc2);
@@ -4293,12 +4395,15 @@ static void test_IXMLDOMDocument2(void)
V_UNKNOWN(&var) = (IUnknown *)doc2;
/* invalid calls */
- ole_expect(IXMLDOMDocument2_getProperty(doc2, _bstr_("askldhfaklsdf"), &var), E_FAIL);
+ hr = IXMLDOMDocument2_getProperty(doc2, _bstr_("askldhfaklsdf"), &var);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
expect_eq(V_VT(&var), VT_UNKNOWN, int, "%x");
- ole_expect(IXMLDOMDocument2_getProperty(doc2, _bstr_("SelectionLanguage"), NULL), E_INVALIDARG);
+ hr = IXMLDOMDocument2_getProperty(doc2, _bstr_("SelectionLanguage"), NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
/* valid call */
- ole_check(IXMLDOMDocument2_getProperty(doc2, _bstr_("SelectionLanguage"), &var));
+ hr = IXMLDOMDocument2_getProperty(doc2, _bstr_("SelectionLanguage"), &var);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_eq(V_VT(&var), VT_BSTR, int, "%x");
expect_bstr_eq_and_free(V_BSTR(&var), "XSLPattern");
V_VT(&var) = VT_R4;
@@ -4307,26 +4412,33 @@ static void test_IXMLDOMDocument2(void)
expect_eq(IXMLDOMDocument2_Release(doc2), 2, int, "%d");
/* setProperty tests */
- ole_expect(IXMLDOMDocument2_setProperty(doc2, _bstr_("askldhfaklsdf"), var), E_FAIL);
- ole_expect(IXMLDOMDocument2_setProperty(doc2, _bstr_("SelectionLanguage"), var), E_FAIL);
- ole_expect(IXMLDOMDocument2_setProperty(doc2, _bstr_("SelectionLanguage"), _variantbstr_("alskjdh faklsjd hfk")), E_FAIL);
- ole_check(IXMLDOMDocument2_setProperty(doc2, _bstr_("SelectionLanguage"), _variantbstr_("XSLPattern")));
- ole_check(IXMLDOMDocument2_setProperty(doc2, _bstr_("SelectionLanguage"), _variantbstr_("XPath")));
- ole_check(IXMLDOMDocument2_setProperty(doc2, _bstr_("SelectionLanguage"), _variantbstr_("XSLPattern")));
+ hr = IXMLDOMDocument2_setProperty(doc2, _bstr_("askldhfaklsdf"), var);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument2_setProperty(doc2, _bstr_("SelectionLanguage"), var);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument2_setProperty(doc2, _bstr_("SelectionLanguage"), _variantbstr_("alskjdh faklsjd hfk"));
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument2_setProperty(doc2, _bstr_("SelectionLanguage"), _variantbstr_("XSLPattern"));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument2_setProperty(doc2, _bstr_("SelectionLanguage"), _variantbstr_("XPath"));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument2_setProperty(doc2, _bstr_("SelectionLanguage"), _variantbstr_("XSLPattern"));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&var) = VT_BSTR;
- V_BSTR(&var) = SysAllocString(emptyW);
- r = IXMLDOMDocument2_setProperty(doc2, _bstr_("SelectionNamespaces"), var);
- ok(r == S_OK, "got 0x%08x\n", r);
+ V_BSTR(&var) = SysAllocString(L"");
+ hr = IXMLDOMDocument2_setProperty(doc2, _bstr_("SelectionNamespaces"), var);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
VariantClear(&var);
V_VT(&var) = VT_I2;
V_I2(&var) = 0;
- r = IXMLDOMDocument2_setProperty(doc2, _bstr_("SelectionNamespaces"), var);
- ok(r == E_FAIL, "got 0x%08x\n", r);
+ hr = IXMLDOMDocument2_setProperty(doc2, _bstr_("SelectionNamespaces"), var);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
/* contrary to what MSDN claims you can switch back from XPath to XSLPattern */
- ole_check(IXMLDOMDocument2_getProperty(doc2, _bstr_("SelectionLanguage"), &var));
+ hr = IXMLDOMDocument2_getProperty(doc2, _bstr_("SelectionLanguage"), &var);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_eq(V_VT(&var), VT_BSTR, int, "%x");
expect_bstr_eq_and_free(V_BSTR(&var), "XSLPattern");
@@ -4334,157 +4446,191 @@ static void test_IXMLDOMDocument2(void)
IXMLDOMDocument_Release( doc );
/* DTD validation */
- ole_check(IXMLDOMDocument2_put_validateOnParse(dtddoc2, VARIANT_FALSE));
- ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML), &b));
+ hr = IXMLDOMDocument2_put_validateOnParse(dtddoc2, VARIANT_FALSE);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- ole_check(IXMLDOMDocument2_validate(dtddoc2, &err));
+ hr = IXMLDOMDocument2_validate(dtddoc2, &err);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- ole_expect(IXMLDOMParseError_get_errorCode(err, &res), S_FALSE);
- ok(res == 0, "got %08x\n", res);
+ hr = IXMLDOMParseError_get_errorCode(err, &res);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ ok(res == 0, "Unexpected code %#lx.\n", res);
IXMLDOMParseError_Release(err);
}
- ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_0D), &b));
+ hr = IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_0D), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
+ hr = IXMLDOMDocument2_validate(dtddoc2, &err);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ hr = IXMLDOMParseError_get_errorCode(err, &res);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* XML_ELEMENT_UNDECLARED */
- todo_wine ok(res == 0xC00CE00D, "got %08x\n", res);
+ todo_wine ok(res == 0xC00CE00D, "Unexpected code %#lx.\n", res);
IXMLDOMParseError_Release(err);
}
- ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_0E), &b));
+ hr = IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_0E), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
+ hr = IXMLDOMDocument2_validate(dtddoc2, &err);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ hr = IXMLDOMParseError_get_errorCode(err, &res);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* XML_ELEMENT_ID_NOT_FOUND */
- todo_wine ok(res == 0xC00CE00E, "got %08x\n", res);
+ todo_wine ok(res == 0xC00CE00E, "Unexpected code %#lx.\n", res);
IXMLDOMParseError_Release(err);
}
- ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_11), &b));
+ hr = IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_11), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
+ hr = IXMLDOMDocument2_validate(dtddoc2, &err);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ hr = IXMLDOMParseError_get_errorCode(err, &res);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* XML_EMPTY_NOT_ALLOWED */
- todo_wine ok(res == 0xC00CE011, "got %08x\n", res);
+ todo_wine ok(res == 0xC00CE011, "Unexpected code %#lx.\n", res);
IXMLDOMParseError_Release(err);
}
- ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_13), &b));
+ hr = IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_13), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
+ hr = IXMLDOMDocument2_validate(dtddoc2, &err);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ hr = IXMLDOMParseError_get_errorCode(err, &res);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* XML_ROOT_NAME_MISMATCH */
- todo_wine ok(res == 0xC00CE013, "got %08x\n", res);
+ todo_wine ok(res == 0xC00CE013, "Unexpected code %#lx.\n", res);
IXMLDOMParseError_Release(err);
}
- ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_14), &b));
+ hr = IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_14), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
+ hr = IXMLDOMDocument2_validate(dtddoc2, &err);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ hr = IXMLDOMParseError_get_errorCode(err, &res);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* XML_INVALID_CONTENT */
- todo_wine ok(res == 0xC00CE014, "got %08x\n", res);
+ todo_wine ok(res == 0xC00CE014, "Unexpected code %#lx.\n", res);
IXMLDOMParseError_Release(err);
}
- ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_15), &b));
+ hr = IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_15), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
+ hr = IXMLDOMDocument2_validate(dtddoc2, &err);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ hr = IXMLDOMParseError_get_errorCode(err, &res);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* XML_ATTRIBUTE_NOT_DEFINED */
- todo_wine ok(res == 0xC00CE015, "got %08x\n", res);
+ todo_wine ok(res == 0xC00CE015, "Unexpected code %#lx.\n", res);
IXMLDOMParseError_Release(err);
}
- ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_16), &b));
+ hr = IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_16), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
+ hr = IXMLDOMDocument2_validate(dtddoc2, &err);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ hr = IXMLDOMParseError_get_errorCode(err, &res);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* XML_ATTRIBUTE_FIXED */
- todo_wine ok(res == 0xC00CE016, "got %08x\n", res);
+ todo_wine ok(res == 0xC00CE016, "Unexpected code %#lx.\n", res);
IXMLDOMParseError_Release(err);
}
- ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_17), &b));
+ hr = IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_17), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
+ hr = IXMLDOMDocument2_validate(dtddoc2, &err);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ hr = IXMLDOMParseError_get_errorCode(err, &res);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* XML_ATTRIBUTE_VALUE */
- todo_wine ok(res == 0xC00CE017, "got %08x\n", res);
+ todo_wine ok(res == 0xC00CE017, "Unexpected code %#lx.\n", res);
IXMLDOMParseError_Release(err);
}
- ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_18), &b));
+ hr = IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_18), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
+ hr = IXMLDOMDocument2_validate(dtddoc2, &err);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ hr = IXMLDOMParseError_get_errorCode(err, &res);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* XML_ILLEGAL_TEXT */
- todo_wine ok(res == 0xC00CE018, "got %08x\n", res);
+ todo_wine ok(res == 0xC00CE018, "Unexpected code %#lx.\n", res);
IXMLDOMParseError_Release(err);
}
- ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_20), &b));
+ hr = IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_20), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
+ hr = IXMLDOMDocument2_validate(dtddoc2, &err);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ hr = IXMLDOMParseError_get_errorCode(err, &res);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* XML_REQUIRED_ATTRIBUTE_MISSING */
- todo_wine ok(res == 0xC00CE020, "got %08x\n", res);
+ todo_wine ok(res == 0xC00CE020, "Unexpected code %#lx.\n", res);
IXMLDOMParseError_Release(err);
}
@@ -4492,14 +4638,9 @@ static void test_IXMLDOMDocument2(void)
free_bstrs();
}
-#define helper_ole_check(expr) { \
- HRESULT r = expr; \
- ok_(__FILE__, line)(r == S_OK, "=> %i: " #expr " returned %08x\n", __LINE__, r); \
-}
-
#define helper_ole_check_ver(expr) { \
- HRESULT r = expr; \
- ok_(__FILE__, line)(r == S_OK, "-> %i (%s): " #expr " returned %08x\n", __LINE__, ver, r); \
+ HRESULT hr = expr; \
+ ok_(__FILE__, line)(hr == S_OK, "-> %i (%s): " #expr " returned %#lx.\n", __LINE__, ver, hr); \
}
#define helper_expect_list_and_release(list, expstr) { \
@@ -4593,10 +4734,6 @@ static inline void _check_ws_preserved(int line, const char *ver, IXMLDOMDocumen
static void test_preserve_charref(IXMLDOMDocument2 *doc, VARIANT_BOOL preserve)
{
- static const WCHAR b1_p[] = {' ','T','e','x','t',' ','A',' ','e','n','d',' ',0};
- static const WCHAR b1_i[] = {'T','e','x','t',' ','A',' ','e','n','d',0};
- static const WCHAR b2_p[] = {'A','B',' ','C',' ',0};
- static const WCHAR b2_i[] = {'A','B',' ','C',0};
IXMLDOMNodeList *list;
IXMLDOMElement *root;
IXMLDOMNode *node;
@@ -4606,32 +4743,32 @@ static void test_preserve_charref(IXMLDOMDocument2 *doc, VARIANT_BOOL preserve)
BSTR s;
hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc, preserve);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument2_loadXML(doc, _bstr_(charrefsxml), &b);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument2_get_documentElement(doc, &root);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_get_childNodes(root, &list);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMElement_Release(root);
- text = preserve == VARIANT_TRUE ? b1_p : b1_i;
+ text = preserve == VARIANT_TRUE ? L" Text A end " : L"Text A end";
hr = IXMLDOMNodeList_get_item(list, 0, &node);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_text(node, &s);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!lstrcmpW(s, text), "0x%x, got %s\n", preserve, wine_dbgstr_w(s));
SysFreeString(s);
IXMLDOMNode_Release(node);
- text = preserve == VARIANT_TRUE ? b2_p : b2_i;
+ text = preserve == VARIANT_TRUE ? L"AB C " : L"AB C";
hr = IXMLDOMNodeList_get_item(list, 1, &node);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_text(node, &s);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!lstrcmpW(s, text), "0x%x, got %s\n", preserve, wine_dbgstr_w(s));
SysFreeString(s);
IXMLDOMNode_Release(node);
@@ -4675,68 +4812,87 @@ static void test_whitespace(void)
hr = CoCreateInstance(class_ptr->clsid, NULL, CLSCTX_INPROC_SERVER,
&IID_IXMLDOMDocument2, (void**)&doc1);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = CoCreateInstance(class_ptr->clsid, NULL, CLSCTX_INPROC_SERVER,
&IID_IXMLDOMDocument2, (void**)&doc2);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- ole_check(IXMLDOMDocument2_put_preserveWhiteSpace(doc2, VARIANT_TRUE));
- ole_check(IXMLDOMDocument2_get_preserveWhiteSpace(doc1, &b));
+ hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc2, VARIANT_TRUE);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc1, &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_FALSE, "expected false\n");
- ole_check(IXMLDOMDocument2_get_preserveWhiteSpace(doc2, &b));
+ hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc2, &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "expected true\n");
- ole_check(IXMLDOMDocument2_loadXML(doc1, _bstr_(szExampleXML), &b));
+ hr = IXMLDOMDocument2_loadXML(doc1, _bstr_(szExampleXML), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
- ole_check(IXMLDOMDocument2_loadXML(doc2, _bstr_(szExampleXML), &b));
+ hr = IXMLDOMDocument2_loadXML(doc2, _bstr_(szExampleXML), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
/* switch to XPath */
- ole_check(IXMLDOMDocument2_setProperty(doc1, _bstr_("SelectionLanguage"), _variantbstr_("XPath")));
- ole_check(IXMLDOMDocument2_setProperty(doc2, _bstr_("SelectionLanguage"), _variantbstr_("XPath")));
+ hr = IXMLDOMDocument2_setProperty(doc1, _bstr_("SelectionLanguage"), _variantbstr_("XPath"));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument2_setProperty(doc2, _bstr_("SelectionLanguage"), _variantbstr_("XPath"));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
check_ws_ignored(class_ptr->name, doc1, NULL);
check_ws_preserved(class_ptr->name, doc2, NULL);
/* new instances copy the property */
- ole_check(IXMLDOMDocument2_QueryInterface(doc1, &IID_IXMLDOMDocument2, (void**) &doc3));
- ole_check(IXMLDOMDocument2_QueryInterface(doc2, &IID_IXMLDOMDocument2, (void**) &doc4));
+ hr = IXMLDOMDocument2_QueryInterface(doc1, &IID_IXMLDOMDocument2, (void**) &doc3);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument2_QueryInterface(doc2, &IID_IXMLDOMDocument2, (void**) &doc4);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- ole_check(IXMLDOMDocument2_get_preserveWhiteSpace(doc3, &b));
+ hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc3, &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_FALSE, "expected false\n");
- ole_check(IXMLDOMDocument2_get_preserveWhiteSpace(doc4, &b));
+ hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc4, &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "expected true\n");
check_ws_ignored(class_ptr->name, doc3, NULL);
check_ws_preserved(class_ptr->name, doc4, NULL);
/* setting after loading xml affects trimming of leading/trailing ws only */
- ole_check(IXMLDOMDocument2_put_preserveWhiteSpace(doc1, VARIANT_TRUE));
- ole_check(IXMLDOMDocument2_put_preserveWhiteSpace(doc2, VARIANT_FALSE));
+ hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc1, VARIANT_TRUE);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc2, VARIANT_FALSE);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* the trailing "\n " isn't there, because it was ws-only node */
check_ws_ignored(class_ptr->name, doc1, " This is a description. ");
check_ws_preserved(class_ptr->name, doc2, " This is a description.");
/* it takes effect on reload */
- ole_check(IXMLDOMDocument2_get_preserveWhiteSpace(doc1, &b));
+ hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc1, &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "expected true\n");
- ole_check(IXMLDOMDocument2_get_preserveWhiteSpace(doc2, &b));
+ hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc2, &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_FALSE, "expected false\n");
- ole_check(IXMLDOMDocument2_loadXML(doc1, _bstr_(szExampleXML), &b));
+ hr = IXMLDOMDocument2_loadXML(doc1, _bstr_(szExampleXML), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
- ole_check(IXMLDOMDocument2_loadXML(doc2, _bstr_(szExampleXML), &b));
+ hr = IXMLDOMDocument2_loadXML(doc2, _bstr_(szExampleXML), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
check_ws_preserved(class_ptr->name, doc1, NULL);
check_ws_ignored(class_ptr->name, doc2, NULL);
/* other instances follow suit */
- ole_check(IXMLDOMDocument2_get_preserveWhiteSpace(doc3, &b));
+ hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc3, &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "expected true\n");
- ole_check(IXMLDOMDocument2_get_preserveWhiteSpace(doc4, &b));
+ hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc4, &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_FALSE, "expected false\n");
check_ws_preserved(class_ptr->name, doc3, NULL);
@@ -4752,20 +4908,20 @@ static void test_whitespace(void)
/* formatting whitespaces */
hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc1, VARIANT_FALSE);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument2_loadXML(doc1, _bstr_(complete7), &b);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "for %x\n", b);
hr = IXMLDOMDocument2_get_documentElement(doc1, &root);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_get_childNodes(root, &list);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = 0;
hr = IXMLDOMNodeList_get_length(list, &len);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(len == 3, "got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(len == 3, "got %ld\n", len);
IXMLDOMNodeList_Release(list);
IXMLDOMElement_Release(root);
@@ -4877,30 +5033,31 @@ static void test_XPath(void)
doc = create_document(&IID_IXMLDOMDocument2);
hr = IXMLDOMDocument2_loadXML(doc, _bstr_(szExampleXML), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
/* switch to XPath */
- ole_check(IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionLanguage"), _variantbstr_("XPath")));
+ hr = IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionLanguage"), _variantbstr_("XPath"));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* some simple queries*/
EXPECT_REF(doc, 1);
hr = IXMLDOMDocument2_selectNodes(doc, _bstr_("root"), &list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(doc, 1);
EXPECT_LIST_LEN(list, 1);
EXPECT_REF(list, 1);
hr = IXMLDOMNodeList_get_item(list, 0, &rootNode);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(list, 1);
EXPECT_REF(rootNode, 1);
hr = IXMLDOMNodeList_reset(list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_list_and_release(list, "E2.D1");
- /* peform xpath tests */
+ /* perform xpath tests */
for ( ; xptest->query ; xptest++ )
{
char *str;
@@ -4925,172 +5082,204 @@ if (0)
/* namespace:: axis test is disabled until namespace definitions
are supported as attribute nodes, currently it's another node type */
hr = IXMLDOMDocument2_selectNodes(doc, _bstr_("/root/namespace::*"), &list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = -1;
hr = IXMLDOMNodeList_get_length(list, &len);
- EXPECT_HR(hr, S_OK);
- ok(len == 2, "got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(len == 2, "got %ld\n", len);
hr = IXMLDOMNodeList_nextNode(list, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
type = NODE_INVALID;
hr = IXMLDOMNode_get_nodeType(node, &type);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(type == NODE_ATTRIBUTE, "got %d\n", type);
IXMLDOMNode_Release(node);
IXMLDOMNodeList_Release(list);
}
- ole_check(IXMLDOMDocument2_selectNodes(doc, _bstr_("root//c"), &list));
+ hr = IXMLDOMDocument2_selectNodes(doc, _bstr_("root//c"), &list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_list_and_release(list, "E3.E1.E2.D1 E3.E2.E2.D1");
- ole_check(IXMLDOMDocument2_selectNodes(doc, _bstr_("//c[@type]"), &list));
+ hr = IXMLDOMDocument2_selectNodes(doc, _bstr_("//c[@type]"), &list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_list_and_release(list, "E3.E2.E2.D1");
- ole_check(IXMLDOMNode_selectNodes(rootNode, _bstr_("elem"), &list));
+ hr = IXMLDOMNode_selectNodes(rootNode, _bstr_("elem"), &list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* using get_item for query results advances the position */
- ole_check(IXMLDOMNodeList_get_item(list, 1, &node));
+ hr = IXMLDOMNodeList_get_item(list, 1, &node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_node(node, "E2.E2.D1");
IXMLDOMNode_Release(node);
- ole_check(IXMLDOMNodeList_nextNode(list, &node));
+ hr = IXMLDOMNodeList_nextNode(list, &node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_node(node, "E4.E2.D1");
IXMLDOMNode_Release(node);
- ole_check(IXMLDOMNodeList_reset(list));
+ hr = IXMLDOMNodeList_reset(list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_list_and_release(list, "E1.E2.D1 E2.E2.D1 E4.E2.D1");
- ole_check(IXMLDOMNode_selectNodes(rootNode, _bstr_("."), &list));
+ hr = IXMLDOMNode_selectNodes(rootNode, _bstr_("."), &list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_list_and_release(list, "E2.D1");
- ole_check(IXMLDOMNode_selectNodes(rootNode, _bstr_("elem[3]/preceding-sibling::*"), &list));
- ole_check(IXMLDOMNodeList_get_item(list, 0, &elem1Node));
- ole_check(IXMLDOMNodeList_reset(list));
+ hr = IXMLDOMNode_selectNodes(rootNode, _bstr_("elem[3]/preceding-sibling::*"), &list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNodeList_get_item(list, 0, &elem1Node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNodeList_reset(list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_list_and_release(list, "E1.E2.D1 E2.E2.D1 E3.E2.D1");
/* select an attribute */
- ole_check(IXMLDOMNode_selectNodes(rootNode, _bstr_(".//@type"), &list));
+ hr = IXMLDOMNode_selectNodes(rootNode, _bstr_(".//@type"), &list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_list_and_release(list, "A'type'.E3.E2.E2.D1");
/* would evaluate to a number */
- ole_expect(IXMLDOMNode_selectNodes(rootNode, _bstr_("count(*)"), &list), E_FAIL);
+ hr = IXMLDOMNode_selectNodes(rootNode, _bstr_("count(*)"), &list);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
/* would evaluate to a boolean */
- ole_expect(IXMLDOMNode_selectNodes(rootNode, _bstr_("position()>0"), &list), E_FAIL);
+ hr = IXMLDOMNode_selectNodes(rootNode, _bstr_("position()>0"), &list);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
/* would evaluate to a string */
- ole_expect(IXMLDOMNode_selectNodes(rootNode, _bstr_("name()"), &list), E_FAIL);
+ hr = IXMLDOMNode_selectNodes(rootNode, _bstr_("name()"), &list);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
/* no results */
- ole_check(IXMLDOMNode_selectNodes(rootNode, _bstr_("c"), &list));
+ hr = IXMLDOMNode_selectNodes(rootNode, _bstr_("c"), &list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_list_and_release(list, "");
- ole_check(IXMLDOMDocument2_selectNodes(doc, _bstr_("elem//c"), &list));
+ hr = IXMLDOMDocument2_selectNodes(doc, _bstr_("elem//c"), &list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_list_and_release(list, "");
- ole_check(IXMLDOMDocument2_selectNodes(doc, _bstr_("//elem[4]"), &list));
+ hr = IXMLDOMDocument2_selectNodes(doc, _bstr_("//elem[4]"), &list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_list_and_release(list, "");
- ole_check(IXMLDOMDocument2_selectNodes(doc, _bstr_("root//elem[0]"), &list));
+ hr = IXMLDOMDocument2_selectNodes(doc, _bstr_("root//elem[0]"), &list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_list_and_release(list, "");
/* foo undeclared in document node */
- ole_expect(IXMLDOMDocument2_selectNodes(doc, _bstr_("root//foo:c"), &list), E_FAIL);
+ hr = IXMLDOMDocument2_selectNodes(doc, _bstr_("root//foo:c"), &list);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
/* undeclared in node */
- ole_expect(IXMLDOMNode_selectNodes(rootNode, _bstr_(".//foo:c"), &list), E_FAIL);
+ hr = IXMLDOMNode_selectNodes(rootNode, _bstr_(".//foo:c"), &list);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
/* undeclared in node */
- ole_expect(IXMLDOMNode_selectNodes(elem1Node, _bstr_("//foo:c"), &list), E_FAIL);
+ hr = IXMLDOMNode_selectNodes(elem1Node, _bstr_("//foo:c"), &list);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
/* but this trick can be used */
- ole_check(IXMLDOMNode_selectNodes(elem1Node, _bstr_("//*[name()='foo:c']"), &list));
+ hr = IXMLDOMNode_selectNodes(elem1Node, _bstr_("//*[name()='foo:c']"), &list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_list_and_release(list, "E3.E4.E2.D1");
/* it has to be declared in SelectionNamespaces */
- ole_check(IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"),
- _variantbstr_("xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'")));
+ hr = IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"),
+ _variantbstr_("xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'"));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* now the namespace can be used */
- ole_check(IXMLDOMDocument2_selectNodes(doc, _bstr_("root//test:c"), &list));
+ hr = IXMLDOMDocument2_selectNodes(doc, _bstr_("root//test:c"), &list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_list_and_release(list, "E3.E3.E2.D1 E3.E4.E2.D1");
- ole_check(IXMLDOMNode_selectNodes(rootNode, _bstr_(".//test:c"), &list));
+ hr = IXMLDOMNode_selectNodes(rootNode, _bstr_(".//test:c"), &list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_list_and_release(list, "E3.E3.E2.D1 E3.E4.E2.D1");
- ole_check(IXMLDOMNode_selectNodes(elem1Node, _bstr_("//test:c"), &list));
+ hr = IXMLDOMNode_selectNodes(elem1Node, _bstr_("//test:c"), &list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_list_and_release(list, "E3.E3.E2.D1 E3.E4.E2.D1");
- ole_check(IXMLDOMNode_selectNodes(elem1Node, _bstr_(".//test:x"), &list));
+ hr = IXMLDOMNode_selectNodes(elem1Node, _bstr_(".//test:x"), &list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_list_and_release(list, "E6.E1.E5.E1.E2.D1 E6.E2.E5.E1.E2.D1");
/* SelectionNamespaces syntax error - the namespaces doesn't work anymore but the value is stored */
- ole_expect(IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"),
- _variantbstr_("xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' xmlns:foo=###")), E_FAIL);
+ hr = IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"),
+ _variantbstr_("xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' xmlns:foo=###"));
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
- ole_expect(IXMLDOMDocument2_selectNodes(doc, _bstr_("root//foo:c"), &list), E_FAIL);
+ hr = IXMLDOMDocument2_selectNodes(doc, _bstr_("root//foo:c"), &list);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
VariantInit(&var);
- ole_check(IXMLDOMDocument2_getProperty(doc, _bstr_("SelectionNamespaces"), &var));
+ hr = IXMLDOMDocument2_getProperty(doc, _bstr_("SelectionNamespaces"), &var);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
expect_eq(V_VT(&var), VT_BSTR, int, "%x");
if (V_VT(&var) == VT_BSTR)
expect_bstr_eq_and_free(V_BSTR(&var), "xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' xmlns:foo=###");
/* extra attributes - same thing*/
- ole_expect(IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"),
- _variantbstr_("xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' param='test'")), E_FAIL);
- ole_expect(IXMLDOMDocument2_selectNodes(doc, _bstr_("root//foo:c"), &list), E_FAIL);
+ hr = IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"),
+ _variantbstr_("xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' param='test'"));
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument2_selectNodes(doc, _bstr_("root//foo:c"), &list);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(rootNode);
IXMLDOMNode_Release(elem1Node);
/* alter document with already built list */
hr = IXMLDOMDocument2_selectNodes(doc, _bstr_("root"), &list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_LIST_LEN(list, 1);
hr = IXMLDOMDocument2_get_lastChild(doc, &rootNode);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(rootNode, 1);
EXPECT_REF(doc, 1);
hr = IXMLDOMDocument2_removeChild(doc, rootNode, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(rootNode);
EXPECT_LIST_LEN(list, 1);
hr = IXMLDOMNodeList_get_item(list, 0, &rootNode);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(rootNode, 1);
IXMLDOMNodeList_Release(list);
hr = IXMLDOMNode_get_nodeName(rootNode, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("root")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"root"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
IXMLDOMNode_Release(rootNode);
/* alter node from list and get it another time */
hr = IXMLDOMDocument2_loadXML(doc, _bstr_(szExampleXML), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
hr = IXMLDOMDocument2_selectNodes(doc, _bstr_("root"), &list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_LIST_LEN(list, 1);
hr = IXMLDOMNodeList_get_item(list, 0, &rootNode);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_QueryInterface(rootNode, &IID_IXMLDOMElement, (void**)&elem);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&var) = VT_I2;
V_I2(&var) = 1;
hr = IXMLDOMElement_setAttribute(elem, _bstr_("attrtest"), var);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMElement_Release(elem);
IXMLDOMNode_Release(rootNode);
/* now check attribute to be present */
hr = IXMLDOMNodeList_get_item(list, 0, &rootNode);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_QueryInterface(rootNode, &IID_IXMLDOMElement, (void**)&elem);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_getAttributeNode(elem, _bstr_("attrtest"), &attr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMAttribute_Release(attr);
IXMLDOMElement_Release(elem);
@@ -5098,10 +5287,10 @@ if (0)
/* and now check for attribute in original document */
hr = IXMLDOMDocument2_get_documentElement(doc, &elem);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_getAttributeNode(elem, _bstr_("attrtest"), &attr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMAttribute_Release(attr);
IXMLDOMElement_Release(elem);
@@ -5110,19 +5299,19 @@ if (0)
doc2 = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument2_loadXML(doc, _bstr_(szExampleXML), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
hr = IXMLDOMDocument2_selectNodes(doc, _bstr_("root"), &list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_LIST_LEN(list, 1);
hr = IXMLDOMNodeList_get_item(list, 0, &rootNode);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(rootNode, 1);
hr = IXMLDOMDocument_appendChild(doc2, rootNode, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(rootNode, 1);
EXPECT_REF(doc2, 1);
EXPECT_REF(list, 1);
@@ -5139,7 +5328,7 @@ if (0)
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);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
}
else
{
@@ -5148,27 +5337,27 @@ if (0)
}
hr = IXMLDOMDocument2_loadXML(doc, _bstr_(szExampleXML), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load, %s\n", ptr->name);
hr = IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionLanguage"), _variantbstr_("XPath"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&var) = VT_BSTR;
V_BSTR(&var) = _bstr_(ptr->ns);
hr = IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"), var);
- ok(hr == ptr->hr, "got 0x%08x, for %s, %s\n", hr, ptr->name, ptr->ns);
+ ok(hr == ptr->hr, "Unexpected hr %#lx., for %s, %s\n", hr, ptr->name, ptr->ns);
V_VT(&var) = VT_EMPTY;
hr = IXMLDOMDocument2_getProperty(doc, _bstr_("SelectionNamespaces"), &var);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&var) == VT_BSTR, "got wrong property type %d\n", V_VT(&var));
ok(!lstrcmpW(V_BSTR(&var), _bstr_(ptr->ns)), "got wrong value %s\n", wine_dbgstr_w(V_BSTR(&var)));
VariantClear(&var);
hr = IXMLDOMDocument2_selectNodes(doc, _bstr_("root//test:c"), &list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if (hr == S_OK)
expect_list_and_release(list, "E3.E3.E2.D1 E3.E4.E2.D1");
@@ -5198,130 +5387,129 @@ static void test_cloneNode(void )
doc = create_document(&IID_IXMLDOMDocument2);
hr = IXMLDOMDocument2_loadXML(doc, _bstr_(complete4A), &b);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
hr = IXMLDOMDocument2_getProperty(doc, _bstr_("SelectionLanguage"), &v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(V_BSTR(&v), _bstr_("XSLPattern")), "got prop value %s\n", wine_dbgstr_w(V_BSTR(&v)));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(V_BSTR(&v), L"XSLPattern"), "got prop value %s\n", wine_dbgstr_w(V_BSTR(&v)));
VariantClear(&v);
V_BSTR(&v) = _bstr_("XPath");
V_VT(&v) = VT_BSTR;
hr = IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionLanguage"), v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- VariantClear(&v);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* clone document node */
hr = IXMLDOMDocument2_cloneNode(doc, VARIANT_TRUE, &node);
- ok( hr == S_OK, "ret %08x\n", hr );
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok( node != NULL, "node %p\n", node );
hr = IXMLDOMNode_get_childNodes(node, &pList);
- ok( hr == S_OK, "ret %08x\n", hr );
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr );
length = 0;
hr = IXMLDOMNodeList_get_length(pList, &length);
- ok( hr == S_OK, "ret %08x\n", hr );
- ok(length == 2, "got %d\n", length);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(length == 2, "got %ld\n", length);
IXMLDOMNodeList_Release(pList);
hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMDocument2, (void**)&doc_clone);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* cloned document inherits properties */
hr = IXMLDOMDocument2_getProperty(doc_clone, _bstr_("SelectionLanguage"), &v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(V_BSTR(&v), _bstr_("XPath")), "got prop value %s\n", wine_dbgstr_w(V_BSTR(&v)));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(V_BSTR(&v), L"XPath"), "got prop value %s\n", wine_dbgstr_w(V_BSTR(&v)));
VariantClear(&v);
IXMLDOMDocument2_Release(doc_clone);
IXMLDOMNode_Release(node);
hr = IXMLDOMDocument2_selectSingleNode(doc, _bstr_("lc/pr"), &node);
- ok( hr == S_OK, "ret %08x\n", hr );
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok( node != NULL, "node %p\n", node );
/* Check invalid parameter */
hr = IXMLDOMNode_cloneNode(node, VARIANT_TRUE, NULL);
- ok( hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok( hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
/* All Children */
hr = IXMLDOMNode_cloneNode(node, VARIANT_TRUE, &node_clone);
- ok( hr == S_OK, "ret %08x\n", hr );
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok( node_clone != NULL, "node %p\n", node );
hr = IXMLDOMNode_get_firstChild(node_clone, &node_first);
- ok( hr == S_OK, "ret %08x\n", hr );
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMNode_get_ownerDocument(node_clone, &doc2);
- ok( hr == S_OK, "ret %08x\n", hr );
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr );
IXMLDOMDocument_Release(doc2);
IXMLDOMNode_Release(node_first);
hr = IXMLDOMNode_get_childNodes(node, &pList);
- ok( hr == S_OK, "ret %08x\n", hr );
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr );
length = 0;
hr = IXMLDOMNodeList_get_length(pList, &length);
- ok( hr == S_OK, "ret %08x\n", hr );
- ok(length == 1, "got %d\n", length);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(length == 1, "got %ld\n", length);
IXMLDOMNodeList_Release(pList);
hr = IXMLDOMNode_get_attributes(node, &mapAttr);
- ok( hr == S_OK, "ret %08x\n", hr );
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr );
attr_cnt = 0;
hr = IXMLDOMNamedNodeMap_get_length(mapAttr, &attr_cnt);
- ok( hr == S_OK, "ret %08x\n", hr );
- ok(attr_cnt == 3, "got %d\n", attr_cnt);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(attr_cnt == 3, "got %ld\n", attr_cnt);
IXMLDOMNamedNodeMap_Release(mapAttr);
hr = IXMLDOMNode_get_childNodes(node_clone, &pList);
- ok( hr == S_OK, "ret %08x\n", hr );
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr );
length1 = 0;
hr = IXMLDOMNodeList_get_length(pList, &length1);
- ok(length1 == 1, "got %d\n", length1);
- ok( hr == S_OK, "ret %08x\n", hr );
+ ok(length1 == 1, "got %ld\n", length1);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr );
IXMLDOMNodeList_Release(pList);
hr = IXMLDOMNode_get_attributes(node_clone, &mapAttr);
- ok( hr == S_OK, "ret %08x\n", hr );
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr );
attr_cnt1 = 0;
hr = IXMLDOMNamedNodeMap_get_length(mapAttr, &attr_cnt1);
- ok( hr == S_OK, "ret %08x\n", hr );
- ok(attr_cnt1 == 3, "got %d\n", attr_cnt1);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(attr_cnt1 == 3, "got %ld\n", attr_cnt1);
/* now really get some attributes from cloned element */
attr = NULL;
hr = IXMLDOMNamedNodeMap_getNamedItem(mapAttr, _bstr_("id"), &attr);
- ok(hr == S_OK, "ret %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(attr);
IXMLDOMNamedNodeMap_Release(mapAttr);
- ok(length == length1, "wrong Child count (%d, %d)\n", length, length1);
- ok(attr_cnt == attr_cnt1, "wrong Attribute count (%d, %d)\n", attr_cnt, attr_cnt1);
+ ok(length == length1, "wrong Child count (%ld, %ld)\n", length, length1);
+ ok(attr_cnt == attr_cnt1, "wrong Attribute count (%ld, %ld)\n", attr_cnt, attr_cnt1);
IXMLDOMNode_Release(node_clone);
/* No Children */
hr = IXMLDOMNode_cloneNode(node, VARIANT_FALSE, &node_clone);
- ok( hr == S_OK, "ret %08x\n", hr );
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok( node_clone != NULL, "node %p\n", node );
hr = IXMLDOMNode_get_firstChild(node_clone, &node_first);
- ok(hr == S_FALSE, "ret %08x\n", hr );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMNode_get_childNodes(node_clone, &pList);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMNodeList_get_length(pList, &length1);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( length1 == 0, "Length should be 0 (%d)\n", length1);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok( length1 == 0, "Length should be 0 (%ld)\n", length1);
IXMLDOMNodeList_Release(pList);
hr = IXMLDOMNode_get_attributes(node_clone, &mapAttr);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMNamedNodeMap_get_length(mapAttr, &attr_cnt1);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok(attr_cnt1 == 3, "Attribute count should be 3 (%d)\n", attr_cnt1);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(attr_cnt1 == 3, "Attribute count should be 3 (%ld)\n", attr_cnt1);
IXMLDOMNamedNodeMap_Release(mapAttr);
- ok(length != length1, "wrong Child count (%d, %d)\n", length, length1);
- ok(attr_cnt == attr_cnt1, "wrong Attribute count (%d, %d)\n", attr_cnt, attr_cnt1);
+ ok(length != length1, "wrong Child count (%ld, %ld)\n", length, length1);
+ ok(attr_cnt == attr_cnt1, "wrong Attribute count (%ld, %ld)\n", attr_cnt, attr_cnt1);
IXMLDOMNode_Release(node_clone);
IXMLDOMNode_Release(node);
@@ -5350,76 +5538,76 @@ static void test_xmlTypes(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_get_nextSibling(doc, NULL);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
pNextChild = (void*)0xdeadbeef;
hr = IXMLDOMDocument_get_nextSibling(doc, &pNextChild);
- ok(hr == S_FALSE, "ret %08x\n", hr );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
ok(pNextChild == NULL, "pDocChild not NULL\n");
/* test previous Sibling */
hr = IXMLDOMDocument_get_previousSibling(doc, NULL);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
pNextChild = (void*)0xdeadbeef;
hr = IXMLDOMDocument_get_previousSibling(doc, &pNextChild);
- ok(hr == S_FALSE, "ret %08x\n", hr );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
ok(pNextChild == NULL, "pNextChild not NULL\n");
/* test get_dataType */
V_VT(&v) = VT_EMPTY;
hr = IXMLDOMDocument_get_dataType(doc, &v);
- ok(hr == S_FALSE, "ret %08x\n", hr );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
ok( V_VT(&v) == VT_NULL, "incorrect dataType type\n");
VariantClear(&v);
/* test implementation */
hr = IXMLDOMDocument_get_implementation(doc, NULL);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMDocument_get_implementation(doc, &pIXMLDOMImplementation);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
if(hr == S_OK)
{
VARIANT_BOOL hasFeature = VARIANT_TRUE;
BSTR sEmpty = SysAllocStringLen(NULL, 0);
hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation, NULL, sEmpty, &hasFeature);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation, sEmpty, sEmpty, NULL);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation, _bstr_("DOM"), sEmpty, &hasFeature);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok(hasFeature == VARIANT_FALSE, "hasFeature returned false\n");
hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation, sEmpty, sEmpty, &hasFeature);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok(hasFeature == VARIANT_FALSE, "hasFeature returned true\n");
hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation, _bstr_("DOM"), NULL, &hasFeature);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok(hasFeature == VARIANT_TRUE, "hasFeature returned false\n");
hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation, _bstr_("DOM"), sEmpty, &hasFeature);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok(hasFeature == VARIANT_FALSE, "hasFeature returned false\n");
hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation, _bstr_("DOM"), _bstr_("1.0"), &hasFeature);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok(hasFeature == VARIANT_TRUE, "hasFeature returned true\n");
hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation, _bstr_("XML"), _bstr_("1.0"), &hasFeature);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok(hasFeature == VARIANT_TRUE, "hasFeature returned true\n");
hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation, _bstr_("MS-DOM"), _bstr_("1.0"), &hasFeature);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok(hasFeature == VARIANT_TRUE, "hasFeature returned true\n");
hr = IXMLDOMImplementation_hasFeature(pIXMLDOMImplementation, _bstr_("SSS"), NULL, &hasFeature);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok(hasFeature == VARIANT_FALSE, "hasFeature returned false\n");
SysFreeString(sEmpty);
@@ -5428,437 +5616,437 @@ static void test_xmlTypes(void)
pRoot = (IXMLDOMElement*)0x1;
hr = IXMLDOMDocument_createElement(doc, NULL, &pRoot);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
ok(pRoot == (void*)0x1, "Expect same ptr, got %p\n", pRoot);
pRoot = (IXMLDOMElement*)0x1;
hr = IXMLDOMDocument_createElement(doc, _bstr_(""), &pRoot);
- ok(hr == E_FAIL, "ret %08x\n", hr );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr );
ok(pRoot == (void*)0x1, "Expect same ptr, got %p\n", pRoot);
hr = IXMLDOMDocument_createElement(doc, _bstr_("Testing"), &pRoot);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
if(hr == S_OK)
{
hr = IXMLDOMDocument_appendChild(doc, (IXMLDOMNode*)pRoot, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
if(hr == S_OK)
{
/* Comment */
- str = SysAllocString(szComment);
+ str = SysAllocString(L"A Comment");
hr = IXMLDOMDocument_createComment(doc, str, &pComment);
SysFreeString(str);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
if(hr == S_OK)
{
hr = IXMLDOMElement_appendChild(pRoot, (IXMLDOMNode*)pComment, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_get_nodeName(pComment, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, szCommentNodeText ), "incorrect comment node Name\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok( !lstrcmpW( str, L"#comment" ), "incorrect comment node Name\n");
SysFreeString(str);
hr = IXMLDOMComment_get_xml(pComment, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, szCommentXML ), "incorrect comment xml\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok( !lstrcmpW( str, L"" ), "incorrect comment xml\n");
SysFreeString(str);
/* put data Tests */
hr = IXMLDOMComment_put_data(pComment, _bstr_("This &is a ; test <>\\"));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
/* get data Tests */
hr = IXMLDOMComment_get_data(pComment, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("This &is a ; test <>\\") ), "incorrect get_data string\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"This &is a ; test <>\\"), "incorrect get_data string\n");
SysFreeString(str);
/* Confirm XML text is good */
hr = IXMLDOMComment_get_xml(pComment, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("") ), "incorrect xml string\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L""), "incorrect xml string\n");
SysFreeString(str);
/* Confirm we get the put_data Text back */
hr = IXMLDOMComment_get_text(pComment, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("This &is a ; test <>\\") ), "incorrect xml string\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"This &is a ; test <>\\"), "incorrect xml string\n");
SysFreeString(str);
/* test length property */
hr = IXMLDOMComment_get_length(pComment, &len);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok(len == 21, "expected 21 got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(len == 21, "expected 21 got %ld\n", len);
/* test substringData */
hr = IXMLDOMComment_substringData(pComment, 0, 4, NULL);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
/* test substringData - Invalid offset */
str = (void *)0xdeadbeef;
hr = IXMLDOMComment_substringData(pComment, -1, 4, &str);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
ok( str == NULL, "incorrect string\n");
/* test substringData - Invalid offset */
str = (void *)0xdeadbeef;
hr = IXMLDOMComment_substringData(pComment, 30, 0, &str);
- ok(hr == S_FALSE, "ret %08x\n", hr );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
ok( str == NULL, "incorrect string\n");
/* test substringData - Invalid size */
str = (void *)0xdeadbeef;
hr = IXMLDOMComment_substringData(pComment, 0, -1, &str);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
ok( str == NULL, "incorrect string\n");
/* test substringData - Invalid size */
str = (void *)0xdeadbeef;
hr = IXMLDOMComment_substringData(pComment, 2, 0, &str);
- ok(hr == S_FALSE, "ret %08x\n", hr );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
ok( str == NULL, "incorrect string\n");
/* test substringData - Start of string */
hr = IXMLDOMComment_substringData(pComment, 0, 4, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("This") ), "incorrect substringData string\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"This"), "incorrect substringData string\n");
SysFreeString(str);
/* test substringData - Middle of string */
hr = IXMLDOMComment_substringData(pComment, 13, 4, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("test") ), "incorrect substringData string\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"test"), "incorrect substringData string\n");
SysFreeString(str);
/* test substringData - End of string */
hr = IXMLDOMComment_substringData(pComment, 20, 4, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("\\") ), "incorrect substringData string\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"\\"), "incorrect substringData string\n");
SysFreeString(str);
/* test appendData */
hr = IXMLDOMComment_appendData(pComment, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_appendData(pComment, _bstr_(""));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_appendData(pComment, _bstr_("Append"));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_get_text(pComment, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("This &is a ; test <>\\Append") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"This &is a ; test <>\\Append"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* test insertData */
str = SysAllocStringLen(NULL, 0);
hr = IXMLDOMComment_insertData(pComment, -1, str);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_insertData(pComment, -1, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_insertData(pComment, 1000, str);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_insertData(pComment, 1000, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_insertData(pComment, 0, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_insertData(pComment, 0, str);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
SysFreeString(str);
hr = IXMLDOMComment_insertData(pComment, -1, _bstr_("Inserting"));
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_insertData(pComment, 1000, _bstr_("Inserting"));
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_insertData(pComment, 0, _bstr_("Begin "));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_insertData(pComment, 17, _bstr_("Middle"));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_insertData(pComment, 39, _bstr_(" End"));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_get_text(pComment, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("Begin This &is a Middle; test <>\\Append End") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"Begin This &is a Middle; test <>\\Append End"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* delete data */
/* invalid arguments */
hr = IXMLDOMComment_deleteData(pComment, -1, 1);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_deleteData(pComment, 0, 0);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_deleteData(pComment, 0, -1);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_get_length(pComment, &len);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok(len == 43, "expected 43 got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(len == 43, "expected 43 got %ld\n", len);
hr = IXMLDOMComment_deleteData(pComment, len, 1);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_deleteData(pComment, len+1, 1);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
/* delete from start */
hr = IXMLDOMComment_deleteData(pComment, 0, 5);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_get_length(pComment, &len);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok(len == 38, "expected 38 got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(len == 38, "expected 38 got %ld\n", len);
hr = IXMLDOMComment_get_text(pComment, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_(" This &is a Middle; test <>\\Append End") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L" This &is a Middle; test <>\\Append End"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* delete from end */
hr = IXMLDOMComment_deleteData(pComment, 35, 3);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_get_length(pComment, &len);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok(len == 35, "expected 35 got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(len == 35, "expected 35 got %ld\n", len);
hr = IXMLDOMComment_get_text(pComment, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_(" This &is a Middle; test <>\\Append ") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L" This &is a Middle; test <>\\Append "), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* delete from inside */
hr = IXMLDOMComment_deleteData(pComment, 1, 33);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_get_length(pComment, &len);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok(len == 2, "expected 2 got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(len == 2, "expected 2 got %ld\n", len);
hr = IXMLDOMComment_get_text(pComment, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_(" ") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L" "), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* delete whole data ... */
hr = IXMLDOMComment_get_length(pComment, &len);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_deleteData(pComment, 0, len);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
/* ... and try again with empty string */
hr = IXMLDOMComment_deleteData(pComment, 0, len);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
/* ::replaceData() */
V_VT(&v) = VT_BSTR;
- V_BSTR(&v) = SysAllocString(szstr1);
+ V_BSTR(&v) = SysAllocString(L"str1");
hr = IXMLDOMComment_put_nodeValue(pComment, v);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
VariantClear(&v);
hr = IXMLDOMComment_replaceData(pComment, 6, 0, NULL);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_get_text(pComment, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("str1") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"str1"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
hr = IXMLDOMComment_replaceData(pComment, 0, 0, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_get_text(pComment, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("str1") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"str1"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* NULL pointer means delete */
hr = IXMLDOMComment_replaceData(pComment, 0, 1, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_get_text(pComment, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("tr1") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"tr1"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* empty string means delete */
hr = IXMLDOMComment_replaceData(pComment, 0, 1, _bstr_(""));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_get_text(pComment, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("r1") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"r1"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* zero count means insert */
hr = IXMLDOMComment_replaceData(pComment, 0, 0, _bstr_("a"));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_get_text(pComment, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("ar1") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"ar1"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
hr = IXMLDOMComment_replaceData(pComment, 0, 2, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_insertData(pComment, 0, _bstr_("m"));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_get_text(pComment, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("m1") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"m1"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* nonempty string, count greater than its length */
hr = IXMLDOMComment_replaceData(pComment, 0, 2, _bstr_("a1.2"));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_get_text(pComment, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("a1.2") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"a1.2"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* nonempty string, count less than its length */
hr = IXMLDOMComment_replaceData(pComment, 0, 1, _bstr_("wine"));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMComment_get_text(pComment, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("wine1.2") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"wine1.2"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
IXMLDOMComment_Release(pComment);
}
/* Element */
- str = SysAllocString(szElement);
+ str = SysAllocString(L"EleTest");
hr = IXMLDOMDocument_createElement(doc, str, &pElement);
SysFreeString(str);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
if(hr == S_OK)
{
hr = IXMLDOMElement_appendChild(pRoot, (IXMLDOMNode*)pElement, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMElement_get_nodeName(pElement, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, szElement ), "incorrect element node Name\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok( !lstrcmpW( str, L"EleTest" ), "incorrect element node Name\n");
SysFreeString(str);
hr = IXMLDOMElement_get_xml(pElement, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, szElementXML ), "incorrect element xml\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok( !lstrcmpW( str, L"" ), "incorrect element xml\n");
SysFreeString(str);
/* Attribute */
pAttribute = (IXMLDOMAttribute*)0x1;
hr = IXMLDOMDocument_createAttribute(doc, NULL, &pAttribute);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
ok(pAttribute == (void*)0x1, "Expect same ptr, got %p\n", pAttribute);
pAttribute = (IXMLDOMAttribute*)0x1;
hr = IXMLDOMDocument_createAttribute(doc, _bstr_(""), &pAttribute);
- ok(hr == E_FAIL, "ret %08x\n", hr );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr );
ok(pAttribute == (void*)0x1, "Expect same ptr, got %p\n", pAttribute);
- str = SysAllocString(szAttribute);
+ str = SysAllocString(L"Attr");
hr = IXMLDOMDocument_createAttribute(doc, str, &pAttribute);
SysFreeString(str);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
if(hr == S_OK)
{
IXMLDOMNode *pNewChild = (IXMLDOMNode *)0x1;
hr = IXMLDOMAttribute_get_nextSibling(pAttribute, NULL);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
pNextChild = (IXMLDOMNode *)0x1;
hr = IXMLDOMAttribute_get_nextSibling(pAttribute, &pNextChild);
- ok(hr == S_FALSE, "ret %08x\n", hr );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
ok(pNextChild == NULL, "pNextChild not NULL\n");
/* test Previous Sibling*/
hr = IXMLDOMAttribute_get_previousSibling(pAttribute, NULL);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
pNextChild = (IXMLDOMNode *)0x1;
hr = IXMLDOMAttribute_get_previousSibling(pAttribute, &pNextChild);
- ok(hr == S_FALSE, "ret %08x\n", hr );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
ok(pNextChild == NULL, "pNextChild not NULL\n");
hr = IXMLDOMElement_appendChild(pElement, (IXMLDOMNode*)pAttribute, &pNewChild);
- ok(hr == E_FAIL, "ret %08x\n", hr );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr );
ok(pNewChild == NULL, "pNewChild not NULL\n");
hr = IXMLDOMElement_get_attributes(pElement, &pAttribs);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
if ( hr == S_OK )
{
hr = IXMLDOMNamedNodeMap_setNamedItem(pAttribs, (IXMLDOMNode*)pAttribute, NULL );
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
IXMLDOMNamedNodeMap_Release(pAttribs);
}
hr = IXMLDOMAttribute_get_nodeName(pAttribute, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, szAttribute ), "incorrect attribute node Name\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok( !lstrcmpW( str, L"Attr" ), "incorrect attribute node Name\n");
SysFreeString(str);
/* test nodeName */
hr = IXMLDOMAttribute_get_nodeName(pAttribute, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, szAttribute ), "incorrect nodeName string\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok( !lstrcmpW( str, L"Attr" ), "incorrect nodeName string\n");
SysFreeString(str);
/* test name property */
hr = IXMLDOMAttribute_get_name(pAttribute, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, szAttribute ), "incorrect name string\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok( !lstrcmpW( str, L"Attr" ), "incorrect name string\n");
SysFreeString(str);
hr = IXMLDOMAttribute_get_xml(pAttribute, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, szAttributeXML ), "incorrect attribute xml\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok( !lstrcmpW( str, L"Attr=\"\"" ), "incorrect attribute xml\n");
SysFreeString(str);
IXMLDOMAttribute_Release(pAttribute);
/* Check Element again with the Add Attribute*/
hr = IXMLDOMElement_get_xml(pElement, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, szElementXML2 ), "incorrect element xml\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok( !lstrcmpW( str, L"" ), "incorrect element xml\n");
SysFreeString(str);
}
hr = IXMLDOMElement_put_text(pElement, _bstr_("TestingNode"));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMElement_get_xml(pElement, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, szElementXML3 ), "incorrect element xml\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok( !lstrcmpW( str, L"TestingNode" ), "incorrect element xml\n");
SysFreeString(str);
/* Test for reversible escaping */
str = SysAllocString( szStrangeChars );
hr = IXMLDOMElement_put_text(pElement, str);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
SysFreeString( str );
hr = IXMLDOMElement_get_xml(pElement, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, szElementXML4 ), "incorrect element xml\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok( !lstrcmpW( str, L"&x \x2103" ), "incorrect element xml\n");
SysFreeString(str);
hr = IXMLDOMElement_get_text(pElement, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok( !lstrcmpW( str, szStrangeChars ), "incorrect element text\n");
SysFreeString(str);
@@ -5866,13 +6054,13 @@ static void test_xmlTypes(void)
}
/* CData Section */
- str = SysAllocString(szCData);
+ str = SysAllocString(L"[1]*2=3; &gee that is not right!");
hr = IXMLDOMDocument_createCDATASection(doc, str, NULL);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMDocument_createCDATASection(doc, str, &pCDataSec);
SysFreeString(str);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
if(hr == S_OK)
{
IXMLDOMNode *pNextChild = (IXMLDOMNode *)0x1;
@@ -5881,296 +6069,296 @@ static void test_xmlTypes(void)
VariantInit(&var);
hr = IXMLDOMCDATASection_QueryInterface(pCDataSec, &IID_IXMLDOMElement, (void**)&pElement);
- ok(hr == E_NOINTERFACE, "ret %08x\n", hr);
+ ok(hr == E_NOINTERFACE, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_appendChild(pRoot, (IXMLDOMNode*)pCDataSec, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_get_nodeName(pCDataSec, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, szCDataNodeText ), "incorrect cdata node Name\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok( !lstrcmpW( str, L"#cdata-section" ), "incorrect cdata node Name\n");
SysFreeString(str);
hr = IXMLDOMCDATASection_get_xml(pCDataSec, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, szCDataXML ), "incorrect cdata xml\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok( !lstrcmpW( str, L"" ), "incorrect cdata xml\n");
SysFreeString(str);
/* test lastChild */
pNextChild = (IXMLDOMNode*)0x1;
hr = IXMLDOMCDATASection_get_lastChild(pCDataSec, &pNextChild);
- ok(hr == S_FALSE, "ret %08x\n", hr );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
ok(pNextChild == NULL, "pNextChild not NULL\n");
/* put data Tests */
hr = IXMLDOMCDATASection_put_data(pCDataSec, _bstr_("This &is a ; test <>\\"));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
/* Confirm XML text is good */
hr = IXMLDOMCDATASection_get_xml(pCDataSec, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("\\]]>") ), "incorrect xml string\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"\\]]>"), "incorrect xml string\n");
SysFreeString(str);
/* Confirm we get the put_data Text back */
hr = IXMLDOMCDATASection_get_text(pCDataSec, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("This &is a ; test <>\\") ), "incorrect text string\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"This &is a ; test <>\\"), "incorrect text string\n");
SysFreeString(str);
/* test length property */
hr = IXMLDOMCDATASection_get_length(pCDataSec, &len);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok(len == 21, "expected 21 got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(len == 21, "expected 21 got %ld\n", len);
/* test get data */
hr = IXMLDOMCDATASection_get_data(pCDataSec, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("This &is a ; test <>\\") ), "incorrect text string\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"This &is a ; test <>\\"), "incorrect text string\n");
SysFreeString(str);
/* test substringData */
hr = IXMLDOMCDATASection_substringData(pCDataSec, 0, 4, NULL);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
/* test substringData - Invalid offset */
str = (void *)0xdeadbeef;
hr = IXMLDOMCDATASection_substringData(pCDataSec, -1, 4, &str);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
ok( str == NULL, "incorrect string\n");
/* test substringData - Invalid offset */
str = (void *)0xdeadbeef;
hr = IXMLDOMCDATASection_substringData(pCDataSec, 30, 0, &str);
- ok(hr == S_FALSE, "ret %08x\n", hr );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
ok( str == NULL, "incorrect string\n");
/* test substringData - Invalid size */
str = (void *)0xdeadbeef;
hr = IXMLDOMCDATASection_substringData(pCDataSec, 0, -1, &str);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
ok( str == NULL, "incorrect string\n");
/* test substringData - Invalid size */
str = (void *)0xdeadbeef;
hr = IXMLDOMCDATASection_substringData(pCDataSec, 2, 0, &str);
- ok(hr == S_FALSE, "ret %08x\n", hr );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
ok( str == NULL, "incorrect string\n");
/* test substringData - Start of string */
hr = IXMLDOMCDATASection_substringData(pCDataSec, 0, 4, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("This") ), "incorrect substringData string\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"This"), "incorrect substringData string\n");
SysFreeString(str);
/* test substringData - Middle of string */
hr = IXMLDOMCDATASection_substringData(pCDataSec, 13, 4, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("test") ), "incorrect substringData string\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"test"), "incorrect substringData string\n");
SysFreeString(str);
/* test substringData - End of string */
hr = IXMLDOMCDATASection_substringData(pCDataSec, 20, 4, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("\\") ), "incorrect substringData string\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"\\"), "incorrect substringData string\n");
SysFreeString(str);
/* test appendData */
hr = IXMLDOMCDATASection_appendData(pCDataSec, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_appendData(pCDataSec, _bstr_(""));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_appendData(pCDataSec, _bstr_("Append"));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_get_text(pCDataSec, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("This &is a ; test <>\\Append") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"This &is a ; test <>\\Append"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* test insertData */
str = SysAllocStringLen(NULL, 0);
hr = IXMLDOMCDATASection_insertData(pCDataSec, -1, str);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_insertData(pCDataSec, -1, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_insertData(pCDataSec, 1000, str);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_insertData(pCDataSec, 1000, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_insertData(pCDataSec, 0, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_insertData(pCDataSec, 0, str);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
SysFreeString(str);
hr = IXMLDOMCDATASection_insertData(pCDataSec, -1, _bstr_("Inserting"));
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_insertData(pCDataSec, 1000, _bstr_("Inserting"));
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_insertData(pCDataSec, 0, _bstr_("Begin "));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_insertData(pCDataSec, 17, _bstr_("Middle"));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_insertData(pCDataSec, 39, _bstr_(" End"));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_get_text(pCDataSec, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("Begin This &is a Middle; test <>\\Append End") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"Begin This &is a Middle; test <>\\Append End"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* delete data */
/* invalid arguments */
hr = IXMLDOMCDATASection_deleteData(pCDataSec, -1, 1);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_deleteData(pCDataSec, 0, 0);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_deleteData(pCDataSec, 0, -1);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_get_length(pCDataSec, &len);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok(len == 43, "expected 43 got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(len == 43, "expected 43 got %ld\n", len);
hr = IXMLDOMCDATASection_deleteData(pCDataSec, len, 1);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_deleteData(pCDataSec, len+1, 1);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
/* delete from start */
hr = IXMLDOMCDATASection_deleteData(pCDataSec, 0, 5);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_get_length(pCDataSec, &len);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok(len == 38, "expected 38 got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(len == 38, "expected 38 got %ld\n", len);
hr = IXMLDOMCDATASection_get_text(pCDataSec, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_(" This &is a Middle; test <>\\Append End") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L" This &is a Middle; test <>\\Append End"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* delete from end */
hr = IXMLDOMCDATASection_deleteData(pCDataSec, 35, 3);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_get_length(pCDataSec, &len);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok(len == 35, "expected 35 got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(len == 35, "expected 35 got %ld\n", len);
hr = IXMLDOMCDATASection_get_text(pCDataSec, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_(" This &is a Middle; test <>\\Append ") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L" This &is a Middle; test <>\\Append "), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* delete from inside */
hr = IXMLDOMCDATASection_deleteData(pCDataSec, 1, 33);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_get_length(pCDataSec, &len);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok(len == 2, "expected 2 got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(len == 2, "expected 2 got %ld\n", len);
hr = IXMLDOMCDATASection_get_text(pCDataSec, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_(" ") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L" "), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* delete whole data ... */
hr = IXMLDOMCDATASection_get_length(pCDataSec, &len);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_deleteData(pCDataSec, 0, len);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
/* ... and try again with empty string */
hr = IXMLDOMCDATASection_deleteData(pCDataSec, 0, len);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
/* ::replaceData() */
V_VT(&v) = VT_BSTR;
- V_BSTR(&v) = SysAllocString(szstr1);
+ V_BSTR(&v) = SysAllocString(L"str1");
hr = IXMLDOMCDATASection_put_nodeValue(pCDataSec, v);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
VariantClear(&v);
hr = IXMLDOMCDATASection_replaceData(pCDataSec, 6, 0, NULL);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_get_text(pCDataSec, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("str1") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"str1"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 0, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_get_text(pCDataSec, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("str1") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"str1"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* NULL pointer means delete */
hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 1, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_get_text(pCDataSec, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("tr1") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"tr1"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* empty string means delete */
hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 1, _bstr_(""));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_get_text(pCDataSec, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("r1") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"r1"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* zero count means insert */
hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 0, _bstr_("a"));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_get_text(pCDataSec, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("ar1") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"ar1"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 2, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_insertData(pCDataSec, 0, _bstr_("m"));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_get_text(pCDataSec, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("m1") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"m1"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* nonempty string, count greater than its length */
hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 2, _bstr_("a1.2"));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_get_text(pCDataSec, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("a1.2") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"a1.2"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
/* nonempty string, count less than its length */
hr = IXMLDOMCDATASection_replaceData(pCDataSec, 0, 1, _bstr_("wine"));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMCDATASection_get_text(pCDataSec, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, _bstr_("wine1.2") ), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str) );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(str, L"wine1.2"), "incorrect get_text string, got '%s'\n", wine_dbgstr_w(str));
SysFreeString(str);
IXMLDOMCDATASection_Release(pCDataSec);
@@ -6178,46 +6366,46 @@ static void test_xmlTypes(void)
/* Document Fragments */
hr = IXMLDOMDocument_createDocumentFragment(doc, NULL);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMDocument_createDocumentFragment(doc, &pDocFrag);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
if(hr == S_OK)
{
IXMLDOMNode *node;
hr = IXMLDOMDocumentFragment_get_parentNode(pDocFrag, NULL);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
node = (IXMLDOMNode *)0x1;
hr = IXMLDOMDocumentFragment_get_parentNode(pDocFrag, &node);
- ok(hr == S_FALSE, "ret %08x\n", hr );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
ok(node == NULL, "expected NULL, got %p\n", node);
hr = IXMLDOMElement_appendChild(pRoot, (IXMLDOMNode*)pDocFrag, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMDocumentFragment_get_nodeName(pDocFrag, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, szDocFragmentText ), "incorrect docfragment node Name\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok( !lstrcmpW( str, L"#document-fragment" ), "incorrect docfragment node Name\n");
SysFreeString(str);
/* test next Sibling*/
hr = IXMLDOMDocumentFragment_get_nextSibling(pDocFrag, NULL);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
node = (IXMLDOMNode *)0x1;
hr = IXMLDOMDocumentFragment_get_nextSibling(pDocFrag, &node);
- ok(hr == S_FALSE, "ret %08x\n", hr );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
ok(node == NULL, "next sibling not NULL\n");
/* test Previous Sibling*/
hr = IXMLDOMDocumentFragment_get_previousSibling(pDocFrag, NULL);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
node = (IXMLDOMNode *)0x1;
hr = IXMLDOMDocumentFragment_get_previousSibling(pDocFrag, &node);
- ok(hr == S_FALSE, "ret %08x\n", hr );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
ok(node == NULL, "previous sibling not NULL\n");
IXMLDOMDocumentFragment_Release(pDocFrag);
@@ -6225,26 +6413,26 @@ static void test_xmlTypes(void)
/* Entity References */
hr = IXMLDOMDocument_createEntityReference(doc, NULL, &pEntityRef);
- ok(hr == E_FAIL, "ret %08x\n", hr );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMDocument_createEntityReference(doc, _bstr_(""), &pEntityRef);
- ok(hr == E_FAIL, "ret %08x\n", hr );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr );
- str = SysAllocString(szEntityRef);
+ str = SysAllocString(L"entityref");
hr = IXMLDOMDocument_createEntityReference(doc, str, NULL);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMDocument_createEntityReference(doc, str, &pEntityRef);
SysFreeString(str);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
if(hr == S_OK)
{
hr = IXMLDOMElement_appendChild(pRoot, (IXMLDOMNode*)pEntityRef, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
/* test get_xml*/
hr = IXMLDOMEntityReference_get_xml(pEntityRef, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok( !lstrcmpW( str, szEntityRefXML ), "incorrect xml string\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok( !lstrcmpW( str, L"&entityref;" ), "incorrect xml string\n");
SysFreeString(str);
IXMLDOMEntityReference_Release(pEntityRef);
@@ -6320,28 +6508,28 @@ static void test_put_dataType( void )
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_createElement(doc, _bstr_("Testing"), NULL);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_createElement(doc, _bstr_("Testing"), &root);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_appendChild(doc, (IXMLDOMNode*)root, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_put_dataType(root, NULL);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
while (ptr->name)
{
hr = IXMLDOMDocument_createElement(doc, _bstr_(ptr->name), &element);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if(hr == S_OK)
{
hr = IXMLDOMElement_appendChild(root, (IXMLDOMNode*)element, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_put_dataType(element, _bstr_(ptr->type));
- ok(hr == ptr->hr, "failed for %s:%s, 0x%08x\n", ptr->name, ptr->type, ptr->hr);
+ ok(hr == ptr->hr, "failed for %s:%s, %#lx.\n", ptr->name, ptr->type, ptr->hr);
IXMLDOMElement_Release(element);
}
@@ -6350,16 +6538,16 @@ static void test_put_dataType( void )
/* check changing types */
hr = IXMLDOMDocument_createElement(doc, _bstr_("Testing_Change"), &element);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_appendChild(root, (IXMLDOMNode*)element, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_put_dataType(element, _bstr_("DateTime.tz"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_put_dataType(element, _bstr_("string"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMElement_Release(element);
@@ -6376,19 +6564,19 @@ static void test_put_dataType( void )
V_I2(&type) = ptr2->type;
hr = IXMLDOMDocument_createNode(doc, type, nameW, NULL, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if(hr == S_OK)
{
hr = IXMLDOMElement_appendChild(root, node, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_put_dataType(node, NULL);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_put_dataType(node, type1W);
- ok(hr == ptr2->hr, "failed for type %d, 0x%08x\n", ptr2->type, ptr->hr);
+ ok(hr == ptr2->hr, "failed for type %d, %#lx\n", ptr2->type, ptr->hr);
hr = IXMLDOMNode_put_dataType(node, type2W);
- ok(hr == ptr2->hr, "failed for type %d, 0x%08x\n", ptr2->type, ptr->hr);
+ ok(hr == ptr2->hr, "failed for type %d, %#lx\n", ptr2->type, ptr->hr);
IXMLDOMNode_Release(node);
}
@@ -6402,7 +6590,9 @@ static void test_put_dataType( void )
static void test_save(void)
{
+ static const char cheA[] = "";
IXMLDOMDocument *doc, *doc2;
+ IXMLDOMAttribute *attr;
IXMLDOMElement *root;
BSTR sOrig, sNew, filename;
char buffer[100];
@@ -6410,7 +6600,7 @@ static void test_save(void)
HGLOBAL global;
VARIANT_BOOL b;
DWORD read = 0;
- VARIANT dest;
+ VARIANT v, dest;
HANDLE hfile;
HRESULT hr;
char *ptr;
@@ -6420,22 +6610,22 @@ static void test_save(void)
/* save to IXMLDOMDocument */
hr = IXMLDOMDocument_createElement(doc, _bstr_("Testing"), &root);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_appendChild(doc, (IXMLDOMNode*)root, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_UNKNOWN;
V_UNKNOWN(&dest) = (IUnknown*)doc2;
hr = IXMLDOMDocument_save(doc, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_get_xml(doc, &sOrig);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_get_xml(doc2, &sNew);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( !lstrcmpW( sOrig, sNew ), "New document is not the same as original\n");
@@ -6450,10 +6640,10 @@ static void test_save(void)
V_BSTR(&dest) = _bstr_("test.xml");
hr = IXMLDOMDocument_save(doc, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hfile = CreateFileA("test.xml", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
- ok(hfile != INVALID_HANDLE_VALUE, "Could not open file: %u\n", GetLastError());
+ ok(hfile != INVALID_HANDLE_VALUE, "Could not open file: %lu\n", GetLastError());
if(hfile == INVALID_HANDLE_VALUE) return;
ReadFile(hfile, buffer, sizeof(buffer), &read, NULL);
@@ -6469,10 +6659,10 @@ static void test_save(void)
V_BSTRREF(&dest) = &filename;
hr = IXMLDOMDocument_save(doc, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hfile = CreateFileA("test.xml", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
- ok(hfile != INVALID_HANDLE_VALUE, "Could not open file: %u\n", GetLastError());
+ ok(hfile != INVALID_HANDLE_VALUE, "Could not open file: %lu\n", GetLastError());
if(hfile == INVALID_HANDLE_VALUE) return;
if (hfile != INVALID_HANDLE_VALUE)
@@ -6490,21 +6680,21 @@ static void test_save(void)
V_UNKNOWN(&dest) = (IUnknown*)&savestream;
hr = IXMLDOMDocument_save(doc, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* loaded data contains xml declaration */
hr = IXMLDOMDocument_loadXML(doc, _bstr_(win1252xml), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = CreateStreamOnHGlobal(NULL, TRUE, &stream);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_UNKNOWN;
V_UNKNOWN(&dest) = (IUnknown*)stream;
hr = IXMLDOMDocument_save(doc, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = GetHGlobalFromStream(stream, &global);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ptr = GlobalLock(global);
ok(!memcmp(ptr, win1252decl, strlen(win1252decl)), "got wrong xml declaration\n");
GlobalUnlock(global);
@@ -6512,23 +6702,67 @@ static void test_save(void)
/* loaded data without xml declaration */
hr = IXMLDOMDocument_loadXML(doc, _bstr_(""), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = CreateStreamOnHGlobal(NULL, TRUE, &stream);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_UNKNOWN;
V_UNKNOWN(&dest) = (IUnknown*)stream;
hr = IXMLDOMDocument_save(doc, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = GetHGlobalFromStream(stream, &global);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ptr = GlobalLock(global);
ok(ptr[0] == '<' && ptr[1] != '?', "got wrong start tag %c%c\n", ptr[0], ptr[1]);
GlobalUnlock(global);
IStream_Release(stream);
IXMLDOMDocument_Release(doc);
+
+ /* test default encoding with non-english characters */
+ doc = create_document(&IID_IXMLDOMDocument);
+
+ hr = IXMLDOMDocument_createElement(doc, _bstr_("Testing"), &root);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IXMLDOMDocument_appendChild(doc, (IXMLDOMNode*)root, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IXMLDOMDocument_createAttribute(doc, _bstr_("che"), &attr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ V_VT(&v) = VT_BSTR;
+ V_BSTR(&v) = SysAllocString(L"\x0427");
+ hr = IXMLDOMAttribute_put_value(attr, v);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ VariantClear(&v);
+
+ hr = IXMLDOMElement_setAttributeNode(root, attr, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ V_VT(&dest) = VT_BSTR;
+ V_BSTR(&dest) = _bstr_("test.xml");
+
+ hr = IXMLDOMDocument_save(doc, dest);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hfile = CreateFileA("test.xml", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
+ ok(hfile != INVALID_HANDLE_VALUE, "Could not open file: %lu\n", GetLastError());
+ if (hfile != INVALID_HANDLE_VALUE)
+ {
+ ReadFile(hfile, buffer, sizeof(buffer), &read, NULL);
+ ok(read != 0, "could not read file\n");
+ ok(!memcmp(buffer, cheA, sizeof(cheA)-1), "got: %s\n", buffer);
+
+ CloseHandle(hfile);
+ DeleteFileA("test.xml");
+ }
+
+ IXMLDOMAttribute_Release(attr);
+ IXMLDOMElement_Release(root);
+ IXMLDOMDocument_Release(doc);
+
free_bstrs();
}
@@ -6543,19 +6777,19 @@ static void test_testTransforms(void)
docSS = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_loadXML(doc, _bstr_(szTransformXML), &bSucc);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMDocument_loadXML(docSS, _bstr_(szTransformSSXML), &bSucc);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMDocument_QueryInterface(docSS, &IID_IXMLDOMNode, (void**)&pNode );
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
if(hr == S_OK)
{
BSTR bOut;
hr = IXMLDOMDocument_transformNode(doc, pNode, &bOut);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
if(hr == S_OK)
{
ok( compareIgnoreReturns( bOut, _bstr_(szTransformOutput)), "got output %s\n", wine_dbgstr_w(bOut));
@@ -6608,37 +6842,37 @@ static void test_namespaces_change(void)
hr = CoCreateInstance(class_ptr->clsid, NULL, CLSCTX_INPROC_SERVER,
&IID_IXMLDOMDocument, (void**)&doc);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&var) = VT_I2;
V_I2(&var) = NODE_ELEMENT;
hr = IXMLDOMDocument_createNode(doc, var, _bstr_("ns:elem"), _bstr_("ns/uri"), &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_appendChild(doc, node, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_get_documentElement(doc, &elem);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* try same prefix, different uri */
V_VT(&var) = VT_BSTR;
V_BSTR(&var) = _bstr_("ns/uri2");
hr = IXMLDOMElement_setAttribute(elem, _bstr_("xmlns:ns"), var);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
/* try same prefix and uri */
V_VT(&var) = VT_BSTR;
V_BSTR(&var) = _bstr_("ns/uri");
hr = IXMLDOMElement_setAttribute(elem, _bstr_("xmlns:ns"), var);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_get_xml(elem, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("")), "got element %s for %s\n",
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L""), "got element %s for %s\n",
wine_dbgstr_w(str), class_ptr->name);
SysFreeString(str);
@@ -6672,64 +6906,64 @@ static void test_namespaces_basic(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_loadXML(doc, _bstr_(namespaces_xmlA), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "got %d\n", b);
str = (void *)0xdeadbeef;
hr = IXMLDOMDocument_get_namespaceURI(doc, &str);
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(str == NULL, "got %p\n", str);
hr = IXMLDOMDocument_selectSingleNode(doc, _bstr_("//XMI.content"), &node );
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if(hr == S_OK)
{
IXMLDOMAttribute *attr;
IXMLDOMNode *node2;
hr = IXMLDOMNode_get_firstChild(node, &node2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(node2 != NULL, "got %p\n", node2);
/* Test get_prefix */
hr = IXMLDOMNode_get_prefix(node2, NULL);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
/* NOTE: Need to test that arg2 gets cleared on Error. */
hr = IXMLDOMNode_get_prefix(node2, &str);
- EXPECT_HR(hr, S_OK);
- ok( !lstrcmpW( str, _bstr_("Model")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"Model"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
hr = IXMLDOMNode_get_nodeName(node2, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW( str, _bstr_("Model:Package")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"Model:Package"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
/* Test get_namespaceURI */
hr = IXMLDOMNode_get_namespaceURI(node2, NULL);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
/* NOTE: Need to test that arg2 gets cleared on Error. */
hr = IXMLDOMNode_get_namespaceURI(node2, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW( str, _bstr_("http://omg.org/mof.Model/1.3")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"http://omg.org/mof.Model/1.3"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
hr = IXMLDOMNode_QueryInterface(node2, &IID_IXMLDOMElement, (void**)&elem);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_getAttributeNode(elem, _bstr_("Model:name2"), &attr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMAttribute_get_nodeName(attr, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW( str, _bstr_("Model:name2")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"Model:name2"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
hr = IXMLDOMAttribute_get_prefix(attr, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW( str, _bstr_("Model")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"Model"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
IXMLDOMAttribute_Release(attr);
@@ -6757,17 +6991,17 @@ static void test_FormattingXML(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_loadXML(doc, _bstr_(szLinefeedXML), &bSucc);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok(bSucc == VARIANT_TRUE, "Expected VARIANT_TRUE got VARIANT_FALSE\n");
if(bSucc == VARIANT_TRUE)
{
hr = IXMLDOMDocument_get_documentElement(doc, &pElement);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
if(hr == S_OK)
{
hr = IXMLDOMElement_get_xml(pElement, &str);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok( !lstrcmpW( str, _bstr_(szLinefeedRootXML) ), "incorrect element xml\n");
SysFreeString(str);
@@ -6784,11 +7018,16 @@ typedef struct _nodetypedvalue_t {
const char *name;
VARTYPE type;
const char *value; /* value in string format */
+ BOOL no_type;
} nodetypedvalue_t;
static const nodetypedvalue_t get_nodetypedvalue[] = {
- { "root/string", VT_BSTR, "Wine" },
- { "root/string2", VT_BSTR, "String" },
+ { "root/string", VT_BSTR, "Wine", TRUE },
+ { "root/string2", VT_BSTR, "String " },
+ { "root/string3", VT_BSTR, " Wine Wine ", TRUE },
+ { "root/string4", VT_BSTR, "\nWine Wine\t", TRUE },
+ { "root/string5", VT_BSTR, "", TRUE },
+ { "root/nested", VT_BSTR, " s1 \ns2 s2\t", TRUE },
{ "root/number", VT_BSTR, "12.44" },
{ "root/number2", VT_BSTR, "-3.71e3" },
{ "root/int", VT_I4, "-13" },
@@ -6815,6 +7054,24 @@ static const nodetypedvalue_t get_nodetypedvalue[] = {
{ 0 }
};
+static const char *strip_spaces(const char *str)
+{
+ static char buf[256];
+ const char *p;
+
+ while (isspace(*str))
+ ++str;
+
+ p = str + strlen(str);
+ while (p != str && isspace(p[-1]))
+ --p;
+
+ memcpy(buf, str, p - str);
+ buf[p - str] = 0;
+
+ return buf;
+}
+
static void test_nodeTypedValue(void)
{
const nodetypedvalue_t *entry = get_nodetypedvalue;
@@ -6833,47 +7090,47 @@ static void test_nodeTypedValue(void)
b = VARIANT_FALSE;
hr = IXMLDOMDocument_loadXML(doc, _bstr_(szTypeValueXML), &b);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok(b == VARIANT_TRUE, "got %d\n", b);
hr = IXMLDOMDocument_get_nodeValue(doc, NULL);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
V_VT(&value) = VT_BSTR;
V_BSTR(&value) = NULL;
hr = IXMLDOMDocument_get_nodeValue(doc, &value);
- ok(hr == S_FALSE, "ret %08x\n", hr );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
ok(V_VT(&value) == VT_NULL, "expect VT_NULL got %d\n", V_VT(&value));
hr = IXMLDOMDocument_get_nodeTypedValue(doc, NULL);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
V_VT(&value) = VT_EMPTY;
hr = IXMLDOMDocument_get_nodeTypedValue(doc, &value);
- ok(hr == S_FALSE, "ret %08x\n", hr );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
ok(V_VT(&value) == VT_NULL, "got %d\n", V_VT(&value));
hr = IXMLDOMDocument_selectSingleNode(doc, _bstr_("root/string"), &node);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
V_VT(&value) = VT_BSTR;
V_BSTR(&value) = NULL;
hr = IXMLDOMNode_get_nodeValue(node, &value);
- ok(hr == S_FALSE, "ret %08x\n", hr );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
ok(V_VT(&value) == VT_NULL, "expect VT_NULL got %d\n", V_VT(&value));
hr = IXMLDOMNode_get_nodeTypedValue(node, NULL);
- ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr );
IXMLDOMNode_Release(node);
hr = IXMLDOMDocument_selectSingleNode(doc, _bstr_("root/binhex"), &node);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
{
BYTE bytes[] = {0xff,0xfc,0xa0,0x12,0x00,0x3c};
hr = IXMLDOMNode_get_nodeTypedValue(node, &value);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok(V_VT(&value) == (VT_ARRAY|VT_UI1), "incorrect type\n");
ok(V_ARRAY(&value)->rgsabound[0].cElements == 6, "incorrect array size\n");
if(V_ARRAY(&value)->rgsabound[0].cElements == 6)
@@ -6883,50 +7140,50 @@ static void test_nodeTypedValue(void)
}
hr = IXMLDOMDocument_createProcessingInstruction(doc, _bstr_("foo"), _bstr_("value"), &pi);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
{
V_VT(&value) = VT_NULL;
V_BSTR(&value) = (void*)0xdeadbeef;
hr = IXMLDOMProcessingInstruction_get_nodeTypedValue(pi, &value);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok(V_VT(&value) == VT_BSTR, "got %d\n", V_VT(&value));
- ok(!lstrcmpW(V_BSTR(&value), _bstr_("value")), "got wrong value\n");
+ ok(!lstrcmpW(V_BSTR(&value), L"value"), "got wrong value\n");
IXMLDOMProcessingInstruction_Release(pi);
VariantClear(&value);
}
hr = IXMLDOMDocument_createCDATASection(doc, _bstr_("[1]*2=3; &gee that's not right!"), &cdata);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
{
V_VT(&value) = VT_NULL;
V_BSTR(&value) = (void*)0xdeadbeef;
hr = IXMLDOMCDATASection_get_nodeTypedValue(cdata, &value);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok(V_VT(&value) == VT_BSTR, "got %d\n", V_VT(&value));
- ok(!lstrcmpW(V_BSTR(&value), _bstr_("[1]*2=3; &gee that's not right!")), "got wrong value\n");
+ ok(!lstrcmpW(V_BSTR(&value), L"[1]*2=3; &gee that's not right!"), "got wrong value\n");
IXMLDOMCDATASection_Release(cdata);
VariantClear(&value);
}
hr = IXMLDOMDocument_createComment(doc, _bstr_("comment"), &comment);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
{
V_VT(&value) = VT_NULL;
V_BSTR(&value) = (void*)0xdeadbeef;
hr = IXMLDOMComment_get_nodeTypedValue(comment, &value);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok(V_VT(&value) == VT_BSTR, "got %d\n", V_VT(&value));
- ok(!lstrcmpW(V_BSTR(&value), _bstr_("comment")), "got wrong value\n");
+ ok(!lstrcmpW(V_BSTR(&value), L"comment"), "got wrong value\n");
IXMLDOMComment_Release(comment);
VariantClear(&value);
}
hr = IXMLDOMDocument_createDocumentFragment(doc, &frag);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
{
V_VT(&value) = VT_EMPTY;
hr = IXMLDOMDocumentFragment_get_nodeTypedValue(frag, &value);
- ok(hr == S_FALSE, "ret %08x\n", hr );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
ok(V_VT(&value) == VT_NULL, "got %d\n", V_VT(&value));
IXMLDOMDocumentFragment_Release(frag);
}
@@ -6935,13 +7192,13 @@ static void test_nodeTypedValue(void)
b = VARIANT_FALSE;
hr = IXMLDOMDocument_loadXML(doc2, _bstr_(szEmailXML), &b);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok(b == VARIANT_TRUE, "got %d\n", b);
EXPECT_REF(doc2, 1);
hr = IXMLDOMDocument_get_doctype(doc2, &doctype);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
EXPECT_REF(doc2, 1);
todo_wine EXPECT_REF(doctype, 2);
@@ -6949,12 +7206,12 @@ static void test_nodeTypedValue(void)
{
V_VT(&value) = VT_EMPTY;
hr = IXMLDOMDocumentType_get_nodeTypedValue(doctype, &value);
- ok(hr == S_FALSE, "ret %08x\n", hr );
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
ok(V_VT(&value) == VT_NULL, "got %d\n", V_VT(&value));
}
hr = IXMLDOMDocument_get_doctype(doc2, &doctype2);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok(doctype != doctype2, "got %p, was %p\n", doctype2, doctype);
IXMLDOMDocumentType_Release(doctype2);
@@ -6965,16 +7222,16 @@ static void test_nodeTypedValue(void)
while (entry->name)
{
hr = IXMLDOMDocument_selectSingleNode(doc, _bstr_(entry->name), &node);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMNode_get_nodeTypedValue(node, &value);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok(V_VT(&value) == entry->type, "incorrect type, expected %d, got %d\n", entry->type, V_VT(&value));
if (entry->type == (VT_ARRAY|VT_UI1))
{
ok(V_ARRAY(&value)->rgsabound[0].cElements == strlen(entry->value),
- "incorrect array size %d\n", V_ARRAY(&value)->rgsabound[0].cElements);
+ "incorrect array size %ld\n", V_ARRAY(&value)->rgsabound[0].cElements);
}
if (entry->type != VT_BSTR)
@@ -6986,17 +7243,17 @@ static void test_nodeTypedValue(void)
if (entry->type == VT_DATE)
{
hr = VariantChangeType(&value, &value, 0, VT_R4);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
}
hr = VariantChangeTypeEx(&value, &value,
MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT), SORT_DEFAULT),
VARIANT_NOUSEROVERRIDE, VT_BSTR);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
}
else
{
hr = VariantChangeType(&value, &value, 0, VT_BSTR);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
}
/* for byte array from VT_ARRAY|VT_UI1 it's not a WCHAR buffer */
@@ -7010,8 +7267,46 @@ static void test_nodeTypedValue(void)
"expected %s, got %s\n", entry->value, wine_dbgstr_w(V_BSTR(&value)));
}
else
- ok(lstrcmpW( V_BSTR(&value), _bstr_(entry->value)) == 0,
- "expected %s, got %s\n", entry->value, wine_dbgstr_w(V_BSTR(&value)));
+ {
+ BSTR bstr, expected;
+
+ expected = entry->no_type ? _bstr_(strip_spaces(entry->value)) : _bstr_(entry->value);
+ ok(!wcscmp( V_BSTR(&value), expected ), "expected %s, got %s\n",
+ debugstr_w(expected), wine_dbgstr_w(V_BSTR(&value)));
+ if (entry->no_type)
+ {
+ VariantClear( &value );
+
+ hr = IXMLDOMDocument_get_preserveWhiteSpace(doc, &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(b == VARIANT_FALSE, "got %d\n", b);
+
+ hr = IXMLDOMNode_get_text(node, &bstr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!wcscmp( bstr, expected ), "expected %s, got %s\n",
+ debugstr_w(expected), wine_dbgstr_w(bstr));
+ SysFreeString(bstr);
+
+ hr = IXMLDOMDocument_put_preserveWhiteSpace(doc, VARIANT_TRUE);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+
+ expected = _bstr_(entry->value);
+ hr = IXMLDOMNode_get_text(node, &bstr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!wcscmp( bstr, expected ), "expected %s, got %s\n",
+ debugstr_w(expected), wine_dbgstr_w(bstr));
+ SysFreeString(bstr);
+
+ hr = IXMLDOMNode_get_nodeTypedValue(node, &value);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(V_VT(&value) == entry->type, "incorrect type, expected %d, got %d\n", entry->type, V_VT(&value));
+ ok(!wcscmp( V_BSTR(&value), expected ), "expected %s, got %s\n",
+ debugstr_w(expected), wine_dbgstr_w(V_BSTR(&value)));
+
+ hr = IXMLDOMDocument_put_preserveWhiteSpace(doc, VARIANT_FALSE);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ }
+ }
VariantClear( &value );
IXMLDOMNode_Release(node);
@@ -7040,7 +7335,7 @@ static void test_TransformWithLoadingLocalFile(void)
strcat(lpPathBuffer, "customers.xml" );
file = CreateFileA(lpPathBuffer, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );
- ok(file != INVALID_HANDLE_VALUE, "Could not create file: %u\n", GetLastError());
+ ok(file != INVALID_HANDLE_VALUE, "Could not create file: %lu\n", GetLastError());
if(file == INVALID_HANDLE_VALUE)
return;
@@ -7058,7 +7353,7 @@ static void test_TransformWithLoadingLocalFile(void)
xsl = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_loadXML(doc, _bstr_(szTypeValueXML), &bSucc);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok(bSucc == VARIANT_TRUE, "Expected VARIANT_TRUE got VARIANT_FALSE\n");
if(bSucc == VARIANT_TRUE)
{
@@ -7074,19 +7369,19 @@ static void test_TransformWithLoadingLocalFile(void)
lstrcatW(sXSL, sPart2);
hr = IXMLDOMDocument_loadXML(xsl, sXSL, &bSucc);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
ok(bSucc == VARIANT_TRUE, "Expected VARIANT_TRUE got VARIANT_FALSE\n");
if(bSucc == VARIANT_TRUE)
{
BSTR sResult;
hr = IXMLDOMDocument_QueryInterface(xsl, &IID_IXMLDOMNode, (void**)&pNode );
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
if(hr == S_OK)
{
/* This will load the temp file via the XSL */
hr = IXMLDOMDocument_transformNode(doc, pNode, &sResult);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
if(hr == S_OK)
{
ok( compareIgnoreReturns( sResult, _bstr_(szBasicTransformOutput)), "Stylesheet output not correct\n");
@@ -7109,7 +7404,6 @@ static void test_TransformWithLoadingLocalFile(void)
static void test_put_nodeValue(void)
{
- static const WCHAR jeevesW[] = {'J','e','e','v','e','s',' ','&',' ','W','o','o','s','t','e','r',0};
IXMLDOMDocument *doc;
IXMLDOMText *text;
IXMLDOMEntityReference *entityref;
@@ -7123,72 +7417,71 @@ static void test_put_nodeValue(void)
/* test for unsupported types */
/* NODE_DOCUMENT */
hr = IXMLDOMDocument_QueryInterface(doc, &IID_IXMLDOMNode, (void**)&node);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
V_VT(&data) = VT_BSTR;
V_BSTR(&data) = _bstr_("one two three");
hr = IXMLDOMNode_put_nodeValue(node, data);
- ok(hr == E_FAIL, "ret %08x\n", hr );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr );
IXMLDOMNode_Release(node);
/* NODE_DOCUMENT_FRAGMENT */
V_VT(&type) = VT_I1;
V_I1(&type) = NODE_DOCUMENT_FRAGMENT;
hr = IXMLDOMDocument_createNode(doc, type, _bstr_("test"), NULL, &node);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
V_VT(&data) = VT_BSTR;
V_BSTR(&data) = _bstr_("one two three");
hr = IXMLDOMNode_put_nodeValue(node, data);
- ok(hr == E_FAIL, "ret %08x\n", hr );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr );
IXMLDOMNode_Release(node);
/* NODE_ELEMENT */
V_VT(&type) = VT_I1;
V_I1(&type) = NODE_ELEMENT;
hr = IXMLDOMDocument_createNode(doc, type, _bstr_("test"), NULL, &node);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
V_VT(&data) = VT_BSTR;
V_BSTR(&data) = _bstr_("one two three");
hr = IXMLDOMNode_put_nodeValue(node, data);
- ok(hr == E_FAIL, "ret %08x\n", hr );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr );
IXMLDOMNode_Release(node);
/* NODE_ENTITY_REFERENCE */
hr = IXMLDOMDocument_createEntityReference(doc, _bstr_("ref"), &entityref);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
V_VT(&data) = VT_BSTR;
V_BSTR(&data) = _bstr_("one two three");
hr = IXMLDOMEntityReference_put_nodeValue(entityref, data);
- ok(hr == E_FAIL, "ret %08x\n", hr );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMEntityReference_QueryInterface(entityref, &IID_IXMLDOMNode, (void**)&node);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
V_VT(&data) = VT_BSTR;
V_BSTR(&data) = _bstr_("one two three");
hr = IXMLDOMNode_put_nodeValue(node, data);
- ok(hr == E_FAIL, "ret %08x\n", hr );
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr );
IXMLDOMNode_Release(node);
IXMLDOMEntityReference_Release(entityref);
/* supported types */
hr = IXMLDOMDocument_createTextNode(doc, _bstr_(""), &text);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
V_VT(&data) = VT_BSTR;
V_BSTR(&data) = _bstr_("Jeeves & Wooster");
hr = IXMLDOMText_put_nodeValue(text, data);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
IXMLDOMText_Release(text);
hr = IXMLDOMDocument_createAttribute(doc, _bstr_("attr"), &attr);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
V_VT(&data) = VT_BSTR;
V_BSTR(&data) = _bstr_("Jeeves & Wooster");
hr = IXMLDOMAttribute_put_nodeValue(attr, data);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMAttribute_get_nodeValue(attr, &data);
- ok(hr == S_OK, "ret %08x\n", hr );
- ok(memcmp(V_BSTR(&data), jeevesW, sizeof(jeevesW)) == 0, "got %s\n",
- wine_dbgstr_w(V_BSTR(&data)));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
+ ok(!lstrcmpW(V_BSTR(&data), L"Jeeves & Wooster"), "got %s\n", wine_dbgstr_w(V_BSTR(&data)));
VariantClear(&data);
IXMLDOMAttribute_Release(attr);
@@ -7206,7 +7499,7 @@ static void test_IObjectSafety(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_QueryInterface(doc, &IID_IObjectSafety, (void**)&safety);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
test_IObjectSafety_common(safety);
@@ -7215,7 +7508,7 @@ static void test_IObjectSafety(void)
hr = CoCreateInstance(&CLSID_XMLHTTPRequest, NULL, CLSCTX_INPROC_SERVER,
&IID_IObjectSafety, (void**)&safety);
- ok(hr == S_OK, "Could not create XMLHTTPRequest instance: %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
test_IObjectSafety_common(safety);
@@ -7256,10 +7549,10 @@ static void test_default_properties(void)
}
hr = CoCreateInstance(entry->guid, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument2, (void**)&doc);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument2_getProperty(doc, _bstr_(entry->property), &var);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(lstrcmpW(V_BSTR(&var), _bstr_(entry->value)) == 0, "expected %s, for %s\n",
entry->value, entry->clsid);
VariantClear(&var);
@@ -7388,36 +7681,37 @@ static void test_XSLPattern(void)
b = VARIANT_FALSE;
hr = IXMLDOMDocument2_loadXML(doc, _bstr_(szExampleXML), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
/* switch to XSLPattern */
hr = IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionLanguage"), _variantbstr_("XSLPattern"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* XPath doesn't select elements with non-null default namespace with unqualified selectors, XSLPattern does */
hr = IXMLDOMDocument2_selectNodes(doc, _bstr_("//elem/c"), &list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = 0;
hr = IXMLDOMNodeList_get_length(list, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* should select and but not */
- ok(len == 3, "expected 3 entries in list, got %d\n", len);
+ ok(len == 3, "expected 3 entries in list, got %ld\n", len);
IXMLDOMNodeList_Release(list);
while (ptr->query)
{
list = NULL;
hr = IXMLDOMDocument2_selectNodes(doc, _bstr_(ptr->query), &list);
- ok(hr == S_OK, "query=%s, failed with 0x%08x\n", ptr->query, hr);
+ ok(hr == S_OK, "query=%s, failed with %#lx\n", ptr->query, hr);
len = 0;
hr = IXMLDOMNodeList_get_length(list, &len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(len != 0, "query=%s, empty list\n", ptr->query);
if (len) {
if (ptr->todo) {
char *str = list_to_string(list);
- todo_wine
+ todo_wine
ok(!strcmp(str, ptr->list), "Invalid node list: %s, expected %s\n", str, ptr->list);
IXMLDOMNodeList_Release(list);
}
@@ -7431,27 +7725,27 @@ static void test_XSLPattern(void)
/* namespace handling */
/* no registered namespaces */
hr = IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"), _variantbstr_(""));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ptr = xslpattern_test_no_ns;
while (ptr->query)
{
list = NULL;
hr = IXMLDOMDocument2_selectNodes(doc, _bstr_(ptr->query), &list);
- ok(hr == S_OK, "query=%s, failed with 0x%08x\n", ptr->query, hr);
+ ok(hr == S_OK, "query=%s, failed with %#lx.\n", ptr->query, hr);
if (*ptr->list)
{
len = 0;
hr = IXMLDOMNodeList_get_length(list, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(len != 0, "query=%s, empty list\n", ptr->query);
}
else
{
len = 1;
hr = IXMLDOMNodeList_get_length(list, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(len == 0, "query=%s, empty list\n", ptr->query);
}
if (len)
@@ -7461,28 +7755,30 @@ static void test_XSLPattern(void)
}
/* explicitly register prefix foo */
- ole_check(IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"), _variantbstr_("xmlns:foo='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'")));
+ hr = IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"),
+ _variantbstr_("xmlns:foo='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'"));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* now we get the same behavior as XPath */
hr = IXMLDOMDocument2_selectNodes(doc, _bstr_("//foo:c"), &list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = 0;
hr = IXMLDOMNodeList_get_length(list, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(len != 0, "expected filled list\n");
if (len)
expect_list_and_release(list, "E3.E3.E2.D1 E3.E4.E2.D1");
/* set prefix foo to some nonexistent namespace */
hr = IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"), _variantbstr_("xmlns:foo='urn:nonexistent-foo'"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* the registered prefix takes precedence */
hr = IXMLDOMDocument2_selectNodes(doc, _bstr_("//foo:c"), &list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = 0;
hr = IXMLDOMNodeList_get_length(list, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(len == 0, "expected empty list\n");
IXMLDOMNodeList_Release(list);
@@ -7491,7 +7787,7 @@ static void test_XSLPattern(void)
doc = create_document(&IID_IXMLDOMDocument2);
hr = IXMLDOMDocument2_loadXML(doc, _bstr_(szNodeTypesXML), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
ptr = xslpattern_test_func;
@@ -7501,10 +7797,10 @@ static void test_XSLPattern(void)
hr = IXMLDOMDocument2_selectNodes(doc, _bstr_(ptr->query), &list);
if (ptr->list)
{
- ok(hr == S_OK, "query=%s, failed with 0x%08x\n", ptr->query, hr);
+ ok(hr == S_OK, "query=%s, failed with %#lx.\n", ptr->query, hr);
len = 0;
hr = IXMLDOMNodeList_get_length(list, &len);
- ok(hr == S_OK, "Failed to get list length, hr %#x.\n", hr);
+ ok(hr == S_OK, "Failed to get list length, hr %#lx.\n", hr);
if (*ptr->list)
{
ok(len != 0, "query=%s, empty list\n", ptr->query);
@@ -7515,7 +7811,7 @@ static void test_XSLPattern(void)
ok(len == 0, "query=%s, filled list\n", ptr->query);
}
else
- ok(hr == E_FAIL, "query=%s, failed with 0x%08x\n", ptr->query, hr);
+ ok(hr == E_FAIL, "query=%s, failed with %#lx.\n", ptr->query, hr);
ptr++;
}
@@ -7539,100 +7835,100 @@ static void test_splitText(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_loadXML(doc, _bstr_(""), &success);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_get_documentElement(doc, &root);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_createCDATASection(doc, _bstr_("beautiful plumage"), &cdata);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&var) = VT_EMPTY;
hr = IXMLDOMElement_appendChild(root, (IXMLDOMNode*)cdata, NULL);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
length = 0;
hr = IXMLDOMCDATASection_get_length(cdata, &length);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(length > 0, "got %d\n", length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length > 0, "got %ld\n", length);
hr = IXMLDOMCDATASection_splitText(cdata, 0, NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
text = (void*)0xdeadbeef;
/* negative offset */
hr = IXMLDOMCDATASection_splitText(cdata, -1, &text);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(text == (void*)0xdeadbeef, "got %p\n", text);
text = (void*)0xdeadbeef;
/* offset outside data */
hr = IXMLDOMCDATASection_splitText(cdata, length + 1, &text);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(text == 0, "got %p\n", text);
text = (void*)0xdeadbeef;
/* offset outside data */
hr = IXMLDOMCDATASection_splitText(cdata, length, &text);
- ok(hr == S_FALSE, "got 0x%08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(text == 0, "got %p\n", text);
/* no empty node created */
node = (void*)0xdeadbeef;
hr = IXMLDOMCDATASection_get_nextSibling(cdata, &node);
- ok(hr == S_FALSE, "got 0x%08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(node == 0, "got %p\n", text);
hr = IXMLDOMCDATASection_splitText(cdata, 10, &text);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
length = 0;
hr = IXMLDOMText_get_length(text, &length);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(length == 7, "got %d\n", length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 7, "got %ld\n", length);
hr = IXMLDOMCDATASection_get_nextSibling(cdata, &node);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
/* split new text node */
hr = IXMLDOMText_get_length(text, &length);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
node = (void*)0xdeadbeef;
hr = IXMLDOMText_get_nextSibling(text, &node);
- ok(hr == S_FALSE, "got 0x%08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(node == 0, "got %p\n", text);
hr = IXMLDOMText_splitText(text, 0, NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
text2 = (void*)0xdeadbeef;
/* negative offset */
hr = IXMLDOMText_splitText(text, -1, &text2);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(text2 == (void*)0xdeadbeef, "got %p\n", text2);
text2 = (void*)0xdeadbeef;
/* offset outside data */
hr = IXMLDOMText_splitText(text, length + 1, &text2);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(text2 == 0, "got %p\n", text2);
text2 = (void*)0xdeadbeef;
/* offset outside data */
hr = IXMLDOMText_splitText(text, length, &text2);
- ok(hr == S_FALSE, "got 0x%08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(text2 == 0, "got %p\n", text);
text2 = 0;
hr = IXMLDOMText_splitText(text, 4, &text2);
- todo_wine ok(hr == S_OK, "got 0x%08x\n", hr);
+ todo_wine ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if (text2) IXMLDOMText_Release(text2);
node = 0;
hr = IXMLDOMText_get_nextSibling(text, &node);
- todo_wine ok(hr == S_OK, "got 0x%08x\n", hr);
+ todo_wine ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if (node) IXMLDOMNode_Release(node);
IXMLDOMText_Release(text);
@@ -7683,65 +7979,65 @@ static void test_getQualifiedItem(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_TRUE, "failed to load XML string\n");
hr = IXMLDOMDocument_get_documentElement(doc, &element);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_get_childNodes(element, &root_list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNodeList_get_item(root_list, 1, &pr_node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNodeList_Release(root_list);
hr = IXMLDOMNode_get_attributes(pr_node, &map);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(pr_node);
len = 0;
hr = IXMLDOMNamedNodeMap_get_length(map, &len);
- EXPECT_HR(hr, S_OK);
- ok( len == 3, "length %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok( len == 3, "length %ld\n", len);
hr = IXMLDOMNamedNodeMap_getQualifiedItem(map, NULL, NULL, NULL);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
node = (void*)0xdeadbeef;
hr = IXMLDOMNamedNodeMap_getQualifiedItem(map, NULL, NULL, &node);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok( node == (void*)0xdeadbeef, "got %p\n", node);
hr = IXMLDOMNamedNodeMap_getQualifiedItem(map, _bstr_("id"), NULL, NULL);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNamedNodeMap_getQualifiedItem(map, _bstr_("id"), NULL, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
IXMLDOMNamedNodeMap_Release(map);
IXMLDOMElement_Release(element);
hr = IXMLDOMDocument_loadXML(doc, _bstr_(default_ns_doc), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_selectSingleNode(doc, _bstr_("a"), &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMElement, (void**)&element);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
hr = IXMLDOMElement_get_attributes(element, &map);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ptr = qualified_item_tests;
while (ptr->name)
{
node = (void*)0xdeadbeef;
hr = IXMLDOMNamedNodeMap_getQualifiedItem(map, _bstr_(ptr->name), _bstr_(ptr->uri), &node);
- ok(hr == ptr->hr, "%s, %s: got 0x%08x, expected 0x%08x\n", ptr->name, ptr->uri, hr, ptr->hr);
+ ok(hr == ptr->hr, "%s, %s: unexpected hr %#lx, expected %#lx.\n", ptr->name, ptr->uri, hr, ptr->hr);
if (hr == S_OK)
IXMLDOMNode_Release(node);
else
@@ -7754,7 +8050,7 @@ static void test_getQualifiedItem(void)
{
node = (void*)0xdeadbeef;
hr = IXMLDOMNamedNodeMap_getNamedItem(map, _bstr_(ptr->name), &node);
- ok(hr == ptr->hr, "%s: got 0x%08x, expected 0x%08x\n", ptr->name, hr, ptr->hr);
+ ok(hr == ptr->hr, "%s: unexpected hr %#lx, expected %#lx.\n", ptr->name, hr, ptr->hr);
if (hr == S_OK)
IXMLDOMNode_Release(node);
else
@@ -7787,41 +8083,41 @@ static void test_removeQualifiedItem(void)
ok( b == VARIANT_TRUE, "failed to load XML string\n");
hr = IXMLDOMDocument_get_documentElement(doc, &element);
- ok( hr == S_OK, "ret %08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_get_childNodes(element, &root_list);
- ok( hr == S_OK, "ret %08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNodeList_get_item(root_list, 1, &pr_node);
- ok( hr == S_OK, "ret %08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNodeList_Release(root_list);
hr = IXMLDOMNode_get_attributes(pr_node, &map);
- ok( hr == S_OK, "ret %08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(pr_node);
hr = IXMLDOMNamedNodeMap_get_length(map, &len);
- ok( hr == S_OK, "ret %08x\n", hr);
- ok( len == 3, "length %d\n", len);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok( len == 3, "length %ld\n", len);
hr = IXMLDOMNamedNodeMap_removeQualifiedItem(map, NULL, NULL, NULL);
- ok( hr == E_INVALIDARG, "ret %08x\n", hr);
+ ok( hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
node = (void*)0xdeadbeef;
hr = IXMLDOMNamedNodeMap_removeQualifiedItem(map, NULL, NULL, &node);
- ok( hr == E_INVALIDARG, "ret %08x\n", hr);
+ ok( hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok( node == (void*)0xdeadbeef, "got %p\n", node);
/* out pointer is optional */
hr = IXMLDOMNamedNodeMap_removeQualifiedItem(map, _bstr_("id"), NULL, NULL);
- ok( hr == S_OK, "ret %08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* already removed */
hr = IXMLDOMNamedNodeMap_removeQualifiedItem(map, _bstr_("id"), NULL, NULL);
- ok( hr == S_FALSE, "ret %08x\n", hr);
+ ok( hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNamedNodeMap_removeQualifiedItem(map, _bstr_("vr"), NULL, &node);
- ok( hr == S_OK, "ret %08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
IXMLDOMNamedNodeMap_Release( map );
@@ -7838,19 +8134,21 @@ static inline void _check_default_props(int line, IXMLDOMDocument2* doc)
HRESULT hr;
VariantInit(&var);
- helper_ole_check(IXMLDOMDocument2_getProperty(doc, _bstr_("SelectionLanguage"), &var));
- ok_(__FILE__, line)(lstrcmpW(V_BSTR(&var), _bstr_("XSLPattern")) == 0, "expected XSLPattern\n");
+ hr = IXMLDOMDocument2_getProperty(doc, _bstr_("SelectionLanguage"), &var);
+ ok_(__FILE__, line)(hr == S_OK, "Unexpected hr %#lx.\n", hr);
VariantClear(&var);
- helper_ole_check(IXMLDOMDocument2_getProperty(doc, _bstr_("SelectionNamespaces"), &var));
- ok_(__FILE__, line)(lstrcmpW(V_BSTR(&var), _bstr_("")) == 0, "expected empty string\n");
+ hr = IXMLDOMDocument2_getProperty(doc, _bstr_("SelectionNamespaces"), &var);
+ ok_(__FILE__, line)(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok_(__FILE__, line)(lstrcmpW(V_BSTR(&var), L"") == 0, "expected empty string\n");
VariantClear(&var);
- helper_ole_check(IXMLDOMDocument2_get_preserveWhiteSpace(doc, &b));
+ hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc, &b);
+ ok_(__FILE__, line)(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok_(__FILE__, line)(b == VARIANT_FALSE, "expected FALSE\n");
hr = IXMLDOMDocument2_get_schemas(doc, &var);
- ok_(__FILE__, line)(hr == S_FALSE, "got %08x\n", hr);
+ ok_(__FILE__, line)(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
VariantClear(&var);
}
@@ -7859,20 +8157,25 @@ static inline void _check_set_props(int line, IXMLDOMDocument2* doc)
{
VARIANT_BOOL b;
VARIANT var;
+ HRESULT hr;
VariantInit(&var);
- helper_ole_check(IXMLDOMDocument2_getProperty(doc, _bstr_("SelectionLanguage"), &var));
- ok_(__FILE__, line)(lstrcmpW(V_BSTR(&var), _bstr_("XPath")) == 0, "expected XPath\n");
+ hr = IXMLDOMDocument2_getProperty(doc, _bstr_("SelectionLanguage"), &var);
+ ok_(__FILE__, line)(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok_(__FILE__, line)(lstrcmpW(V_BSTR(&var), L"XPath") == 0, "expected XPath\n");
VariantClear(&var);
- helper_ole_check(IXMLDOMDocument2_getProperty(doc, _bstr_("SelectionNamespaces"), &var));
- ok_(__FILE__, line)(lstrcmpW(V_BSTR(&var), _bstr_("xmlns:wi=\'www.winehq.org\'")) == 0, "got %s\n", wine_dbgstr_w(V_BSTR(&var)));
+ hr = IXMLDOMDocument2_getProperty(doc, _bstr_("SelectionNamespaces"), &var);
+ ok_(__FILE__, line)(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok_(__FILE__, line)(lstrcmpW(V_BSTR(&var), L"xmlns:wi=\'www.winehq.org\'") == 0, "got %s\n", wine_dbgstr_w(V_BSTR(&var)));
VariantClear(&var);
- helper_ole_check(IXMLDOMDocument2_get_preserveWhiteSpace(doc, &b));
+ hr = IXMLDOMDocument2_get_preserveWhiteSpace(doc, &b);
+ ok_(__FILE__, line)(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok_(__FILE__, line)(b == VARIANT_TRUE, "expected TRUE\n");
- helper_ole_check(IXMLDOMDocument2_get_schemas(doc, &var));
+ hr = IXMLDOMDocument2_get_schemas(doc, &var);
+ ok_(__FILE__, line)(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok_(__FILE__, line)(V_VT(&var) != VT_NULL, "expected pointer\n");
VariantClear(&var);
}
@@ -7881,16 +8184,22 @@ static inline void _check_set_props(int line, IXMLDOMDocument2* doc)
static inline void _set_props(int line, IXMLDOMDocument2* doc, IXMLDOMSchemaCollection* cache)
{
VARIANT var;
+ HRESULT hr;
VariantInit(&var);
- helper_ole_check(IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionLanguage"), _variantbstr_("XPath")));
- helper_ole_check(IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"), _variantbstr_("xmlns:wi=\'www.winehq.org\'")));
- helper_ole_check(IXMLDOMDocument2_put_preserveWhiteSpace(doc, VARIANT_TRUE));
+ hr = IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionLanguage"), _variantbstr_("XPath"));
+ ok_(__FILE__, line)(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"), _variantbstr_("xmlns:wi=\'www.winehq.org\'"));
+ ok_(__FILE__, line)(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc, VARIANT_TRUE);
+ ok_(__FILE__, line)(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&var) = VT_DISPATCH;
V_DISPATCH(&var) = NULL;
- helper_ole_check(IXMLDOMSchemaCollection_QueryInterface(cache, &IID_IDispatch, (void**)&V_DISPATCH(&var)));
+ hr = IXMLDOMSchemaCollection_QueryInterface(cache, &IID_IDispatch, (void**)&V_DISPATCH(&var));
+ ok_(__FILE__, line)(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok_(__FILE__, line)(V_DISPATCH(&var) != NULL, "expected pointer\n");
- helper_ole_check(IXMLDOMDocument2_putref_schemas(doc, var));
+ hr = IXMLDOMDocument2_putref_schemas(doc, var);
+ ok_(__FILE__, line)(hr == S_OK, "Unexpected hr %#lx.\n", hr);
VariantClear(&var);
}
@@ -7898,13 +8207,18 @@ static inline void _set_props(int line, IXMLDOMDocument2* doc, IXMLDOMSchemaColl
static inline void _unset_props(int line, IXMLDOMDocument2* doc)
{
VARIANT var;
+ HRESULT hr;
VariantInit(&var);
- helper_ole_check(IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionLanguage"), _variantbstr_("XSLPattern")));
- helper_ole_check(IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"), _variantbstr_("")));
- helper_ole_check(IXMLDOMDocument2_put_preserveWhiteSpace(doc, VARIANT_FALSE));
+ hr = IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionLanguage"), _variantbstr_("XSLPattern"));
+ ok_(__FILE__, line)(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"), _variantbstr_(""));
+ ok_(__FILE__, line)(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument2_put_preserveWhiteSpace(doc, VARIANT_FALSE);
+ ok_(__FILE__, line)(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&var) = VT_NULL;
- helper_ole_check(IXMLDOMDocument2_putref_schemas(doc, var));
+ hr = IXMLDOMDocument2_putref_schemas(doc, var);
+ ok_(__FILE__, line)(hr == S_OK, "Unexpected hr %#lx.\n", hr);
VariantClear(&var);
}
@@ -7938,7 +8252,8 @@ static void test_get_ownerDocument(void)
VariantInit(&var);
- ole_check(IXMLDOMDocument2_loadXML(doc, _bstr_(complete4A), &b));
+ hr = IXMLDOMDocument2_loadXML(doc, _bstr_(complete4A), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
check_default_props(doc);
@@ -7947,32 +8262,40 @@ static void test_get_ownerDocument(void)
set_props(doc, cache);
check_set_props(doc);
- ole_check(IXMLDOMDocument2_get_firstChild(doc, &node));
- ole_check(IXMLDOMNode_get_ownerDocument(node, &doc1));
+ hr = IXMLDOMDocument2_get_firstChild(doc, &node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNode_get_ownerDocument(node, &doc1);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* new interface keeps props */
- ole_check(IXMLDOMDocument_QueryInterface(doc1, &IID_IXMLDOMDocument2, (void**)&doc_owner));
+ hr = IXMLDOMDocument_QueryInterface(doc1, &IID_IXMLDOMDocument2, (void**)&doc_owner);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( doc_owner != doc, "got %p, doc %p\n", doc_owner, doc);
check_set_props(doc_owner);
IXMLDOMDocument2_Release(doc_owner);
- ole_check(IXMLDOMNode_get_ownerDocument(node, &doc2));
+ hr = IXMLDOMNode_get_ownerDocument(node, &doc2);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
ok(doc1 != doc2, "got %p, expected %p. original %p\n", doc2, doc1, doc);
/* reload */
- ole_check(IXMLDOMDocument2_loadXML(doc, _bstr_(complete4A), &b));
+ hr = IXMLDOMDocument2_loadXML(doc, _bstr_(complete4A), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
/* properties retained even after reload */
check_set_props(doc);
- ole_check(IXMLDOMDocument2_get_firstChild(doc, &node));
- ole_check(IXMLDOMNode_get_ownerDocument(node, &doc3));
+ hr = IXMLDOMDocument2_get_firstChild(doc, &node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNode_get_ownerDocument(node, &doc3);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
- ole_check(IXMLDOMDocument_QueryInterface(doc3, &IID_IXMLDOMDocument2, (void**)&doc_owner));
+ hr = IXMLDOMDocument_QueryInterface(doc3, &IID_IXMLDOMDocument2, (void**)&doc_owner);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(doc3 != doc1 && doc3 != doc2 && doc_owner != doc, "got %p, (%p, %p, %p)\n", doc3, doc, doc1, doc2);
check_set_props(doc_owner);
@@ -7983,24 +8306,24 @@ static void test_get_ownerDocument(void)
/* NULL check */
hr = IXMLDOMDocument_loadXML(doc1, _bstr_(nodeXML), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
hr = IXMLDOMDocument_get_documentElement(doc1, &element);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_get_childNodes(element, &node_list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNodeList_get_length(node_list, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
for(i = 0; i < len; i++) {
hr = IXMLDOMNodeList_get_item(node_list, i, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_ownerDocument(node, NULL);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
}
@@ -8008,17 +8331,17 @@ static void test_get_ownerDocument(void)
/* Test Attribute Node */
hr = IXMLDOMNodeList_get_item(node_list, 2, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMElement, (void**)&element);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
hr = IXMLDOMElement_getAttributeNode(element, _bstr_("attr"), &attr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(attr != NULL, "attr == NULL\n");
IXMLDOMElement_Release(element);
hr = IXMLDOMAttribute_get_ownerDocument(attr, NULL);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
IXMLDOMAttribute_Release(attr);
IXMLDOMNodeList_Release(node_list);
@@ -8027,7 +8350,7 @@ static void test_get_ownerDocument(void)
IXMLDOMDocument_Release(doc2);
IXMLDOMDocument_Release(doc3);
IXMLDOMDocument2_Release(doc);
- //IXMLDOMDocument2_Release(doc_owner); FIXME: double-free!
+ IXMLDOMDocument2_Release(doc_owner);
free_bstrs();
}
@@ -8049,32 +8372,32 @@ static void test_setAttributeNode(void)
ok( b == VARIANT_TRUE, "failed to load XML string\n");
hr = IXMLDOMDocument_get_documentElement(doc, &elem);
- ok( hr == S_OK, "got 0x%08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_get_documentElement(doc, &elem2);
- ok( hr == S_OK, "got 0x%08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( elem2 != elem, "got same instance\n");
ret_attr = (void*)0xdeadbeef;
hr = IXMLDOMElement_setAttributeNode(elem, NULL, &ret_attr);
- ok( hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok( hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok( ret_attr == (void*)0xdeadbeef, "got %p\n", ret_attr);
hr = IXMLDOMDocument_createAttribute(doc, _bstr_("attr"), &attr);
- ok( hr == S_OK, "got 0x%08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
ref1 = IXMLDOMElement_AddRef(elem);
IXMLDOMElement_Release(elem);
ret_attr = (void*)0xdeadbeef;
hr = IXMLDOMElement_setAttributeNode(elem, attr, &ret_attr);
- ok( hr == S_OK, "got 0x%08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( ret_attr == NULL, "got %p\n", ret_attr);
/* no reference added */
ref2 = IXMLDOMElement_AddRef(elem);
IXMLDOMElement_Release(elem);
- ok(ref2 == ref1, "got %d, expected %d\n", ref2, ref1);
+ ok(ref2 == ref1, "got %ld, expected %ld\n", ref2, ref1);
EXPECT_CHILDREN(elem);
EXPECT_CHILDREN(elem2);
@@ -8083,24 +8406,24 @@ static void test_setAttributeNode(void)
attr2 = NULL;
hr = IXMLDOMElement_getAttributeNode(elem, _bstr_("attr"), &attr2);
- ok( hr == S_OK, "got 0x%08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( attr2 != attr, "got same instance %p\n", attr2);
IXMLDOMAttribute_Release(attr2);
/* try to add it another time */
ret_attr = (void*)0xdeadbeef;
hr = IXMLDOMElement_setAttributeNode(elem, attr, &ret_attr);
- ok( hr == E_FAIL, "got 0x%08x\n", hr);
+ ok( hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok( ret_attr == (void*)0xdeadbeef, "got %p\n", ret_attr);
IXMLDOMElement_Release(elem);
/* initially used element is released, attribute still 'has' a container */
hr = IXMLDOMDocument_get_documentElement(doc, &elem);
- ok( hr == S_OK, "got 0x%08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
ret_attr = (void*)0xdeadbeef;
hr = IXMLDOMElement_setAttributeNode(elem, attr, &ret_attr);
- ok( hr == E_FAIL, "got 0x%08x\n", hr);
+ ok( hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok( ret_attr == (void*)0xdeadbeef, "got %p\n", ret_attr);
IXMLDOMElement_Release(elem);
@@ -8112,20 +8435,20 @@ static void test_setAttributeNode(void)
ok( b == VARIANT_TRUE, "failed to load XML string\n");
hr = IXMLDOMDocument_get_documentElement(doc2, &elem);
- ok( hr == S_OK, "got 0x%08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_setAttributeNode(elem, attr, NULL);
- ok( hr == E_FAIL, "got 0x%08x\n", hr);
+ ok( hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
IXMLDOMElement_Release(elem);
IXMLDOMAttribute_Release(attr);
/* create element, add attribute, see if it's copied or linked */
hr = IXMLDOMDocument_createElement(doc, _bstr_("test"), &elem);
- ok( hr == S_OK, "got 0x%08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
attr = NULL;
hr = IXMLDOMDocument_createAttribute(doc, _bstr_("attr"), &attr);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(attr != NULL, "got %p\n", attr);
ref1 = IXMLDOMAttribute_AddRef(attr);
@@ -8134,39 +8457,39 @@ static void test_setAttributeNode(void)
V_VT(&v) = VT_BSTR;
V_BSTR(&v) = _bstr_("attrvalue1");
hr = IXMLDOMAttribute_put_nodeValue(attr, v);
- ok( hr == S_OK, "got 0x%08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
str = NULL;
hr = IXMLDOMAttribute_get_xml(attr, &str);
- ok( hr == S_OK, "got 0x%08x\n", hr);
- ok( lstrcmpW(str, _bstr_("attr=\"attrvalue1\"")) == 0,
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(lstrcmpW(str, L"attr=\"attrvalue1\"") == 0,
"got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
ret_attr = (void*)0xdeadbeef;
hr = IXMLDOMElement_setAttributeNode(elem, attr, &ret_attr);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(ret_attr == NULL, "got %p\n", ret_attr);
/* attribute reference increased */
ref2 = IXMLDOMAttribute_AddRef(attr);
IXMLDOMAttribute_Release(attr);
- ok(ref1 == ref2, "got %d, expected %d\n", ref2, ref1);
+ ok(ref1 == ref2, "got %ld, expected %ld\n", ref2, ref1);
hr = IXMLDOMElement_get_xml(elem, &str);
- ok( hr == S_OK, "got 0x%08x\n", hr);
- ok( lstrcmpW(str, _bstr_("")) == 0,
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(lstrcmpW(str, L"") == 0,
"got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
V_VT(&v) = VT_BSTR;
V_BSTR(&v) = _bstr_("attrvalue2");
hr = IXMLDOMAttribute_put_nodeValue(attr, v);
- ok( hr == S_OK, "got 0x%08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_get_xml(elem, &str);
- ok( hr == S_OK, "got 0x%08x\n", hr);
- todo_wine ok( lstrcmpW(str, _bstr_("")) == 0,
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ todo_wine ok(lstrcmpW(str, L"") == 0,
"got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
@@ -8193,18 +8516,18 @@ static void test_createNode(void)
/* reference count tests */
hr = IXMLDOMDocument_createElement(doc, _bstr_("elem"), &elem);
- ok( hr == S_OK, "got 0x%08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* initial reference is 2 */
todo_wine {
EXPECT_REF(elem, 2);
ref = IXMLDOMElement_Release(elem);
- ok(ref == 1, "got %d\n", ref);
+ ok(ref == 1, "got %ld\n", ref);
/* it's released already, attempt to release now will crash it */
}
hr = IXMLDOMDocument_createElement(doc, _bstr_("elem"), &elem);
- ok( hr == S_OK, "got 0x%08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine EXPECT_REF(elem, 2);
IXMLDOMDocument_Release(doc);
todo_wine EXPECT_REF(elem, 2);
@@ -8218,40 +8541,40 @@ todo_wine {
V_I4(&v) = NODE_ELEMENT;
hr = IXMLDOMDocument_createNode(doc, v, _bstr_("ns1:test"), _bstr_("http://winehq.org"), &node);
- ok( hr == S_OK, "got 0x%08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
prefix = NULL;
hr = IXMLDOMNode_get_prefix(node, &prefix);
- ok( hr == S_OK, "got 0x%08x\n", hr);
- ok(lstrcmpW(prefix, _bstr_("ns1")) == 0, "wrong prefix\n");
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(lstrcmpW(prefix, L"ns1") == 0, "wrong prefix\n");
SysFreeString(prefix);
IXMLDOMNode_Release(node);
/* 2. default namespace */
hr = IXMLDOMDocument_createNode(doc, v, _bstr_("test"), _bstr_("http://winehq.org/default"), &node);
- ok( hr == S_OK, "got 0x%08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
prefix = (void*)0xdeadbeef;
hr = IXMLDOMNode_get_prefix(node, &prefix);
- ok( hr == S_FALSE, "got 0x%08x\n", hr);
+ ok( hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(prefix == 0, "expected empty prefix, got %p\n", prefix);
/* check dump */
hr = IXMLDOMNode_get_xml(node, &str);
- ok( hr == S_OK, "got 0x%08x\n", hr);
- ok( lstrcmpW(str, _bstr_("")) == 0,
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(lstrcmpW(str, L"") == 0,
"got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMElement, (void**)&elem);
- ok( hr == S_OK, "got 0x%08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&var) = VT_BSTR;
hr = IXMLDOMElement_getAttribute(elem, _bstr_("xmlns"), &var);
- ok( hr == S_FALSE, "got 0x%08x\n", hr);
+ ok( hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok( V_VT(&var) == VT_NULL, "got %d\n", V_VT(&var));
str = NULL;
hr = IXMLDOMElement_get_namespaceURI(elem, &str);
- ok( hr == S_OK, "got 0x%08x\n", hr);
- ok( lstrcmpW(str, _bstr_("http://winehq.org/default")) == 0, "expected default namespace\n");
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(lstrcmpW(str, L"http://winehq.org/default") == 0, "expected default namespace\n");
SysFreeString(str);
IXMLDOMElement_Release(elem);
@@ -8282,96 +8605,96 @@ static void test_get_prefix(void)
/* 1. document */
str = (void*)0xdeadbeef;
hr = IXMLDOMDocument_get_prefix(doc, &str);
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(str == NULL, "got %p\n", str);
hr = IXMLDOMDocument_get_prefix(doc, NULL);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
/* 2. cdata */
hr = IXMLDOMDocument_createCDATASection(doc, NULL, &cdata);
- ok(hr == S_OK, "got %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
str = (void*)0xdeadbeef;
hr = IXMLDOMCDATASection_get_prefix(cdata, &str);
- ok(hr == S_FALSE, "got %08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok( str == 0, "got %p\n", str);
hr = IXMLDOMCDATASection_get_prefix(cdata, NULL);
- ok(hr == E_INVALIDARG, "got %08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
IXMLDOMCDATASection_Release(cdata);
/* 3. comment */
hr = IXMLDOMDocument_createComment(doc, NULL, &comment);
- ok(hr == S_OK, "got %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
str = (void*)0xdeadbeef;
hr = IXMLDOMComment_get_prefix(comment, &str);
- ok(hr == S_FALSE, "got %08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok( str == 0, "got %p\n", str);
hr = IXMLDOMComment_get_prefix(comment, NULL);
- ok(hr == E_INVALIDARG, "got %08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
IXMLDOMComment_Release(comment);
/* 4. fragment */
hr = IXMLDOMDocument_createDocumentFragment(doc, &fragment);
- ok(hr == S_OK, "got %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
str = (void*)0xdeadbeef;
hr = IXMLDOMDocumentFragment_get_prefix(fragment, &str);
- ok(hr == S_FALSE, "got %08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok( str == 0, "got %p\n", str);
hr = IXMLDOMDocumentFragment_get_prefix(fragment, NULL);
- ok(hr == E_INVALIDARG, "got %08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
IXMLDOMDocumentFragment_Release(fragment);
/* no prefix */
hr = IXMLDOMDocument_createElement(doc, _bstr_("elem"), &element);
- ok( hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_get_prefix(element, NULL);
- ok( hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
str = (void*)0xdeadbeef;
hr = IXMLDOMElement_get_prefix(element, &str);
- ok( hr == S_FALSE, "got 0x%08x\n", hr);
- ok( str == 0, "got %p\n", str);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ ok(str == 0, "got %p\n", str);
IXMLDOMElement_Release(element);
/* with prefix */
hr = IXMLDOMDocument_createElement(doc, _bstr_("a:elem"), &element);
- ok( hr == S_OK, "got 0x%08x\n", hr);
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
str = (void*)0xdeadbeef;
hr = IXMLDOMElement_get_prefix(element, &str);
- ok( hr == S_OK, "got 0x%08x\n", hr);
- ok( lstrcmpW(str, _bstr_("a")) == 0, "expected prefix \"a\"\n");
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(lstrcmpW(str, L"a") == 0, "expected prefix \"a\"\n");
SysFreeString(str);
str = (void*)0xdeadbeef;
hr = IXMLDOMElement_get_namespaceURI(element, &str);
- ok( hr == S_FALSE, "got 0x%08x\n", hr);
+ ok( hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok( str == 0, "got %p\n", str);
IXMLDOMElement_Release(element);
hr = IXMLDOMDocument_loadXML(doc, _bstr_(get_prefix_doc), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_get_documentElement(doc, &element);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
str = (void*)0xdeadbeef;
hr = IXMLDOMElement_get_prefix(element, &str);
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(str == NULL, "got %p\n", str);
str = (void*)0xdeadbeef;
hr = IXMLDOMElement_get_namespaceURI(element, &str);
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(str == NULL, "got %s\n", wine_dbgstr_w(str));
IXMLDOMDocument_Release(doc);
@@ -8390,52 +8713,52 @@ static void test_selectSingleNode(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_selectSingleNode(doc, NULL, NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_selectNodes(doc, NULL, NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
ok( hr == S_OK, "loadXML failed\n");
ok( b == VARIANT_TRUE, "failed to load XML string\n");
hr = IXMLDOMDocument_selectSingleNode(doc, NULL, NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_selectNodes(doc, NULL, NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_selectSingleNode(doc, _bstr_("lc"), NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_selectNodes(doc, _bstr_("lc"), NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_selectSingleNode(doc, _bstr_("lc"), &node);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
hr = IXMLDOMDocument_selectNodes(doc, _bstr_("lc"), &list);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNodeList_Release(list);
list = (void*)0xdeadbeef;
hr = IXMLDOMDocument_selectNodes(doc, NULL, &list);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(list == (void*)0xdeadbeef, "got %p\n", list);
node = (void*)0xdeadbeef;
hr = IXMLDOMDocument_selectSingleNode(doc, _bstr_("nonexistent"), &node);
- ok(hr == S_FALSE, "got 0x%08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(node == 0, "got %p\n", node);
list = (void*)0xdeadbeef;
hr = IXMLDOMDocument_selectNodes(doc, _bstr_("nonexistent"), &list);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = 1;
hr = IXMLDOMNodeList_get_length(list, &len);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(len == 0, "got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(len == 0, "got %ld\n", len);
IXMLDOMNodeList_Release(list);
IXMLDOMDocument_Release(doc);
@@ -8454,16 +8777,16 @@ static void test_events(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_QueryInterface(doc, &IID_IConnectionPointContainer, (void**)&conn);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IConnectionPointContainer_FindConnectionPoint(conn, &IID_IDispatch, &point);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IConnectionPoint_Release(point);
hr = IConnectionPointContainer_FindConnectionPoint(conn, &IID_IPropertyNotifySink, &point);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IConnectionPoint_Release(point);
hr = IConnectionPointContainer_FindConnectionPoint(conn, &DIID_XMLDOMDocumentEvents, &point);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IConnectionPoint_Release(point);
IConnectionPointContainer_Release(conn);
@@ -8471,40 +8794,40 @@ static void test_events(void)
/* ready state callback */
VariantInit(&v);
hr = IXMLDOMDocument_put_onreadystatechange(doc, v);
- ok(hr == DISP_E_TYPEMISMATCH, "got 0x%08x\n", hr);
+ ok(hr == DISP_E_TYPEMISMATCH, "Unexpected hr %#lx.\n", hr);
event = create_dispevent();
V_VT(&v) = VT_UNKNOWN;
V_UNKNOWN(&v) = (IUnknown*)event;
hr = IXMLDOMDocument_put_onreadystatechange(doc, v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(event, 2);
V_VT(&v) = VT_DISPATCH;
V_DISPATCH(&v) = event;
hr = IXMLDOMDocument_put_onreadystatechange(doc, v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(event, 2);
/* VT_NULL doesn't reset event handler */
V_VT(&v) = VT_NULL;
hr = IXMLDOMDocument_put_onreadystatechange(doc, v);
- ok(hr == DISP_E_TYPEMISMATCH, "got 0x%08x\n", hr);
+ ok(hr == DISP_E_TYPEMISMATCH, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(event, 2);
V_VT(&v) = VT_DISPATCH;
V_DISPATCH(&v) = NULL;
hr = IXMLDOMDocument_put_onreadystatechange(doc, v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(event, 1);
V_VT(&v) = VT_UNKNOWN;
V_DISPATCH(&v) = NULL;
hr = IXMLDOMDocument_put_onreadystatechange(doc, v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IDispatch_Release(event);
@@ -8513,23 +8836,170 @@ static void test_events(void)
static void test_createProcessingInstruction(void)
{
- static const WCHAR bodyW[] = {'t','e','s','t',0};
+ static const WCHAR xml1[] = L"\r\n\r\n";
+ static const char xml2[] = "\r\n\r\n";
+ static const char xml2_wine[] = "\n\n";
+ static const char xml3[] = "\r\n\r\n";
+ static const char xml3_wine[] = "\n\n";
IXMLDOMProcessingInstruction *pi;
IXMLDOMDocument *doc;
+ IXMLDOMNode *node, *item;
+ IXMLDOMNamedNodeMap *node_map;
+ IXMLDOMElement *element;
WCHAR buff[10];
+ BSTR xml, bstr;
+ VARIANT var;
HRESULT hr;
+ IStream *stream;
+ LARGE_INTEGER off;
+ VARIANT_BOOL b;
+ HGLOBAL global;
+ char *p;
doc = create_document(&IID_IXMLDOMDocument);
+ hr = IXMLDOMDocument_createProcessingInstruction(doc, _bstr_("xml"), _bstr_("version=\"1.0\" encoding=\"windows-1252\" dummy=\"value\""), &pi);
+ ok(hr == XML_E_UNEXPECTED_ATTRIBUTE, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument_createProcessingInstruction(doc, NULL, _bstr_("version=\"1.0\" encoding=\"UTF-8\""), &pi);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument_createProcessingInstruction(doc, _bstr_("xml"), NULL, &pi);
+ ok(hr == XML_E_XMLDECLSYNTAX, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument_createProcessingInstruction(doc, _bstr_("xml"), _bstr_("version=\"1.0\" encoding=UTF-8"), &pi);
+ ok(hr == XML_E_MISSINGQUOTE, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument_createProcessingInstruction(doc, _bstr_("xml"), _bstr_("version=\"1.0\" encoding='UTF-8\""), &pi);
+ ok(hr == XML_E_BADCHARINSTRING, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument_createProcessingInstruction(doc, _bstr_("xml"), _bstr_("version=\"1.0\" encoding=\"UTF-8"), &pi);
+ ok(hr == XML_E_BADCHARINSTRING, "Unexpected hr %#lx.\n", hr);
+ pi = NULL;
+ hr = IXMLDOMDocument_createProcessingInstruction(doc, _bstr_("xml"), _bstr_("version=\"1.0\" encoding='UTF-8'"), &pi);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMProcessingInstruction_QueryInterface(pi, &IID_IXMLDOMNode, (void **)&node);
+ node_map = NULL;
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNode_get_attributes(node, &node_map);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ IXMLDOMNamedNodeMap_Release(node_map);
+ IXMLDOMNode_Release(node);
+ IXMLDOMProcessingInstruction_Release(pi);
+
/* test for BSTR handling, pass broken BSTR */
- memcpy(&buff[2], bodyW, sizeof(bodyW));
+ memcpy(&buff[2], L"test", 5 * sizeof(WCHAR));
/* just a big length */
*(DWORD*)buff = 0xf0f0;
hr = IXMLDOMDocument_createProcessingInstruction(doc, _bstr_("test"), &buff[2], &pi);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMProcessingInstruction_Release(pi);
IXMLDOMDocument_Release(doc);
+
+ doc = create_document(&IID_IXMLDOMDocument);
+
+ hr = IXMLDOMDocument_createProcessingInstruction(doc, _bstr_("xml"), _bstr_("version=\"1.0\" encoding=\"windows-1252\""), &pi);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMProcessingInstruction_QueryInterface(pi, &IID_IXMLDOMNode, (void **)&node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument_appendChild(doc, node, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IXMLDOMNode_get_attributes(node, &node_map);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ item = (void *)0xdeadbeef;
+ hr = IXMLDOMNamedNodeMap_getNamedItem(node_map, _bstr_("xml"), &item);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ ok(!item, "got %p\n", item);
+
+ item = NULL;
+ hr = IXMLDOMNamedNodeMap_getNamedItem(node_map, _bstr_("encoding"), &item);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(item != NULL, "got NULL\n");
+
+ hr = IXMLDOMNode_get_nodeName(item, &bstr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(bstr, L"encoding"), "got %s\n", wine_dbgstr_w(bstr));
+ SysFreeString(bstr);
+
+ VariantInit(&var);
+ hr = IXMLDOMNode_get_nodeValue(item, &var);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&var) == VT_BSTR, "got %u\n", V_VT(&var));
+ ok(!lstrcmpW(V_BSTR(&var), L"windows-1252"), "got %s\n", wine_dbgstr_w(V_BSTR(&var)));
+ VariantClear(&var);
+
+ IXMLDOMNamedNodeMap_Release(node_map);
+ IXMLDOMNode_Release(node);
+ IXMLDOMProcessingInstruction_Release(pi);
+
+ hr = IXMLDOMDocument_createElement(doc, _bstr_("test"), &element);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument_appendChild(doc, (IXMLDOMNode *)element, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ IXMLDOMElement_Release(element);
+
+ hr = IXMLDOMDocument_get_xml(doc, &xml);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ todo_wine
+ ok(!wcscmp(xml, xml1), "got %s\n", wine_dbgstr_w(xml));
+ SysFreeString(xml);
+
+ hr = CreateStreamOnHGlobal(NULL, TRUE, &stream);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ V_VT(&var) = VT_UNKNOWN;
+ V_UNKNOWN(&var) = (IUnknown*)stream;
+ hr = IXMLDOMDocument_save(doc, var);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = GetHGlobalFromStream(stream, &global);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ p = GlobalLock(global);
+ ok(!memcmp(p, xml2, sizeof(xml2) - 1) || !memcmp(p, xml2_wine, sizeof(xml2_wine) - 1), "got %s\n", wine_dbgstr_a(p));
+ GlobalUnlock(global);
+
+ /* Verify the result after load+save */
+ off.QuadPart = 0;
+ hr = IStream_Seek(stream, off, STREAM_SEEK_SET, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IXMLDOMDocument_load(doc, var, &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(b == VARIANT_TRUE, "got %d\n", b);
+
+ off.QuadPart = 0;
+ hr = IStream_Seek(stream, off, STREAM_SEEK_SET, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IXMLDOMDocument_save(doc, var);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = GetHGlobalFromStream(stream, &global);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ p = GlobalLock(global);
+ ok(!memcmp(p, xml2, sizeof(xml2) - 1) || !memcmp(p, xml2_wine, sizeof(xml2_wine) - 1), "got %s\n", wine_dbgstr_a(p));
+ GlobalUnlock(global);
+
+ IStream_Release(stream);
+
+ hr = IXMLDOMDocument_loadXML(doc, _bstr_("\r\n\r\n"), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(b == VARIANT_TRUE, "got %d\n", b);
+
+ hr = CreateStreamOnHGlobal(NULL, TRUE, &stream);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ V_VT(&var) = VT_UNKNOWN;
+ V_UNKNOWN(&var) = (IUnknown*)stream;
+ hr = IXMLDOMDocument_save(doc, var);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = GetHGlobalFromStream(stream, &global);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ p = GlobalLock(global);
+ ok(!memcmp(p, xml3, sizeof(xml3) - 1) || !memcmp(p, xml3_wine, sizeof(xml3_wine) - 1), "got %s\n", wine_dbgstr_a(p));
+ GlobalUnlock(global);
+
+ IStream_Release(stream);
+ IXMLDOMDocument_Release(doc);
}
static void test_put_nodeTypedValue(void)
@@ -8549,66 +9019,92 @@ static void test_put_nodeTypedValue(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_createElement(doc, _bstr_("Element"), &elem);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&type) = VT_EMPTY;
hr = IXMLDOMElement_get_dataType(elem, &type);
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&type) == VT_NULL, "got %d, expected VT_NULL\n", V_VT(&type));
/* set typed value for untyped node */
V_VT(&type) = VT_I1;
V_I1(&type) = 1;
hr = IXMLDOMElement_put_nodeTypedValue(elem, type);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&type) = VT_EMPTY;
hr = IXMLDOMElement_get_dataType(elem, &type);
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&type) == VT_NULL, "got %d, expected VT_NULL\n", V_VT(&type));
/* no type info stored */
V_VT(&type) = VT_EMPTY;
hr = IXMLDOMElement_get_nodeTypedValue(elem, &type);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&type) == VT_BSTR, "got %d, expected VT_BSTR\n", V_VT(&type));
- ok(memcmp(V_BSTR(&type), _bstr_("1"), 2*sizeof(WCHAR)) == 0,
+ ok(memcmp(V_BSTR(&type), L"1", 2*sizeof(WCHAR)) == 0,
"got %s, expected \"1\"\n", wine_dbgstr_w(V_BSTR(&type)));
VariantClear(&type);
+ /* int */
+ hr = IXMLDOMElement_put_dataType(elem, _bstr_("int"));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ V_VT(&value) = VT_BSTR;
+ V_BSTR(&value) = _bstr_("1");
+ hr = IXMLDOMElement_put_nodeTypedValue(elem, value);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ V_VT(&value) = VT_EMPTY;
+ hr = IXMLDOMElement_get_nodeTypedValue(elem, &value);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&value) == VT_I4, "got %d\n", V_VT(&value));
+ ok(V_I4(&value) == 1, "got %ld\n", V_I4(&value));
+
+ V_VT(&value) = VT_I2;
+ V_I2(&value) = -1;
+ hr = IXMLDOMElement_put_nodeTypedValue(elem, value);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ V_VT(&value) = VT_EMPTY;
+ hr = IXMLDOMElement_get_nodeTypedValue(elem, &value);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&value) == VT_I4, "got %d\n", V_VT(&value));
+ ok(V_I4(&value) == -1, "got %ld\n", V_I4(&value));
+
hr = IXMLDOMElement_get_firstChild(elem, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_removeChild(elem, node, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
hr = IXMLDOMDocument_appendChild(doc, (IXMLDOMNode*)elem, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* bin.base64 */
hr = IXMLDOMElement_put_dataType(elem, _bstr_("bin.base64"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&value) = VT_BSTR;
V_BSTR(&value) = _bstr_("ABCD");
hr = IXMLDOMElement_put_nodeTypedValue(elem, value);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&value) = VT_EMPTY;
hr = IXMLDOMElement_get_nodeTypedValue(elem, &value);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&value) == (VT_UI1|VT_ARRAY), "got %d\n", V_VT(&value));
ok(SafeArrayGetDim(V_ARRAY(&value)) == 1, "got wrong dimension\n");
ubound = 0;
hr = SafeArrayGetUBound(V_ARRAY(&value), 1, &ubound);
- EXPECT_HR(hr, S_OK);
- ok(ubound == 2, "got %d\n", ubound);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(ubound == 2, "got %ld\n", ubound);
lbound = 0;
hr = SafeArrayGetLBound(V_ARRAY(&value), 1, &lbound);
- EXPECT_HR(hr, S_OK);
- ok(lbound == 0, "got %d\n", lbound);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(lbound == 0, "got %ld\n", lbound);
hr = SafeArrayAccessData(V_ARRAY(&value), (void*)&ptr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(ptr[0] == 0, "got %x\n", ptr[0]);
ok(ptr[1] == 0x10, "got %x\n", ptr[1]);
ok(ptr[2] == 0x83, "got %x\n", ptr[2]);
@@ -8617,49 +9113,49 @@ static void test_put_nodeTypedValue(void)
/* when set as VT_BSTR it's stored as is */
hr = IXMLDOMElement_get_firstChild(elem, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_text(node, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("ABCD")), "%s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"ABCD"), "%s\n", wine_dbgstr_w(str));
IXMLDOMNode_Release(node);
SysFreeString(str);
array = SafeArrayCreateVector(VT_UI1, 0, 7);
hr = SafeArrayAccessData(array, (void*)&ptr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
memcpy(ptr, "dGVzdA=", strlen("dGVzdA="));
SafeArrayUnaccessData(array);
V_VT(&value) = VT_UI1|VT_ARRAY;
V_ARRAY(&value) = array;
hr = IXMLDOMElement_put_nodeTypedValue(elem, value);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&value) = VT_EMPTY;
hr = IXMLDOMElement_get_nodeTypedValue(elem, &value);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&value) == (VT_UI1|VT_ARRAY), "got %d\n", V_VT(&value));
ok(SafeArrayGetDim(V_ARRAY(&value)) == 1, "got wrong dimension\n");
ubound = 0;
hr = SafeArrayGetUBound(V_ARRAY(&value), 1, &ubound);
- EXPECT_HR(hr, S_OK);
- ok(ubound == 6, "got %d\n", ubound);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(ubound == 6, "got %ld\n", ubound);
lbound = 0;
hr = SafeArrayGetLBound(V_ARRAY(&value), 1, &lbound);
- EXPECT_HR(hr, S_OK);
- ok(lbound == 0, "got %d\n", lbound);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(lbound == 0, "got %ld\n", lbound);
hr = SafeArrayAccessData(V_ARRAY(&value), (void*)&ptr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!memcmp(ptr, "dGVzdA=", strlen("dGVzdA=")), "got wrong data, %s\n", ptr);
SafeArrayUnaccessData(V_ARRAY(&value));
VariantClear(&value);
/* if set with VT_UI1|VT_ARRAY it's encoded */
hr = IXMLDOMElement_get_firstChild(elem, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_text(node, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("ZEdWemRBPQ==")), "%s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"ZEdWemRBPQ=="), "%s\n", wine_dbgstr_w(str));
IXMLDOMNode_Release(node);
SafeArrayDestroyData(array);
SysFreeString(str);
@@ -8668,47 +9164,47 @@ static void test_put_nodeTypedValue(void)
V_VT(&value) = VT_BSTR;
V_BSTR(&value) = _bstr_("");
hr = IXMLDOMElement_put_nodeTypedValue(elem, value);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_put_dataType(elem, _bstr_("bin.hex"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
array = SafeArrayCreateVector(VT_UI1, 0, 16);
hr = SafeArrayAccessData(array, (void*)&ptr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
memcpy(ptr, binhexdata, sizeof(binhexdata));
SafeArrayUnaccessData(array);
V_VT(&value) = VT_UI1|VT_ARRAY;
V_ARRAY(&value) = array;
hr = IXMLDOMElement_put_nodeTypedValue(elem, value);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&value) = VT_EMPTY;
hr = IXMLDOMElement_get_nodeTypedValue(elem, &value);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&value) == (VT_UI1|VT_ARRAY), "got %d\n", V_VT(&value));
ok(SafeArrayGetDim(V_ARRAY(&value)) == 1, "got wrong dimension\n");
ubound = 0;
hr = SafeArrayGetUBound(V_ARRAY(&value), 1, &ubound);
- EXPECT_HR(hr, S_OK);
- ok(ubound == 15, "got %d\n", ubound);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(ubound == 15, "got %ld\n", ubound);
lbound = 0;
hr = SafeArrayGetLBound(V_ARRAY(&value), 1, &lbound);
- EXPECT_HR(hr, S_OK);
- ok(lbound == 0, "got %d\n", lbound);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(lbound == 0, "got %ld\n", lbound);
hr = SafeArrayAccessData(V_ARRAY(&value), (void*)&ptr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!memcmp(ptr, binhexdata, sizeof(binhexdata)), "got wrong data\n");
SafeArrayUnaccessData(V_ARRAY(&value));
VariantClear(&value);
/* if set with VT_UI1|VT_ARRAY it's encoded */
hr = IXMLDOMElement_get_firstChild(elem, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_text(node, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("000102030405060708090a0b0c0d0e0f")), "%s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"000102030405060708090a0b0c0d0e0f"), "%s\n", wine_dbgstr_w(str));
IXMLDOMNode_Release(node);
SafeArrayDestroyData(array);
SysFreeString(str);
@@ -8740,27 +9236,27 @@ static void test_get_xml(void)
b = VARIANT_TRUE;
hr = IXMLDOMDocument_loadXML( doc, _bstr_("test"), &b );
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_TRUE, "got %d\n", b);
hr = IXMLDOMDocument_createProcessingInstruction(doc, _bstr_("xml"),
_bstr_("version=\"1.0\" encoding=\"UTF-16\""), &pi);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_get_firstChild(doc, &first);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_UNKNOWN(&v) = (IUnknown*)first;
V_VT(&v) = VT_UNKNOWN;
hr = IXMLDOMDocument_insertBefore(doc, (IXMLDOMNode*)pi, v, NULL);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMProcessingInstruction_Release(pi);
IXMLDOMNode_Release(first);
hr = IXMLDOMDocument_get_xml(doc, &xml);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(memcmp(xml, _bstr_(xmlA), sizeof(xmlA)*sizeof(WCHAR)) == 0,
"got %s, expected %s\n", wine_dbgstr_w(xml), xmlA);
@@ -8771,13 +9267,13 @@ static void test_get_xml(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_createElement(doc, _bstr_("foo"), &elem);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_putref_documentElement(doc, elem);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_get_xml(doc, &xml);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(memcmp(xml, _bstr_(fooA), (sizeof(fooA)-1)*sizeof(WCHAR)) == 0,
"got %s, expected %s\n", wine_dbgstr_w(xml), fooA);
@@ -8787,22 +9283,22 @@ static void test_get_xml(void)
/* attribute node */
hr = IXMLDOMDocument_createAttribute(doc, _bstr_("attr"), &attr);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&v) = VT_BSTR;
V_BSTR(&v) = _bstr_("\"a & b\"");
hr = IXMLDOMAttribute_put_value(attr, v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
xml = NULL;
hr = IXMLDOMAttribute_get_xml(attr, &xml);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!memcmp(xml, _bstr_(attrA), (sizeof(attrA)-1)*sizeof(WCHAR)), "got %s\n", wine_dbgstr_w(xml));
SysFreeString(xml);
VariantInit(&v);
hr = IXMLDOMAttribute_get_value(attr, &v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&v) == VT_BSTR, "got type %d\n", V_VT(&v));
ok(!memcmp(V_BSTR(&v), _bstr_(attr2A), (sizeof(attr2A)-1)*sizeof(WCHAR)),
"got %s\n", wine_dbgstr_w(V_BSTR(&v)));
@@ -8811,17 +9307,17 @@ static void test_get_xml(void)
V_VT(&v) = VT_BSTR;
V_BSTR(&v) = _bstr_(""a");
hr = IXMLDOMAttribute_put_value(attr, v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
xml = NULL;
hr = IXMLDOMAttribute_get_xml(attr, &xml);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!memcmp(xml, _bstr_(attr3A), (sizeof(attr3A)-1)*sizeof(WCHAR)), "got %s\n", wine_dbgstr_w(xml));
SysFreeString(xml);
VariantInit(&v);
hr = IXMLDOMAttribute_get_value(attr, &v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&v) == VT_BSTR, "got type %d\n", V_VT(&v));
ok(!memcmp(V_BSTR(&v), _bstr_(attr4A), (sizeof(attr4A)-1)*sizeof(WCHAR)),
"got %s\n", wine_dbgstr_w(V_BSTR(&v)));
@@ -8849,29 +9345,33 @@ static void test_xsltemplate(void)
if (!is_clsid_supported(&CLSID_XSLTemplate, &IID_IXSLTemplate)) return;
template = create_xsltemplate(&IID_IXSLTemplate);
+ check_interface(template, &IID_IXSLTemplate, TRUE);
+ check_interface(template, &IID_IDispatch, TRUE);
+ check_interface(template, &IID_IDispatchEx, TRUE);
+
/* works as reset */
hr = IXSLTemplate_putref_stylesheet(template, NULL);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
doc = create_document(&IID_IXMLDOMDocument);
b = VARIANT_TRUE;
hr = IXMLDOMDocument_loadXML( doc, _bstr_("test"), &b );
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_TRUE, "got %d\n", b);
/* putref with non-xsl document */
hr = IXSLTemplate_putref_stylesheet(template, (IXMLDOMNode*)doc);
- todo_wine ok(hr == E_FAIL, "got 0x%08x\n", hr);
+ todo_wine ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
b = VARIANT_TRUE;
hr = IXMLDOMDocument_loadXML( doc, _bstr_(szTransformSSXML), &b );
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_TRUE, "got %d\n", b);
/* not a freethreaded document */
hr = IXSLTemplate_putref_stylesheet(template, (IXMLDOMNode*)doc);
- todo_wine ok(hr == E_FAIL, "got 0x%08x\n", hr);
+ todo_wine ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
IXMLDOMDocument_Release(doc);
@@ -8882,29 +9382,29 @@ static void test_xsltemplate(void)
}
hr = CoCreateInstance(&CLSID_FreeThreadedDOMDocument, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument, (void**)&doc);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
b = VARIANT_TRUE;
hr = IXMLDOMDocument_loadXML( doc, _bstr_(szTransformSSXML), &b );
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_TRUE, "got %d\n", b);
/* freethreaded document */
ref1 = IXMLDOMDocument_AddRef(doc);
IXMLDOMDocument_Release(doc);
hr = IXSLTemplate_putref_stylesheet(template, (IXMLDOMNode*)doc);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ref2 = IXMLDOMDocument_AddRef(doc);
IXMLDOMDocument_Release(doc);
- ok(ref2 > ref1, "got %d\n", ref2);
+ ok(ref2 > ref1, "got %ld\n", ref2);
/* processor */
hr = IXSLTemplate_createProcessor(template, NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(template, 1);
hr = IXSLTemplate_createProcessor(template, &processor);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(template, 2);
/* input no set yet */
@@ -8912,43 +9412,43 @@ static void test_xsltemplate(void)
V_BSTR(&v) = NULL;
hr = IXSLProcessor_get_input(processor, &v);
todo_wine {
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&v) == VT_EMPTY, "got %d\n", V_VT(&v));
}
hr = IXSLProcessor_get_output(processor, NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
/* reset before it was set */
V_VT(&v) = VT_EMPTY;
hr = IXSLProcessor_put_output(processor, v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&v) = VT_UNKNOWN;
V_UNKNOWN(&v) = NULL;
hr = IXSLProcessor_put_output(processor, v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&v) = VT_UNKNOWN;
V_DISPATCH(&v) = NULL;
hr = IXSLProcessor_put_output(processor, v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = CreateStreamOnHGlobal(NULL, TRUE, &stream);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(stream, 1);
V_VT(&v) = VT_UNKNOWN;
V_UNKNOWN(&v) = (IUnknown*)stream;
hr = IXSLProcessor_put_output(processor, v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* it seems processor grabs 2 references */
todo_wine EXPECT_REF(stream, 3);
V_VT(&v) = VT_EMPTY;
hr = IXSLProcessor_get_output(processor, &v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&v) == VT_UNKNOWN, "got type %d\n", V_VT(&v));
ok(V_UNKNOWN(&v) == (IUnknown*)stream, "got %p\n", V_UNKNOWN(&v));
@@ -8956,12 +9456,12 @@ todo_wine {
VariantClear(&v);
hr = IXSLProcessor_transform(processor, NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
/* reset and check stream refcount */
V_VT(&v) = VT_EMPTY;
hr = IXSLProcessor_put_output(processor, v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(stream, 1);
@@ -8972,20 +9472,20 @@ todo_wine {
b = VARIANT_FALSE;
hr = IXMLDOMDocument_loadXML( doc2, _bstr_("test"), &b );
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( b == VARIANT_TRUE, "got %d\n", b);
V_VT(&v) = VT_UNKNOWN;
V_UNKNOWN(&v) = (IUnknown*)doc2;
hr = IXSLProcessor_put_input(processor, v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXSLProcessor_transform(processor, &b);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&v) = VT_EMPTY;
hr = IXSLProcessor_get_output(processor, &v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&v) == VT_BSTR, "got type %d\n", V_VT(&v));
ok(*V_BSTR(&v) == 0, "got %s\n", wine_dbgstr_w(V_BSTR(&v)));
VariantClear(&v);
@@ -8993,52 +9493,52 @@ todo_wine {
/* transform to document */
b = VARIANT_FALSE;
hr = IXMLDOMDocument_loadXML(doc2, _bstr_(szTransformXML), &b);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "got %d\n", b);
V_VT(&v) = VT_UNKNOWN;
V_UNKNOWN(&v) = (IUnknown*)doc2;
hr = IXSLProcessor_put_input(processor, v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
doc3 = create_document(&IID_IXMLDOMDocument);
V_VT(&v) = VT_UNKNOWN;
V_UNKNOWN(&v) = (IUnknown *)doc3;
hr = IXSLProcessor_put_output(processor, v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_get_xml(doc3, &str);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!*str, "Expected empty document\n");
SysFreeString(str);
hr = IXSLProcessor_transform(processor, &b);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&v) = VT_EMPTY;
hr = IXSLProcessor_get_output(processor, &v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&v) == VT_UNKNOWN, "got type %d\n", V_VT(&v));
VariantClear(&v);
hr = IXMLDOMDocument_get_xml(doc3, &str);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!!*str, "Expected document\n");
SysFreeString(str);
/* transform to IResponse */
V_VT(&v) = VT_EMPTY;
hr = IXSLProcessor_put_output(processor, v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&v) = VT_UNKNOWN;
V_UNKNOWN(&v) = (IUnknown *)&testresponse;
hr = IXSLProcessor_put_output(processor, v);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
b = VARIANT_FALSE;
hr = IXSLProcessor_transform(processor, &b);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "got %x\n", b);
IXSLProcessor_Release(processor);
@@ -9047,10 +9547,10 @@ todo_wine {
/* drop reference */
hr = IXSLTemplate_putref_stylesheet(template, NULL);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ref2 = IXMLDOMDocument_AddRef(doc);
IXMLDOMDocument_Release(doc);
- ok(ref2 == ref1, "got %d\n", ref2);
+ ok(ref2 == ref1, "got %ld\n", ref2);
IXMLDOMDocument_Release(doc);
IXSLTemplate_Release(template);
@@ -9070,18 +9570,25 @@ static void test_insertBefore(void)
doc = create_document(&IID_IXMLDOMDocument);
doc3 = create_document(&IID_IXMLDOMDocument);
+ /* NULL to document */
+ V_VT(&v) = VT_NULL;
+ node = (void*)0xdeadbeef;
+ hr = IXMLDOMDocument_insertBefore(doc, NULL, v, &node);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+ ok(node == (void*)0xdeadbeef, "got %p\n", node);
+
/* document to document */
V_VT(&v) = VT_NULL;
node = (void*)0xdeadbeef;
hr = IXMLDOMDocument_insertBefore(doc, (IXMLDOMNode*)doc3, v, &node);
- ok(hr == E_FAIL, "got 0x%08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(node == NULL, "got %p\n", node);
/* document to itself */
V_VT(&v) = VT_NULL;
node = (void*)0xdeadbeef;
hr = IXMLDOMDocument_insertBefore(doc, (IXMLDOMNode*)doc, v, &node);
- ok(hr == E_FAIL, "got 0x%08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(node == NULL, "got %p\n", node);
/* insertBefore behaviour for attribute node */
@@ -9090,14 +9597,14 @@ static void test_insertBefore(void)
attr = NULL;
hr = IXMLDOMDocument_createNode(doc, v, _bstr_("attr"), NULL, (IXMLDOMNode**)&attr);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(attr != NULL, "got %p\n", attr);
/* attribute to document */
V_VT(&v) = VT_NULL;
node = (void*)0xdeadbeef;
hr = IXMLDOMDocument_insertBefore(doc3, (IXMLDOMNode*)attr, v, &node);
- ok(hr == E_FAIL, "got 0x%08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(node == NULL, "got %p\n", node);
/* cdata to document */
@@ -9106,7 +9613,7 @@ static void test_insertBefore(void)
cdata = NULL;
hr = IXMLDOMDocument_createNode(doc3, v, _bstr_("cdata"), NULL, &cdata);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(cdata != NULL, "got %p\n", cdata);
EXPECT_NO_CHILDREN(cdata);
@@ -9115,20 +9622,20 @@ static void test_insertBefore(void)
V_VT(&v) = VT_NULL;
node = (void*)0xdeadbeef;
hr = IXMLDOMNode_insertBefore(cdata, (IXMLDOMNode*)attr, v, &node);
- ok(hr == E_FAIL, "got 0x%08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(node == NULL, "got %p\n", node);
/* document to cdata */
V_VT(&v) = VT_NULL;
node = (void*)0xdeadbeef;
hr = IXMLDOMNode_insertBefore(cdata, (IXMLDOMNode*)doc, v, &node);
- ok(hr == E_FAIL, "got 0x%08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(node == NULL, "got %p\n", node);
V_VT(&v) = VT_NULL;
node = (void*)0xdeadbeef;
hr = IXMLDOMDocument_insertBefore(doc3, cdata, v, &node);
- ok(hr == E_FAIL, "got 0x%08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(node == NULL, "got %p\n", node);
IXMLDOMNode_Release(cdata);
@@ -9139,20 +9646,20 @@ static void test_insertBefore(void)
V_I4(&v) = NODE_ATTRIBUTE;
newnode = NULL;
hr = IXMLDOMDocument_createNode(doc, v, _bstr_("attr2"), NULL, &newnode);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(newnode != NULL, "got %p\n", newnode);
V_VT(&v) = VT_NULL;
node = (void*)0xdeadbeef;
hr = IXMLDOMAttribute_insertBefore(attr, newnode, v, &node);
- ok(hr == E_FAIL, "got 0x%08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(node == NULL, "got %p\n", node);
V_VT(&v) = VT_UNKNOWN;
V_UNKNOWN(&v) = (IUnknown*)attr;
node = (void*)0xdeadbeef;
hr = IXMLDOMAttribute_insertBefore(attr, newnode, v, &node);
- todo_wine ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ todo_wine ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(node == NULL, "got %p\n", node);
IXMLDOMNode_Release(newnode);
@@ -9161,13 +9668,13 @@ static void test_insertBefore(void)
V_I4(&v) = NODE_CDATA_SECTION;
newnode = NULL;
hr = IXMLDOMDocument_createNode(doc, v, _bstr_("cdata"), NULL, &newnode);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(newnode != NULL, "got %p\n", newnode);
V_VT(&v) = VT_NULL;
node = (void*)0xdeadbeef;
hr = IXMLDOMAttribute_insertBefore(attr, newnode, v, &node);
- ok(hr == E_FAIL, "got 0x%08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(node == NULL, "got %p\n", node);
IXMLDOMNode_Release(newnode);
@@ -9176,13 +9683,13 @@ static void test_insertBefore(void)
V_I4(&v) = NODE_COMMENT;
newnode = NULL;
hr = IXMLDOMDocument_createNode(doc, v, _bstr_("cdata"), NULL, &newnode);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(newnode != NULL, "got %p\n", newnode);
V_VT(&v) = VT_NULL;
node = (void*)0xdeadbeef;
hr = IXMLDOMAttribute_insertBefore(attr, newnode, v, &node);
- ok(hr == E_FAIL, "got 0x%08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(node == NULL, "got %p\n", node);
IXMLDOMNode_Release(newnode);
@@ -9191,13 +9698,13 @@ static void test_insertBefore(void)
V_I4(&v) = NODE_ELEMENT;
newnode = NULL;
hr = IXMLDOMDocument_createNode(doc, v, _bstr_("cdata"), NULL, &newnode);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(newnode != NULL, "got %p\n", newnode);
V_VT(&v) = VT_NULL;
node = (void*)0xdeadbeef;
hr = IXMLDOMAttribute_insertBefore(attr, newnode, v, &node);
- ok(hr == E_FAIL, "got 0x%08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(node == NULL, "got %p\n", node);
IXMLDOMNode_Release(newnode);
@@ -9206,32 +9713,32 @@ static void test_insertBefore(void)
V_I4(&v) = NODE_PROCESSING_INSTRUCTION;
newnode = NULL;
hr = IXMLDOMDocument_createNode(doc, v, _bstr_("cdata"), NULL, &newnode);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(newnode != NULL, "got %p\n", newnode);
V_VT(&v) = VT_NULL;
node = (void*)0xdeadbeef;
hr = IXMLDOMAttribute_insertBefore(attr, newnode, v, &node);
- ok(hr == E_FAIL, "got 0x%08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(node == NULL, "got %p\n", node);
IXMLDOMNode_Release(newnode);
IXMLDOMAttribute_Release(attr);
/* insertBefore for elements */
hr = IXMLDOMDocument_createElement(doc, _bstr_("elem"), &elem1);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_createElement(doc, _bstr_("elem2"), &elem2);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_createElement(doc, _bstr_("elem3"), &elem3);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_createElement(doc, _bstr_("elem3"), &elem3);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_createElement(doc, _bstr_("elem4"), &elem4);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_NO_CHILDREN(elem1);
EXPECT_NO_CHILDREN(elem2);
@@ -9239,22 +9746,29 @@ static void test_insertBefore(void)
todo_wine EXPECT_REF(elem2, 2);
+ /* NULL to element */
+ V_VT(&v) = VT_NULL;
+ node = (void*)0xdeadbeef;
+ hr = IXMLDOMElement_insertBefore(elem1, NULL, v, &node);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+ ok(node == (void*)0xdeadbeef, "got %p\n", node);
+
/* document to element */
V_VT(&v) = VT_DISPATCH;
V_DISPATCH(&v) = NULL;
hr = IXMLDOMElement_insertBefore(elem1, (IXMLDOMNode*)doc, v, NULL);
- ok(hr == E_FAIL, "got 0x%08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
V_VT(&v) = VT_DISPATCH;
V_DISPATCH(&v) = NULL;
node = NULL;
hr = IXMLDOMElement_insertBefore(elem1, (IXMLDOMNode*)elem4, v, &node);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(node == (void*)elem4, "got %p\n", node);
EXPECT_CHILDREN(elem1);
hr = IXMLDOMElement_removeChild(elem1, (IXMLDOMNode*)elem4, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMElement_Release(elem4);
EXPECT_NO_CHILDREN(elem1);
@@ -9262,7 +9776,7 @@ static void test_insertBefore(void)
V_VT(&v) = VT_NULL;
node = NULL;
hr = IXMLDOMElement_insertBefore(elem1, (IXMLDOMNode*)elem2, v, &node);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(node == (void*)elem2, "got %p\n", node);
EXPECT_CHILDREN(elem1);
@@ -9273,7 +9787,7 @@ static void test_insertBefore(void)
V_VT(&v) = VT_NULL;
node = NULL;
hr = IXMLDOMElement_insertBefore(elem1, (IXMLDOMNode*)elem2, v, &node);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(node == (void*)elem2, "got %p\n", node);
EXPECT_CHILDREN(elem1);
@@ -9286,7 +9800,7 @@ static void test_insertBefore(void)
V_VT(&v) = VT_NULL;
node = (void*)0xdeadbeef;
hr = IXMLDOMElement_insertBefore(elem3, (IXMLDOMNode*)elem2, v, &node);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(node == (void*)elem2, "got %p\n", node);
EXPECT_CHILDREN(elem3);
@@ -9298,19 +9812,19 @@ static void test_insertBefore(void)
doc2 = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_createElement(doc2, _bstr_("elem4"), &elem4);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine EXPECT_REF(elem4, 2);
/* same name, another instance */
hr = IXMLDOMDocument_createElement(doc2, _bstr_("elem4"), &elem5);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine EXPECT_REF(elem5, 2);
todo_wine EXPECT_REF(elem3, 2);
V_VT(&v) = VT_NULL;
node = NULL;
hr = IXMLDOMElement_insertBefore(elem3, (IXMLDOMNode*)elem4, v, &node);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(node == (void*)elem4, "got %p\n", node);
todo_wine EXPECT_REF(elem4, 3);
todo_wine EXPECT_REF(elem3, 2);
@@ -9319,7 +9833,7 @@ static void test_insertBefore(void)
V_VT(&v) = VT_NULL;
node = NULL;
hr = IXMLDOMElement_insertBefore(elem3, (IXMLDOMNode*)elem5, v, &node);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(node == (void*)elem5, "got %p\n", node);
todo_wine EXPECT_REF(elem4, 2);
todo_wine EXPECT_REF(elem5, 3);
@@ -9338,46 +9852,46 @@ static void test_insertBefore(void)
V_I4(&v) = NODE_ELEMENT;
elem1 = NULL;
hr = IXMLDOMDocument_createNode(doc, v, _bstr_("elem1"), _bstr_("http://winehq.org/default"), (IXMLDOMNode**)&elem1);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(elem1 != NULL, "got %p\n", elem1);
V_VT(&v) = VT_I4;
V_I4(&v) = NODE_ELEMENT;
elem2 = NULL;
hr = IXMLDOMDocument_createNode(doc, v, _bstr_("elem2"), _bstr_("http://winehq.org/default"), (IXMLDOMNode**)&elem2);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(elem2 != NULL, "got %p\n", elem2);
/* check contents so far */
p = NULL;
hr = IXMLDOMElement_get_xml(elem1, &p);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(p, _bstr_("")), "got %s\n", wine_dbgstr_w(p));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(p, L""), "got %s\n", wine_dbgstr_w(p));
SysFreeString(p);
p = NULL;
hr = IXMLDOMElement_get_xml(elem2, &p);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(p, _bstr_("")), "got %s\n", wine_dbgstr_w(p));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(p, L""), "got %s\n", wine_dbgstr_w(p));
SysFreeString(p);
V_VT(&v) = VT_NULL;
hr = IXMLDOMElement_insertBefore(elem1, (IXMLDOMNode*)elem2, v, NULL);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* get_xml depends on context, for top node it omits child namespace attribute,
but at child level it's still returned */
p = NULL;
hr = IXMLDOMElement_get_xml(elem1, &p);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- todo_wine ok(!lstrcmpW(p, _bstr_("")),
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ todo_wine ok(!lstrcmpW(p, L""),
"got %s\n", wine_dbgstr_w(p));
SysFreeString(p);
p = NULL;
hr = IXMLDOMElement_get_xml(elem2, &p);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(p, _bstr_("")), "got %s\n", wine_dbgstr_w(p));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(p, L""), "got %s\n", wine_dbgstr_w(p));
SysFreeString(p);
IXMLDOMElement_Release(elem1);
@@ -9388,35 +9902,35 @@ static void test_insertBefore(void)
V_I4(&v) = NODE_ELEMENT;
elem1 = NULL;
hr = IXMLDOMDocument_createNode(doc, v, _bstr_("elem1"), _bstr_("http://winehq.org/default"), (IXMLDOMNode**)&elem1);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(elem1 != NULL, "got %p\n", elem1);
V_VT(&v) = VT_I4;
V_I4(&v) = NODE_ELEMENT;
elem2 = NULL;
hr = IXMLDOMDocument_createNode(doc, v, _bstr_("elem2"), NULL, (IXMLDOMNode**)&elem2);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(elem2 != NULL, "got %p\n", elem2);
EXPECT_REF(elem2, 1);
V_VT(&v) = VT_NULL;
hr = IXMLDOMElement_insertBefore(elem1, (IXMLDOMNode*)elem2, v, NULL);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(elem2, 1);
p = NULL;
hr = IXMLDOMElement_get_xml(elem2, &p);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(p, _bstr_("")), "got %s\n", wine_dbgstr_w(p));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(p, L""), "got %s\n", wine_dbgstr_w(p));
SysFreeString(p);
hr = IXMLDOMElement_removeChild(elem1, (IXMLDOMNode*)elem2, NULL);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
p = NULL;
hr = IXMLDOMElement_get_xml(elem2, &p);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(p, _bstr_("")), "got %s\n", wine_dbgstr_w(p));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(p, L""), "got %s\n", wine_dbgstr_w(p));
SysFreeString(p);
IXMLDOMElement_Release(elem1);
@@ -9434,10 +9948,10 @@ static void test_appendChild(void)
doc2 = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_createElement(doc, _bstr_("elem"), &elem);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_createElement(doc2, _bstr_("elem2"), &elem2);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(doc, 1);
todo_wine EXPECT_REF(elem, 2);
@@ -9447,14 +9961,14 @@ static void test_appendChild(void)
EXPECT_NO_CHILDREN(doc2);
hr = IXMLDOMDocument_appendChild(doc2, NULL, NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_appendChild(elem, NULL, NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
/* append from another document */
hr = IXMLDOMDocument_appendChild(doc2, (IXMLDOMNode*)elem, NULL);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(doc, 1);
todo_wine EXPECT_REF(elem, 2);
@@ -9471,7 +9985,6 @@ static void test_appendChild(void)
static void test_get_doctype(void)
{
- static const WCHAR emailW[] = {'e','m','a','i','l',0};
IXMLDOMDocumentType *doctype;
IXMLDOMDocument *doc;
VARIANT_BOOL b;
@@ -9481,33 +9994,33 @@ static void test_get_doctype(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_get_doctype(doc, NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
doctype = (void*)0xdeadbeef;
hr = IXMLDOMDocument_get_doctype(doc, &doctype);
- ok(hr == S_FALSE, "got 0x%08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(doctype == NULL, "got %p\n", doctype);
hr = IXMLDOMDocument_loadXML(doc, _bstr_(szEmailXML), &b);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
doctype = NULL;
hr = IXMLDOMDocument_get_doctype(doc, &doctype);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(doctype != NULL, "got %p\n", doctype);
hr = IXMLDOMDocumentType_get_name(doctype, NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocumentType_get_name(doctype, &s);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(emailW, s), "got name %s\n", wine_dbgstr_w(s));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(L"email", s), "got name %s\n", wine_dbgstr_w(s));
SysFreeString(s);
hr = IXMLDOMDocumentType_get_nodeName(doctype, &s);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(emailW, s), "got name %s\n", wine_dbgstr_w(s));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(L"email", s), "got name %s\n", wine_dbgstr_w(s));
SysFreeString(s);
IXMLDOMDocumentType_Release(doctype);
@@ -9524,24 +10037,24 @@ static void test_get_tagName(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_createElement(doc, _bstr_("element"), &elem);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_get_tagName(elem, NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
str = NULL;
hr = IXMLDOMElement_get_tagName(elem, &str);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(str, _bstr_("element")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"element"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
hr = IXMLDOMDocument_createElement(doc, _bstr_("s:element"), &elem2);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
str = NULL;
hr = IXMLDOMElement_get_tagName(elem2, &str);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(str, _bstr_("s:element")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"s:element"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
IXMLDOMElement_Release(elem);
@@ -9588,11 +10101,11 @@ static void test_get_dataType(void)
ok(hr == S_OK, "failed to create node, type %d\n", entry->type);
hr = IXMLDOMNode_get_dataType(node, NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
VariantInit(&type);
hr = IXMLDOMNode_get_dataType(node, &type);
- ok(hr == entry->hr, "got 0x%08x, expected 0x%08x. node type %d\n",
+ ok(hr == entry->hr, "Unexpected hr %#lx, expected %#lx. node type %d\n",
hr, entry->hr, entry->type);
ok(V_VT(&type) == entry->vt, "got %d, expected %d. node type %d\n",
V_VT(&type), entry->vt, entry->type);
@@ -9634,8 +10147,8 @@ static void test_get_nodeTypeString(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_get_nodeTypeString(doc, &str);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(str, _bstr_("document")), "got string %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"document"), "got string %s\n", wine_dbgstr_w(str));
SysFreeString(str);
while (entry->type)
@@ -9649,10 +10162,10 @@ static void test_get_nodeTypeString(void)
ok(hr == S_OK, "failed to create node, type %d\n", entry->type);
hr = IXMLDOMNode_get_nodeTypeString(node, NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_nodeTypeString(node, &str);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!lstrcmpW(str, _bstr_(entry->string)), "got string %s, expected %s. node type %d\n",
wine_dbgstr_w(str), entry->string, entry->type);
SysFreeString(str);
@@ -9683,6 +10196,13 @@ static const get_attributes_t get_attributes[] = {
static void test_get_attributes(void)
{
+ const WCHAR *namespaces[] =
+ {
+ L"xmlns:oslc_am",
+ L"xmlns:rdf",
+ L"xmlns:dcterms",
+ L"xmlns:foaf"
+ };
const get_attributes_t *entry = get_attributes;
IXMLDOMNamedNodeMap *map;
IXMLDOMDocument *doc, *doc2;
@@ -9692,37 +10212,37 @@ static void test_get_attributes(void)
HRESULT hr;
VARIANT v;
BSTR str;
- LONG length;
+ LONG length, i;
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_loadXML(doc, _bstr_(complete4A), &b);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_get_attributes(doc, NULL);
- ok(hr == E_INVALIDARG, "got %08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
map = (void*)0xdeadbeef;
hr = IXMLDOMDocument_get_attributes(doc, &map);
- ok(hr == S_FALSE, "got %08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(map == NULL, "got %p\n", map);
/* first child is */
hr = IXMLDOMDocument_get_firstChild(doc, &node);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_attributes(node, &map);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
node2 = (void*)0xdeadbeef;
hr = IXMLDOMNamedNodeMap_getNamedItem(map, _bstr_("attr"), &node2);
- ok(hr == S_FALSE, "got %08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(node2 == NULL, "got %p\n", node2);
length = -1;
hr = IXMLDOMNamedNodeMap_get_length(map, &length);
- EXPECT_HR(hr, S_OK);
- todo_wine ok(length == 1, "got %d\n", length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ todo_wine ok(length == 1, "got %ld\n", length);
if (hr == S_OK && length == 1)
{
@@ -9732,91 +10252,91 @@ static void test_get_attributes(void)
node2 = NULL;
hr = IXMLDOMNamedNodeMap_get_item(map, 0, &node2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(node != NULL, "got %p\n", node2);
hr = IXMLDOMNode_get_nodeName(node2, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("version")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"version"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
length = -1;
hr = IXMLDOMNamedNodeMap_get_length(map, &length);
- EXPECT_HR(hr, S_OK);
- ok(length == 1, "got %d\n", length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 1, "got %ld\n", length);
type = -1;
hr = IXMLDOMNode_get_nodeType(node2, &type);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(type == NODE_ATTRIBUTE, "got %d\n", type);
hr = IXMLDOMNode_get_xml(node, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L""), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
hr = IXMLDOMNode_get_text(node, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("version=\"1.0\"")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"version=\"1.0\""), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
hr = IXMLDOMNamedNodeMap_removeNamedItem(map, _bstr_("version"), NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
length = -1;
hr = IXMLDOMNamedNodeMap_get_length(map, &length);
- EXPECT_HR(hr, S_OK);
- ok(length == 0, "got %d\n", length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 0, "got %ld\n", length);
hr = IXMLDOMNode_get_xml(node, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L""), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
hr = IXMLDOMNode_get_text(node, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L""), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
IXMLDOMNamedNodeMap_Release(map);
hr = IXMLDOMNode_get_attributes(node, &map);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
length = -1;
hr = IXMLDOMNamedNodeMap_get_length(map, &length);
- EXPECT_HR(hr, S_OK);
- ok(length == 0, "got %d\n", length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 0, "got %ld\n", length);
hr = IXMLDOMDocument_createAttribute(doc, _bstr_("encoding"), &attr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&v) = VT_BSTR;
V_BSTR(&v) = _bstr_("UTF-8");
hr = IXMLDOMAttribute_put_nodeValue(attr, v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(attr, 2);
hr = IXMLDOMNamedNodeMap_setNamedItem(map, (IXMLDOMNode*)attr, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(attr, 2);
hr = IXMLDOMNode_get_attributes(node, &map);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
length = -1;
hr = IXMLDOMNamedNodeMap_get_length(map, &length);
- EXPECT_HR(hr, S_OK);
- ok(length == 1, "got %d\n", length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 1, "got %ld\n", length);
hr = IXMLDOMNode_get_xml(node, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L""), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
hr = IXMLDOMNode_get_text(node, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("encoding=\"UTF-8\"")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"encoding=\"UTF-8\""), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
IXMLDOMNamedNodeMap_Release(map);
@@ -9828,18 +10348,18 @@ static void test_get_attributes(void)
/* last child is element */
EXPECT_REF(doc, 1);
hr = IXMLDOMDocument_get_lastChild(doc, &node);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(doc, 1);
EXPECT_REF(node, 1);
hr = IXMLDOMNode_get_attributes(node, &map);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(node, 1);
EXPECT_REF(doc, 1);
EXPECT_REF(map, 1);
hr = IXMLDOMNamedNodeMap_get_item(map, 0, &node2);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(node, 1);
EXPECT_REF(node2, 1);
EXPECT_REF(map, 1);
@@ -9851,12 +10371,12 @@ static void test_get_attributes(void)
length = 0;
hr = IXMLDOMNamedNodeMap_get_length(map, &length);
- ok(hr == S_OK, "got %08x\n", hr);
- ok(length == 1, "got %d\n", length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 1, "got %ld\n", length);
node2 = NULL;
hr = IXMLDOMNamedNodeMap_get_item(map, 0, &node2);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(node2, 1);
IXMLDOMNode_Release(node2);
@@ -9864,25 +10384,25 @@ static void test_get_attributes(void)
/* 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);
+ ok(hr == S_OK, "Unexpected hr %#lx.\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);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_get_attributes(elem, &map);
- ok(hr == S_OK, "get_attributes failed: %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\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);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 1, "got %ld\n", length);
doc2 = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_appendChild(doc2, (IXMLDOMNode*)elem, &node);
- ok(hr == S_OK, "appendChild failed: %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(node == (IXMLDOMNode*)elem, "node != elem\n");
IXMLDOMNode_Release(node);
IXMLDOMElement_Release(elem);
@@ -9890,8 +10410,8 @@ static void test_get_attributes(void)
length = 0;
hr = IXMLDOMNamedNodeMap_get_length(map, &length);
- ok(hr == S_OK, "got %08x\n", hr);
- ok(length == 1, "got %d\n", length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 1, "got %ld\n", length);
IXMLDOMNamedNodeMap_Release(map);
@@ -9907,11 +10427,11 @@ static void test_get_attributes(void)
ok(hr == S_OK, "failed to create node, type %d\n", entry->type);
hr = IXMLDOMNode_get_attributes(node, NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
map = (void*)0xdeadbeef;
hr = IXMLDOMNode_get_attributes(node, &map);
- ok(hr == entry->hr, "got 0x%08x, expected 0x%08x. node type %d\n",
+ ok(hr == entry->hr, "Unexpected hr %#lx, expected %#lx. node type %d\n",
hr, entry->hr, entry->type);
ok(map == NULL, "got %p\n", map);
@@ -9921,6 +10441,49 @@ static void test_get_attributes(void)
}
IXMLDOMDocument_Release(doc);
+
+ str = SysAllocString(L""
+ L""
+ L"");
+
+ doc = create_document(&IID_IXMLDOMDocument2);
+
+ hr = IXMLDOMDocument_loadXML(doc, str, &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(b == VARIANT_TRUE, "got %d\n", b);
+
+ hr = IXMLDOMDocument_get_documentElement(doc, &elem);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IXMLDOMElement_get_attributes(elem, &map);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ length = -1;
+ hr = IXMLDOMNamedNodeMap_get_length(map, &length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 4, "length %#lx.\n", length);
+
+ for(i=0; i < length; i++)
+ {
+ hr = IXMLDOMNamedNodeMap_get_item(map, i, &node2);
+ ok( hr == S_OK, "Unexpected hr %#lx (%ld).\n", hr, i);
+
+ hr = IXMLDOMNode_get_nodeName(node2, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, namespaces[i]), "got %s\n", wine_dbgstr_w(str));
+ SysFreeString(str);
+
+ IXMLDOMNode_Release(node2);
+ }
+
+ IXMLDOMNamedNodeMap_Release(map);
+ IXMLDOMElement_Release(elem);
+
+ IXMLDOMDocument_Release(doc);
+
free_bstrs();
}
@@ -9935,9 +10498,9 @@ static void test_selection(void)
IXMLDOMNode *node;
IDispatch *disp;
VARIANT_BOOL b;
+ VARIANT v[3];
HRESULT hr;
DISPID did;
- VARIANT v;
BSTR name;
ULONG ret;
LONG len;
@@ -9945,47 +10508,47 @@ static void test_selection(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_loadXML(doc, _bstr_(szExampleXML), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_selectNodes(doc, _bstr_("root"), &list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNodeList_QueryInterface(list, &IID_IXMLDOMSelection, (void**)&selection);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMSelection_Release(selection);
/* collection disp id */
hr = IXMLDOMSelection_QueryInterface(selection, &IID_IDispatchEx, (void**)&dispex);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
did = 0;
hr = IDispatchEx_GetDispID(dispex, _bstr_("0"), 0, &did);
- EXPECT_HR(hr, S_OK);
- ok(did == DISPID_DOM_COLLECTION_BASE, "got %d\n", did);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(did == DISPID_DOM_COLLECTION_BASE, "got %ld\n", did);
len = 0;
hr = IXMLDOMSelection_get_length(selection, &len);
- EXPECT_HR(hr, S_OK);
- ok(len == 1, "got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(len == 1, "got %ld\n", len);
hr = IDispatchEx_GetDispID(dispex, _bstr_("10"), 0, &did);
- EXPECT_HR(hr, S_OK);
- ok(did == DISPID_DOM_COLLECTION_BASE+10, "got %d\n", did);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(did == DISPID_DOM_COLLECTION_BASE+10, "got %ld\n", did);
IDispatchEx_Release(dispex);
/* IEnumVARIANT tests */
enum1 = NULL;
hr = IXMLDOMSelection_QueryInterface(selection, &IID_IEnumVARIANT, (void**)&enum1);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(enum1 != NULL, "got %p\n", enum1);
EXPECT_REF(enum1, 2);
EXPECT_REF(selection, 1);
hr = IXMLDOMSelection_QueryInterface(selection, &IID_IUnknown, (void**)&unk1);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(selection, 2);
EXPECT_REF(enum1, 2);
/* enumerator and selection object return same IUnknown* */
hr = IEnumVARIANT_QueryInterface(enum1, &IID_IUnknown, (void**)&unk2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(selection, 3);
EXPECT_REF(enum1, 2);
ok(unk2 == unk1, "got %p, %p\n", unk1, unk2);
@@ -9998,7 +10561,7 @@ static void test_selection(void)
enum3 = NULL;
hr = IXMLDOMSelection_QueryInterface(selection, &IID_IEnumVARIANT, (void**)&enum3);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(enum3 != NULL, "got %p\n", enum3);
ok(enum1 == enum3, "got %p and %p\n", enum1, enum3);
EXPECT_REF(enum1, 3);
@@ -10009,7 +10572,7 @@ static void test_selection(void)
enum2 = NULL;
hr = IXMLDOMSelection_get__newEnum(selection, (IUnknown**)&enum2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(enum2 != NULL, "got %p\n", enum2);
EXPECT_REF(selection, 3);
@@ -10019,7 +10582,7 @@ static void test_selection(void)
ok(enum1 != enum2, "got %p, %p\n", enum1, enum2);
hr = IEnumVARIANT_QueryInterface(enum2, &IID_IUnknown, (void**)&unk2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(selection, 3);
EXPECT_REF(enum2, 2);
ok(unk2 != unk1, "got %p, %p\n", unk1, unk2);
@@ -10028,7 +10591,7 @@ static void test_selection(void)
selection2 = NULL;
hr = IEnumVARIANT_QueryInterface(enum1, &IID_IXMLDOMSelection, (void**)&selection2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(selection2 == selection, "got %p and %p\n", selection, selection2);
EXPECT_REF(selection, 3);
EXPECT_REF(enum1, 2);
@@ -10036,12 +10599,12 @@ static void test_selection(void)
IXMLDOMSelection_Release(selection2);
hr = IEnumVARIANT_QueryInterface(enum1, &IID_IDispatch, (void**)&disp);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(selection, 3);
IDispatch_Release(disp);
hr = IEnumVARIANT_QueryInterface(enum1, &IID_IEnumVARIANT, (void**)&enum3);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(enum3 == enum1, "got %p and %p\n", enum3, enum1);
EXPECT_REF(selection, 2);
EXPECT_REF(enum1, 3);
@@ -10052,14 +10615,14 @@ static void test_selection(void)
enum1 = NULL;
hr = IXMLDOMSelection_get__newEnum(selection, (IUnknown**)&enum1);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(enum1 != NULL, "got %p\n", enum1);
EXPECT_REF(enum1, 1);
EXPECT_REF(selection, 2);
enum2 = NULL;
hr = IXMLDOMSelection_get__newEnum(selection, (IUnknown**)&enum2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(enum2 != NULL, "got %p\n", enum2);
EXPECT_REF(enum2, 1);
EXPECT_REF(selection, 3);
@@ -10080,92 +10643,163 @@ static void test_selection(void)
IXMLDOMNodeList_Release(list);
hr = IXMLDOMDocument_get_childNodes(doc, &list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNodeList_QueryInterface(list, &IID_IXMLDOMSelection, (void**)&selection);
- EXPECT_HR(hr, E_NOINTERFACE);
+ ok(hr == E_NOINTERFACE, "Unexpected hr %#lx.\n", hr);
IXMLDOMNodeList_Release(list);
/* test if IEnumVARIANT touches selection context */
hr = IXMLDOMDocument_loadXML(doc, _bstr_(xpath_simple_list), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_selectNodes(doc, _bstr_("root/*"), &list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNodeList_QueryInterface(list, &IID_IXMLDOMSelection, (void**)&selection);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = 0;
hr = IXMLDOMSelection_get_length(selection, &len);
- EXPECT_HR(hr, S_OK);
- ok(len == 4, "got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(len == 4, "got %ld\n", len);
enum1 = NULL;
hr = IXMLDOMSelection_get__newEnum(selection, (IUnknown**)&enum1);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* no-op if zero count */
- V_VT(&v) = VT_I2;
- hr = IEnumVARIANT_Next(enum1, 0, &v, NULL);
- EXPECT_HR(hr, S_OK);
- ok(V_VT(&v) == VT_I2, "got var type %d\n", V_VT(&v));
+ V_VT(&v[0]) = VT_I2;
+ hr = IEnumVARIANT_Next(enum1, 0, &v[0], NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&v[0]) == VT_I2, "got var type %d\n", V_VT(&v[0]));
/* positive count, null array pointer */
hr = IEnumVARIANT_Next(enum1, 1, NULL, NULL);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- ret = 1;
hr = IEnumVARIANT_Next(enum1, 1, NULL, &ret);
- EXPECT_HR(hr, E_INVALIDARG);
- ok(ret == 0, "got %d\n", ret);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+ ok(ret == 0, "got %ld\n", ret);
- V_VT(&v) = VT_I2;
- hr = IEnumVARIANT_Next(enum1, 1, &v, NULL);
- EXPECT_HR(hr, S_OK);
- ok(V_VT(&v) == VT_DISPATCH, "got var type %d\n", V_VT(&v));
+ V_VT(&v[0]) = VT_I2;
+ hr = IEnumVARIANT_Next(enum1, 1, &v[0], NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&v[0]) == VT_DISPATCH, "got var type %d\n", V_VT(&v[0]));
- hr = IDispatch_QueryInterface(V_DISPATCH(&v), &IID_IXMLDOMNode, (void**)&node);
- EXPECT_HR(hr, S_OK);
+ hr = IDispatch_QueryInterface(V_DISPATCH(&v[0]), &IID_IXMLDOMNode, (void**)&node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_nodeName(node, &name);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(name, _bstr_("a")), "got node name %s\n", wine_dbgstr_w(name));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(name, L"a"), "got node name %s\n", wine_dbgstr_w(name));
SysFreeString(name);
IXMLDOMNode_Release(node);
- VariantClear(&v);
+ VariantClear(&v[0]);
/* list cursor is updated */
hr = IXMLDOMSelection_nextNode(selection, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_nodeName(node, &name);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(name, _bstr_("c")), "got node name %s\n", wine_dbgstr_w(name));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(name, L"c"), "got node name %s\n", wine_dbgstr_w(name));
IXMLDOMNode_Release(node);
SysFreeString(name);
- V_VT(&v) = VT_I2;
- hr = IEnumVARIANT_Next(enum1, 1, &v, NULL);
- EXPECT_HR(hr, S_OK);
- ok(V_VT(&v) == VT_DISPATCH, "got var type %d\n", V_VT(&v));
- hr = IDispatch_QueryInterface(V_DISPATCH(&v), &IID_IXMLDOMNode, (void**)&node);
- EXPECT_HR(hr, S_OK);
+ V_VT(&v[0]) = VT_I2;
+ hr = IEnumVARIANT_Next(enum1, 1, &v[0], NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&v[0]) == VT_DISPATCH, "got var type %d\n", V_VT(&v[0]));
+ hr = IDispatch_QueryInterface(V_DISPATCH(&v[0]), &IID_IXMLDOMNode, (void**)&node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_nodeName(node, &name);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(name, _bstr_("b")), "got node name %s\n", wine_dbgstr_w(name));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(name, L"b"), "got node name %s\n", wine_dbgstr_w(name));
SysFreeString(name);
IXMLDOMNode_Release(node);
- VariantClear(&v);
- IEnumVARIANT_Release(enum1);
+ VariantClear(&v[0]);
hr = IXMLDOMSelection_nextNode(selection, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_nodeName(node, &name);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(name, _bstr_("d")), "got node name %s\n", wine_dbgstr_w(name));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(name, L"d"), "got node name %s\n", wine_dbgstr_w(name));
IXMLDOMNode_Release(node);
SysFreeString(name);
+ hr = IEnumVARIANT_Reset(enum1);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ /* getting multiple elements */
+ V_VT(&v[1]) = VT_EMPTY;
+ V_VT(&v[0]) = VT_EMPTY;
+ hr = IEnumVARIANT_Next(enum1, 2, v, &ret);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(ret == 2, "got %ld, expected 2\n", ret);
+ ok(V_VT(&v[0]) == VT_DISPATCH, "got var type %d\n", V_VT(&v[0]));
+ ok(V_VT(&v[1]) == VT_DISPATCH, "got var type %d\n", V_VT(&v[1]));
+
+ hr = IDispatch_QueryInterface(V_DISPATCH(&v[0]), &IID_IXMLDOMNode, (void**)&node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNode_get_nodeName(node, &name);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(name, L"a"), "got node name %s\n", wine_dbgstr_w(name));
+ SysFreeString(name);
+ IXMLDOMNode_Release(node);
+
+ hr = IDispatch_QueryInterface(V_DISPATCH(&v[1]), &IID_IXMLDOMNode, (void**)&node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNode_get_nodeName(node, &name);
+ ok(!lstrcmpW(name, L"b"), "got node name %s\n", wine_dbgstr_w(name));
+ SysFreeString(name);
+ IXMLDOMNode_Release(node);
+
+ VariantClear(&v[1]);
+ VariantClear(&v[0]);
+
+ /* IEnumVARIANT_Next makes the IXMLDOMSelection cursor advance one step more */
+ hr = IXMLDOMSelection_nextNode(selection, &node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNode_get_nodeName(node, &name);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(name, L"d"), "got node name %s\n", wine_dbgstr_w(name));
+ SysFreeString(name);
+ IXMLDOMNode_Release(node);
+
+ /* The IEnumVARIANT cursor is still at position '2', */
+ /* therefore attempting to fetch 4 elements yields 'c' and 'd' */
+ V_VT(&v[2]) = VT_NULL;
+ V_VT(&v[1]) = VT_EMPTY;
+ V_VT(&v[0]) = VT_EMPTY;
+ hr = IEnumVARIANT_Next(enum1, 4, v, &ret);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ ok(ret == 2, "got %ld, expected 2\n", ret);
+
+ ok(V_VT(&v[0]) == VT_DISPATCH, "got var type %d\n", V_VT(&v[0]));
+ hr = IDispatch_QueryInterface(V_DISPATCH(&v[0]), &IID_IXMLDOMNode, (void**)&node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNode_get_nodeName(node, &name);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(name, L"c"), "got node name %s\n", wine_dbgstr_w(name));
+ SysFreeString(name);
+ IXMLDOMNode_Release(node);
+
+ ok(V_VT(&v[1]) == VT_DISPATCH, "got var type %d\n", V_VT(&v[1]));
+ hr = IDispatch_QueryInterface(V_DISPATCH(&v[1]), &IID_IXMLDOMNode, (void**)&node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNode_get_nodeName(node, &name);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(name, L"d"), "got node name %s\n", wine_dbgstr_w(name));
+ SysFreeString(name);
+ IXMLDOMNode_Release(node);
+
+ ok(V_VT(&v[2]) == VT_EMPTY, "got var type %d, expected %d (VT_EMPTY)\n", V_VT(&v[2]), VT_EMPTY);
+
+ VariantClear(&v[1]);
+ VariantClear(&v[0]);
+
+ IEnumVARIANT_Release(enum1);
+
IXMLDOMSelection_Release(selection);
IXMLDOMNodeList_Release(list);
IXMLDOMDocument_Release(doc);
@@ -10183,12 +10817,15 @@ static void write_to_file(const char *name, const char *data)
ok(hfile != INVALID_HANDLE_VALUE, "failed to create test file: %s\n", name);
ret = WriteFile(hfile, data, strlen(data), &written, NULL);
- ok(ret, "WriteFile failed: %s, %d\n", name, GetLastError());
+ ok(ret, "WriteFile failed: %s, %ld\n", name, GetLastError());
CloseHandle(hfile);
}
-static void test_doc_load_from_path(IXMLDOMDocument *doc, const char *path)
+#define TEST_DOC_LOAD_FROM_PATH(doc,path,expected_hr, expected_ret) \
+ _test_doc_load_from_path(doc, path, expected_hr, expected_ret, __LINE__)
+static void _test_doc_load_from_path(IXMLDOMDocument *doc, const char *path,
+ HRESULT expected_hr, VARIANT_BOOL expected_ret, int line)
{
IXMLDOMDocument *doc2;
IXMLDOMElement *elem;
@@ -10202,29 +10839,32 @@ static void test_doc_load_from_path(IXMLDOMDocument *doc, const char *path)
V_VT(&src) = VT_BSTR;
V_BSTR(&src) = url;
hr = IXMLDOMDocument_load(doc, src, &b);
- ok(hr == S_OK, "Failed to load document, %#x.\n", hr);
- ok(b == VARIANT_TRUE, "got %d\n", b);
+ ok_(__FILE__, line)(hr == expected_hr, "Failed to load document, %#lx.\n", hr);
+ ok_(__FILE__, line)(b == expected_ret, "got %d\n", b);
V_VT(&src) = VT_BSTR | VT_BYREF;
V_BSTRREF(&src) = &url;
hr = IXMLDOMDocument_load(doc, src, &b);
- ok(hr == S_OK, "Failed to load document, %#x.\n", hr);
- ok(b == VARIANT_TRUE, "got %d\n", b);
+ ok_(__FILE__, line)(hr == expected_hr, "Failed to load document, %#lx.\n", hr);
+ ok_(__FILE__, line)(b == expected_ret, "got %d\n", b);
+
+ if (expected_hr != S_OK)
+ return;
url = NULL;
hr = IXMLDOMDocument_get_url(doc, &url);
- ok(hr == S_OK, "Failed to get document url, hr %#x.\n", hr);
+ ok_(__FILE__, line)(hr == S_OK, "Failed to get document url, hr %#lx.\n", hr);
hr = IXMLDOMDocument_get_documentElement(doc, &elem);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok_(__FILE__, line)(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* Create another instance for the same document, check url */
hr = IXMLDOMElement_get_ownerDocument(elem, &doc2);
- ok(hr == S_OK, "Failed to get owner document, hr %#x.\n", hr);
+ ok_(__FILE__, line)(hr == S_OK, "Failed to get owner document, hr %#lx.\n", hr);
hr = IXMLDOMDocument_get_url(doc2, &url2);
- ok(hr == S_OK, "Failed to get document url, hr %#x.\n", hr);
- ok(!lstrcmpW(url, url2), "Unexpected url %s.\n", wine_dbgstr_w(url2));
+ ok_(__FILE__, line)(hr == S_OK, "Failed to get document url, hr %#lx.\n", hr);
+ ok_(__FILE__, line)(!lstrcmpW(url, url2), "Unexpected url %s.\n", wine_dbgstr_w(url2));
IXMLDOMDocument_Release(doc2);
IXMLDOMElement_Release(elem);
@@ -10250,10 +10890,25 @@ static void test_load(void)
IXMLDOMNodeList *list;
IXMLDOMDocument *doc;
BSTR bstr1, bstr2;
+ IStream *stream;
VARIANT_BOOL b;
VARIANT src;
HRESULT hr;
void* ptr;
+ int n;
+ struct encoding_test
+ {
+ const char *xml;
+ HRESULT expected_hr;
+ VARIANT_BOOL expected_ret;
+ } encoding_tests[] =
+ {
+ { gbkxml, S_OK, VARIANT_TRUE },
+ { iso8859_1_xml, S_OK, VARIANT_TRUE },
+ { win1252xml, S_OK, VARIANT_TRUE },
+ { win936xml, S_FALSE, VARIANT_FALSE },
+ };
+
GetTempPathA(MAX_PATH, path);
strcat(path, "winetest.xml");
@@ -10267,42 +10922,58 @@ static void test_load(void)
V_VT(&src) = VT_UNKNOWN;
V_UNKNOWN(&src) = NULL;
hr = IXMLDOMDocument_load(doc, src, &b);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_FALSE, "got %d\n", b);
/* "file://" url */
strcpy(path2, "file://");
strcat(path2, path);
- test_doc_load_from_path(doc, path2);
+ TEST_DOC_LOAD_FROM_PATH(doc, path2, S_OK, VARIANT_TRUE);
/* file:// url, forward slashes */
url_forward_slash(path2);
- test_doc_load_from_path(doc, path2);
+ TEST_DOC_LOAD_FROM_PATH(doc, path2, S_OK, VARIANT_TRUE);
/* "file:/" url */
strcpy(path2, "file:/");
strcat(path2, path);
- test_doc_load_from_path(doc, path);
+ TEST_DOC_LOAD_FROM_PATH(doc, path, S_OK, VARIANT_TRUE);
/* file:/ with forward slashes. */
url_forward_slash(path2);
- test_doc_load_from_path(doc, path2);
+ TEST_DOC_LOAD_FROM_PATH(doc, path2, S_OK, VARIANT_TRUE);
/* Regular local path. */
- test_doc_load_from_path(doc, path);
+ TEST_DOC_LOAD_FROM_PATH(doc, path, S_OK, VARIANT_TRUE);
/* load from a path: VT_BSTR|VT_BYREF, null ptr */
V_VT(&src) = VT_BSTR | VT_BYREF;
V_BSTRREF(&src) = NULL;
hr = IXMLDOMDocument_load(doc, src, &b);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_FALSE, "got %d\n", b);
bstr1 = NULL;
hr = IXMLDOMDocument_get_url(doc, &bstr1);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
SysFreeString(bstr1);
+ /* Regular local path with some URL encoded characters. */
+ strcpy(path2, path);
+ n = strlen(path2);
+ strcpy(&path2[n-1], "%6C"); /* C:\path\to\winetest.xm%6C */
+ TEST_DOC_LOAD_FROM_PATH(doc, path2, S_OK, VARIANT_TRUE);
+
+ /* Both spaces and %20s work. */
+ GetTempPathA(MAX_PATH, path2);
+ strcat(path2, "wine test.xml");
+ write_to_file(path2, win1252xml);
+ TEST_DOC_LOAD_FROM_PATH(doc, path2, S_OK, VARIANT_TRUE);
+ GetTempPathA(MAX_PATH, path2);
+ strcat(path2, "wine%20test.xml");
+ TEST_DOC_LOAD_FROM_PATH(doc, path2, S_OK, VARIANT_TRUE);
+ DeleteFileA(path2);
+
DeleteFileA(path);
/* load from existing path, no xml content */
@@ -10312,12 +10983,12 @@ static void test_load(void)
V_BSTR(&src) = _bstr_(path);
b = VARIANT_TRUE;
hr = IXMLDOMDocument_load(doc, src, &b);
- ok(hr == S_FALSE, "got 0x%08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_FALSE, "got %d\n", b);
bstr1 = (void *)0xdeadbeef;
hr = IXMLDOMDocument_get_url(doc, &bstr1);
- ok(hr == S_FALSE, "got 0x%08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(bstr1 == NULL, "got %p\n", bstr1);
DeleteFileA(path);
@@ -10326,15 +10997,15 @@ static void test_load(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_loadXML(doc, _bstr_(szExampleXML), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "got %d\n", b);
hr = IXMLDOMDocument_selectNodes(doc, _bstr_("//*"), &list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
bstr1 = _bstr_(list_to_string(list));
hr = IXMLDOMNodeList_reset(list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMDocument_Release(doc);
@@ -10346,23 +11017,23 @@ static void test_load(void)
ok(V_ARRAY(&src) != NULL, "SafeArrayCreateVector() returned NULL\n");
ptr = NULL;
hr = SafeArrayAccessData(V_ARRAY(&src), &ptr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(ptr != NULL, "SafeArrayAccessData() returned NULL\n");
memcpy(ptr, szExampleXML, lstrlenA(szExampleXML));
hr = SafeArrayUnlock(V_ARRAY(&src));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_load(doc, src, &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "got %d\n", b);
hr = IXMLDOMDocument_selectNodes(doc, _bstr_("//*"), &list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
bstr2 = _bstr_(list_to_string(list));
hr = IXMLDOMNodeList_reset(list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(lstrcmpW(bstr1, bstr2) == 0, "strings not equal: %s : %s\n",
wine_dbgstr_w(bstr1), wine_dbgstr_w(bstr2));
@@ -10379,16 +11050,16 @@ static void test_load(void)
ok(V_ARRAY(&src) != NULL, "SafeArrayCreateVector() returned NULL\n");
ptr = NULL;
hr = SafeArrayAccessData(V_ARRAY(&src), &ptr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(ptr != NULL, "SafeArrayAccessData() returned NULL\n");
memcpy(ptr, szComplete1, lstrlenW(szComplete1) * sizeof(WCHAR));
hr = SafeArrayUnlock(V_ARRAY(&src));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_load(doc, src, &b);
- todo_wine EXPECT_HR(hr, S_FALSE);
- todo_wine ok(b == VARIANT_FALSE, "got %d\n", b);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ ok(b == VARIANT_FALSE, "got %d\n", b);
VariantClear(&src);
@@ -10398,26 +11069,60 @@ static void test_load(void)
ok(V_ARRAY(&src) != NULL, "SafeArrayCreateVector() returned NULL\n");
ptr = NULL;
hr = SafeArrayAccessData(V_ARRAY(&src), &ptr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(ptr != NULL, "SafeArrayAccessData() returned NULL\n");
memcpy(ptr, szComplete1, lstrlenW(szComplete1) * sizeof(WCHAR));
hr = SafeArrayUnlock(V_ARRAY(&src));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_load(doc, src, &b);
- todo_wine EXPECT_HR(hr, E_INVALIDARG);
+ todo_wine ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_FALSE, "got %d\n", b);
VariantClear(&src);
+
+ /* test istream with empty content */
+ stream = SHCreateMemStream((const BYTE*)nocontent, strlen(nocontent));
+ V_VT(&src) = VT_UNKNOWN;
+ V_UNKNOWN(&src) = (IUnknown*)stream;
+ b = VARIANT_TRUE;
+ hr = IXMLDOMDocument_load(doc, src, &b);
+ todo_wine ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ ok(b == VARIANT_FALSE, "got %d\n", b);
+ EXPECT_PARSE_ERROR(doc, XML_E_INVALIDATROOTLEVEL, TRUE);
+ VariantClear(&src);
+
+ /* test istream with valid xml */
+ stream = SHCreateMemStream((const BYTE*)complete4A, strlen(complete4A));
+ V_VT(&src) = VT_UNKNOWN;
+ V_UNKNOWN(&src) = (IUnknown*)stream;
+ b = VARIANT_FALSE;
+ hr = IXMLDOMDocument_load(doc, src, &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(b == VARIANT_TRUE, "got %d\n", b);
+ EXPECT_PARSE_ERROR(doc, S_OK, FALSE);
+ VariantClear(&src);
+
IXMLDOMDocument_Release(doc);
+ /* Encoding tests. */
+ for (n = 0; n < ARRAY_SIZE(encoding_tests); n++)
+ {
+ GetTempPathA(MAX_PATH, path);
+ strcat(path, "codepage_test.xml");
+ write_to_file(path, encoding_tests[n].xml);
+ doc = create_document(&IID_IXMLDOMDocument);
+ TEST_DOC_LOAD_FROM_PATH(doc, path, encoding_tests[n].expected_hr, encoding_tests[n].expected_ret);
+ DeleteFileA(path);
+ IXMLDOMDocument_Release(doc);
+ }
+
free_bstrs();
}
static void test_domobj_dispex(IUnknown *obj)
{
- static const WCHAR testW[] = {'t','e','s','t','p','r','o','p',0};
DISPID dispid = DISPID_XMLDOM_NODELIST_RESET;
IDispatchEx *dispex;
IUnknown *unk;
@@ -10427,42 +11132,42 @@ static void test_domobj_dispex(IUnknown *obj)
BSTR name;
hr = IUnknown_QueryInterface(obj, &IID_IDispatchEx, (void**)&dispex);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if (FAILED(hr)) return;
ticnt = 0;
hr = IDispatchEx_GetTypeInfoCount(dispex, &ticnt);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(ticnt == 1, "ticnt=%u\n", ticnt);
- name = SysAllocString(szstar);
+ name = SysAllocString(L"*");
hr = IDispatchEx_DeleteMemberByName(dispex, name, fdexNameCaseSensitive);
- EXPECT_HR(hr, E_NOTIMPL);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
SysFreeString(name);
hr = IDispatchEx_DeleteMemberByDispID(dispex, dispid);
- EXPECT_HR(hr, E_NOTIMPL);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
props = 0;
hr = IDispatchEx_GetMemberProperties(dispex, dispid, grfdexPropCanAll, &props);
- EXPECT_HR(hr, E_NOTIMPL);
- ok(props == 0, "expected 0 got %d\n", props);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
+ ok(props == 0, "expected 0 got %ld\n", props);
hr = IDispatchEx_GetMemberName(dispex, dispid, &name);
- EXPECT_HR(hr, E_NOTIMPL);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
if (SUCCEEDED(hr)) SysFreeString(name);
hr = IDispatchEx_GetNextDispID(dispex, fdexEnumDefault, DISPID_XMLDOM_NODELIST_RESET, &dispid);
- EXPECT_HR(hr, E_NOTIMPL);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
unk = (IUnknown*)0xdeadbeef;
hr = IDispatchEx_GetNameSpaceParent(dispex, &unk);
- EXPECT_HR(hr, E_NOTIMPL);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
ok(unk == (IUnknown*)0xdeadbeef, "got %p\n", unk);
- name = SysAllocString(testW);
+ name = SysAllocString(L"testprop");
hr = IDispatchEx_GetDispID(dispex, name, fdexNameEnsure, &dispid);
- ok(hr == DISP_E_UNKNOWNNAME, "got 0x%08x\n", hr);
+ ok(hr == DISP_E_UNKNOWNNAME, "Unexpected hr %#lx.\n", hr);
SysFreeString(name);
IDispatchEx_Release(dispex);
@@ -10476,29 +11181,28 @@ static void test_mxnamespacemanager(void)
IMXNamespaceManager *nsmgr;
IUnknown *unk1, *unk2;
WCHAR buffW[250];
- IDispatch *disp;
IUnknown *unk;
HRESULT hr;
INT len;
hr = CoCreateInstance(&CLSID_MXNamespaceManager40, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXNamespaceManager, (void**)&nsmgr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- /* IMXNamespaceManager inherits from IUnknown */
- hr = IMXNamespaceManager_QueryInterface(nsmgr, &IID_IDispatch, (void**)&disp);
- EXPECT_HR(hr, S_OK);
- IDispatch_Release(disp);
+ check_interface(nsmgr, &IID_IDispatch, TRUE);
+ check_interface(nsmgr, &IID_IDispatchEx, TRUE);
+ check_interface(nsmgr, &IID_IMXNamespaceManager, TRUE);
+ check_interface(nsmgr, &IID_IVBMXNamespaceManager, TRUE);
hr = IMXNamespaceManager_QueryInterface(nsmgr, &IID_IVBMXNamespaceManager, (void**)&mgr2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(nsmgr, 2);
EXPECT_REF(mgr2, 2);
prefixes = NULL;
hr = IVBMXNamespaceManager_getDeclaredPrefixes(mgr2, &prefixes);
-todo_wine
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ todo_wine
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if (hr == S_OK)
{
IDispatchEx *dispex;
@@ -10520,7 +11224,7 @@ todo_wine
IUnknown_Release(unk2);
hr = IMXNamespacePrefixes_QueryInterface(prefixes, &IID_IDispatchEx, (void**)&dispex);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&arg) = VT_I4;
V_I4(&arg) = 0;
@@ -10532,7 +11236,7 @@ todo_wine
V_VT(&ret) = VT_EMPTY;
V_DISPATCH(&ret) = (void*)0x1;
hr = IDispatchEx_Invoke(dispex, DISPID_VALUE, &IID_NULL, 0, DISPATCH_METHOD, &dispparams, &ret, NULL, NULL);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&ret) == VT_BSTR, "got %d\n", V_VT(&ret));
ok(V_BSTR(&ret) != NULL, "got %p\n", V_BSTR(&ret));
VariantClear(&ret);
@@ -10543,94 +11247,94 @@ todo_wine
IVBMXNamespaceManager_Release(mgr2);
hr = IMXNamespaceManager_declarePrefix(nsmgr, NULL, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* prefix already added */
hr = IMXNamespaceManager_declarePrefix(nsmgr, NULL, _bstr_("ns0 uri"));
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
hr = IMXNamespaceManager_declarePrefix(nsmgr, _bstr_("ns0"), NULL);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
/* "xml" and "xmlns" are not allowed here */
hr = IMXNamespaceManager_declarePrefix(nsmgr, _bstr_("xml"), _bstr_("uri1"));
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IMXNamespaceManager_declarePrefix(nsmgr, _bstr_("xmlns"), _bstr_("uri1"));
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
todo_wine {
hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, -1, NULL, NULL);
- EXPECT_HR(hr, E_FAIL);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
}
hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0, NULL, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
len = -1;
hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0, NULL, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(len == 3, "got %d\n", len);
len = -1;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0, buffW, &len);
- EXPECT_HR(hr, E_XML_BUFFERTOOSMALL);
+ ok(hr == E_XML_BUFFERTOOSMALL, "Unexpected hr %#lx.\n", hr);
ok(len == -1, "got %d\n", len);
ok(buffW[0] == 0x1, "got %x\n", buffW[0]);
len = 10;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0, buffW, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(len == 3, "got %d\n", len);
- ok(!lstrcmpW(buffW, _bstr_("xml")), "got prefix %s\n", wine_dbgstr_w(buffW));
+ ok(!lstrcmpW(buffW, L"xml"), "got prefix %s\n", wine_dbgstr_w(buffW));
/* getURI */
hr = IMXNamespaceManager_getURI(nsmgr, NULL, NULL, NULL, NULL);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
len = -1;
hr = IMXNamespaceManager_getURI(nsmgr, NULL, NULL, NULL, &len);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(len == -1, "got %d\n", len);
hr = IMXNamespaceManager_getURI(nsmgr, _bstr_("xml"), NULL, NULL, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
len = -1;
hr = IMXNamespaceManager_getURI(nsmgr, _bstr_("xml"), NULL, NULL, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* length of "xml" uri is constant */
ok(len == strlen(xmluriA), "got %d\n", len);
len = 100;
hr = IMXNamespaceManager_getURI(nsmgr, _bstr_("xml"), NULL, buffW, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(len == strlen(xmluriA), "got %d\n", len);
ok(!lstrcmpW(buffW, _bstr_(xmluriA)), "got prefix %s\n", wine_dbgstr_w(buffW));
len = strlen(xmluriA)-1;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getURI(nsmgr, _bstr_("xml"), NULL, buffW, &len);
- EXPECT_HR(hr, E_XML_BUFFERTOOSMALL);
+ ok(hr == E_XML_BUFFERTOOSMALL, "Unexpected hr %#lx.\n", hr);
ok(len == strlen(xmluriA)-1, "got %d\n", len);
ok(buffW[0] == 0x1, "got %x\n", buffW[0]);
/* prefix xml1 not defined */
len = -1;
hr = IMXNamespaceManager_getURI(nsmgr, _bstr_("xml1"), NULL, NULL, &len);
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(len == 0, "got %d\n", len);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getURI(nsmgr, _bstr_("xml1"), NULL, buffW, &len);
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(buffW[0] == 0, "got %x\n", buffW[0]);
ok(len == 0, "got %d\n", len);
/* IDispatchEx tests */
hr = IMXNamespaceManager_QueryInterface(nsmgr, &IID_IUnknown, (void**)&unk);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
test_domobj_dispex(unk);
IUnknown_Release(unk);
@@ -10639,136 +11343,136 @@ todo_wine {
/* ::getPrefix() */
hr = CoCreateInstance(&CLSID_MXNamespaceManager40, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXNamespaceManager, (void**)&nsmgr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXNamespaceManager_getPrefix(nsmgr, NULL, 0, NULL, NULL);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
len = -1;
hr = IMXNamespaceManager_getPrefix(nsmgr, NULL, 0, NULL, &len);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(len == -1, "got %d\n", len);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_("ns0 uri"), 0, buffW, &len);
- EXPECT_HR(hr, E_FAIL);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(buffW[0] == 0x1, "got %x\n", buffW[0]);
ok(len == 100, "got %d\n", len);
len = 0;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_("ns0 uri"), 0, buffW, &len);
- EXPECT_HR(hr, E_FAIL);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(buffW[0] == 0x1, "got %x\n", buffW[0]);
ok(len == 0, "got %d\n", len);
hr = IMXNamespaceManager_declarePrefix(nsmgr, _bstr_("ns1"), _bstr_("ns1 uri"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_("ns1 uri"), 0, buffW, &len);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(buffW, _bstr_("ns1")), "got %s\n", wine_dbgstr_w(buffW));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(buffW, L"ns1"), "got %s\n", wine_dbgstr_w(buffW));
ok(len == 3, "got %d\n", len);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_("http://www.w3.org/XML/1998/namespace"), 0, buffW, &len);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(buffW, _bstr_("xml")), "got %s\n", wine_dbgstr_w(buffW));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(buffW, L"xml"), "got %s\n", wine_dbgstr_w(buffW));
ok(len == 3, "got %d\n", len);
/* with null buffer it's possible to get required length */
len = 100;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_("http://www.w3.org/XML/1998/namespace"), 0, NULL, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(len == 3, "got %d\n", len);
len = 0;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_("http://www.w3.org/XML/1998/namespace"), 0, NULL, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(len == 3, "got %d\n", len);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_("ns1 uri"), 1, buffW, &len);
- EXPECT_HR(hr, E_FAIL);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(buffW[0] == 0x1, "got %x\n", buffW[0]);
ok(len == 100, "got %d\n", len);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_("ns1 uri"), 2, buffW, &len);
- EXPECT_HR(hr, E_FAIL);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(buffW[0] == 0x1, "got %x\n", buffW[0]);
ok(len == 100, "got %d\n", len);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_(""), 0, buffW, &len);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(buffW[0] == 0x1, "got %x\n", buffW[0]);
ok(len == 100, "got %d\n", len);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_(""), 1, buffW, &len);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(buffW[0] == 0x1, "got %x\n", buffW[0]);
ok(len == 100, "got %d\n", len);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, NULL, 0, buffW, &len);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(buffW[0] == 0x1, "got %x\n", buffW[0]);
ok(len == 100, "got %d\n", len);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_("ns0 uri"), 1, buffW, &len);
- EXPECT_HR(hr, E_FAIL);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(buffW[0] == 0x1, "got %x\n", buffW[0]);
ok(len == 100, "got %d\n", len);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_(""), 1, buffW, &len);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(buffW[0] == 0x1, "got %x\n", buffW[0]);
ok(len == 100, "got %d\n", len);
/* declare another one, indices are shifted */
hr = IMXNamespaceManager_declarePrefix(nsmgr, _bstr_("ns2"), _bstr_("ns2 uri"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_("ns1 uri"), 0, buffW, &len);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(buffW, _bstr_("ns1")), "got %s\n", wine_dbgstr_w(buffW));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(buffW, L"ns1"), "got %s\n", wine_dbgstr_w(buffW));
ok(len == 3, "got %d\n", len);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_("ns2 uri"), 0, buffW, &len);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(buffW, _bstr_("ns2")), "got %s\n", wine_dbgstr_w(buffW));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(buffW, L"ns2"), "got %s\n", wine_dbgstr_w(buffW));
ok(len == 3, "got %d\n", len);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_("ns2 uri"), 1, buffW, &len);
- EXPECT_HR(hr, E_FAIL);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(buffW[0] == 0x1, "got %x\n", buffW[0]);
ok(len == 100, "got %d\n", len);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_(""), 1, buffW, &len);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(buffW[0] == 0x1, "got %x\n", buffW[0]);
ok(len == 100, "got %d\n", len);
@@ -10777,79 +11481,79 @@ todo_wine {
/* push/pop tests */
hr = CoCreateInstance(&CLSID_MXNamespaceManager40, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXNamespaceManager, (void**)&nsmgr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* pop with empty stack */
hr = IMXNamespaceManager_popContext(nsmgr);
- EXPECT_HR(hr, E_FAIL);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
hr = IMXNamespaceManager_declarePrefix(nsmgr, _bstr_("ns1"), _bstr_("ns1 uri"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_("ns1 uri"), 0, buffW, &len);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(buffW, _bstr_("ns1")), "got %s\n", wine_dbgstr_w(buffW));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(buffW, L"ns1"), "got %s\n", wine_dbgstr_w(buffW));
ok(len == 3, "got %d\n", len);
hr = IMXNamespaceManager_pushContext(nsmgr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_("ns1 uri"), 0, buffW, &len);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(buffW, _bstr_("ns1")), "got %s\n", wine_dbgstr_w(buffW));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(buffW, L"ns1"), "got %s\n", wine_dbgstr_w(buffW));
ok(len == 3, "got %d\n", len);
hr = IMXNamespaceManager_declarePrefix(nsmgr, _bstr_("ns2"), _bstr_("ns2 uri"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_("ns2 uri"), 0, buffW, &len);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(buffW, _bstr_("ns2")), "got %s\n", wine_dbgstr_w(buffW));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(buffW, L"ns2"), "got %s\n", wine_dbgstr_w(buffW));
ok(len == 3, "got %d\n", len);
hr = IMXNamespaceManager_pushContext(nsmgr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXNamespaceManager_declarePrefix(nsmgr, _bstr_("ns3"), _bstr_("ns3 uri"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_("ns2 uri"), 0, buffW, &len);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(buffW, _bstr_("ns2")), "got %s\n", wine_dbgstr_w(buffW));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(buffW, L"ns2"), "got %s\n", wine_dbgstr_w(buffW));
ok(len == 3, "got %d\n", len);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_("ns1 uri"), 0, buffW, &len);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(buffW, _bstr_("ns1")), "got %s\n", wine_dbgstr_w(buffW));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(buffW, L"ns1"), "got %s\n", wine_dbgstr_w(buffW));
ok(len == 3, "got %d\n", len);
hr = IMXNamespaceManager_popContext(nsmgr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXNamespaceManager_popContext(nsmgr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_("ns2 uri"), 0, buffW, &len);
- EXPECT_HR(hr, E_FAIL);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(buffW[0] == 0x1, "got %x\n", buffW[0]);
ok(len == 100, "got %d\n", len);
len = 100;
buffW[0] = 0x1;
hr = IMXNamespaceManager_getPrefix(nsmgr, _bstr_("ns1 uri"), 0, buffW, &len);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(buffW, _bstr_("ns1")), "got %s\n", wine_dbgstr_w(buffW));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(buffW, L"ns1"), "got %s\n", wine_dbgstr_w(buffW));
ok(len == 3, "got %d\n", len);
IMXNamespaceManager_Release(nsmgr);
@@ -10867,96 +11571,96 @@ static void test_mxnamespacemanager_override(void)
hr = CoCreateInstance(&CLSID_MXNamespaceManager40, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXNamespaceManager, (void**)&nsmgr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = ARRAY_SIZE(buffW);
buffW[0] = 0;
hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0, buffW, &len);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(buffW, _bstr_("xml")), "got prefix %s\n", wine_dbgstr_w(buffW));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(buffW, L"xml"), "got prefix %s\n", wine_dbgstr_w(buffW));
len = ARRAY_SIZE(buffW);
buffW[0] = 0;
hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 1, buffW, &len);
- EXPECT_HR(hr, E_FAIL);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
hr = IMXNamespaceManager_getAllowOverride(nsmgr, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
b = VARIANT_FALSE;
hr = IMXNamespaceManager_getAllowOverride(nsmgr, &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "got %d\n", b);
hr = IMXNamespaceManager_putAllowOverride(nsmgr, VARIANT_FALSE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXNamespaceManager_declarePrefix(nsmgr, NULL, _bstr_("ns0 uri"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = ARRAY_SIZE(buffW);
buffW[0] = 0;
hr = IMXNamespaceManager_getURI(nsmgr, _bstr_(""), NULL, buffW, &len);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(buffW, _bstr_("ns0 uri")), "got uri %s\n", wine_dbgstr_w(buffW));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(buffW, L"ns0 uri"), "got uri %s\n", wine_dbgstr_w(buffW));
hr = IMXNamespaceManager_declarePrefix(nsmgr, _bstr_("ns0"), _bstr_("ns0 uri"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = ARRAY_SIZE(buffW);
buffW[0] = 0;
hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 0, buffW, &len);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(buffW, _bstr_("xml")), "got prefix %s\n", wine_dbgstr_w(buffW));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(buffW, L"xml"), "got prefix %s\n", wine_dbgstr_w(buffW));
len = ARRAY_SIZE(buffW);
buffW[0] = 0;
hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 1, buffW, &len);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(buffW, _bstr_("ns0")), "got prefix %s\n", wine_dbgstr_w(buffW));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(buffW, L"ns0"), "got prefix %s\n", wine_dbgstr_w(buffW));
len = ARRAY_SIZE(buffW);
buffW[0] = 0;
hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 2, buffW, &len);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(buffW, _bstr_("")), "got prefix %s\n", wine_dbgstr_w(buffW));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(buffW, L""), "got prefix %s\n", wine_dbgstr_w(buffW));
/* new prefix placed at index 1 always */
hr = IMXNamespaceManager_declarePrefix(nsmgr, _bstr_("ns1"), _bstr_("ns1 uri"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = ARRAY_SIZE(buffW);
buffW[0] = 0;
hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 1, buffW, &len);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(buffW, _bstr_("ns1")), "got prefix %s\n", wine_dbgstr_w(buffW));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(buffW, L"ns1"), "got prefix %s\n", wine_dbgstr_w(buffW));
hr = IMXNamespaceManager_declarePrefix(nsmgr, _bstr_(""), NULL);
- todo_wine EXPECT_HR(hr, E_FAIL);
+ todo_wine ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
hr = IMXNamespaceManager_declarePrefix(nsmgr, NULL, NULL);
- EXPECT_HR(hr, E_FAIL);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
hr = IMXNamespaceManager_declarePrefix(nsmgr, NULL, _bstr_("ns0 uri"));
- EXPECT_HR(hr, E_FAIL);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
hr = IMXNamespaceManager_putAllowOverride(nsmgr, VARIANT_TRUE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXNamespaceManager_declarePrefix(nsmgr, NULL, _bstr_("ns0 uri override"));
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
len = ARRAY_SIZE(buffW);
buffW[0] = 0;
hr = IMXNamespaceManager_getURI(nsmgr, _bstr_(""), NULL, buffW, &len);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(buffW, _bstr_("ns0 uri override")), "got uri %s\n", wine_dbgstr_w(buffW));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(buffW, L"ns0 uri override"), "got uri %s\n", wine_dbgstr_w(buffW));
len = ARRAY_SIZE(buffW);
buffW[0] = 0;
hr = IMXNamespaceManager_getDeclaredPrefix(nsmgr, 3, buffW, &len);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(buffW, _bstr_("")), "got prefix %s\n", wine_dbgstr_w(buffW));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(buffW, L""), "got prefix %s\n", wine_dbgstr_w(buffW));
IMXNamespaceManager_Release(nsmgr);
@@ -11000,7 +11704,7 @@ static void test_dispex(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_QueryInterface(doc, &IID_IUnknown, (void**)&unk);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
test_domobj_dispex(unk);
IUnknown_Release(unk);
@@ -11024,37 +11728,37 @@ static void test_dispex(void)
/* IXMLDOMNodeList */
hr = IXMLDOMDocument_getElementsByTagName(doc, _bstr_("*"), &node_list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNodeList_QueryInterface(node_list, &IID_IUnknown, (void**)&unk);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
test_domobj_dispex(unk);
IUnknown_Release(unk);
IXMLDOMNodeList_Release(node_list);
/* IXMLDOMNodeList for children list */
hr = IXMLDOMDocument_get_childNodes(doc, &node_list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNodeList_QueryInterface(node_list, &IID_IUnknown, (void**)&unk);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
test_domobj_dispex(unk);
IUnknown_Release(unk);
/* collection dispex test, empty collection */
hr = IXMLDOMNodeList_QueryInterface(node_list, &IID_IDispatchEx, (void**)&dispex);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
did = 0;
hr = IDispatchEx_GetDispID(dispex, _bstr_("0"), 0, &did);
- EXPECT_HR(hr, S_OK);
- ok(did == DISPID_DOM_COLLECTION_BASE, "got 0x%08x\n", did);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(did == DISPID_DOM_COLLECTION_BASE, "Unexpected value %ld.\n", did);
hr = IDispatchEx_GetDispID(dispex, _bstr_("1"), 0, &did);
- EXPECT_HR(hr, S_OK);
- ok(did == DISPID_DOM_COLLECTION_BASE+1, "got 0x%08x\n", did);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(did == DISPID_DOM_COLLECTION_BASE+1, "Unexpected value %ld.\n", did);
IDispatchEx_Release(dispex);
did = -1;
hr = IDispatchEx_GetDispID(dispex, _bstr_("item"), 0, &did);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(did == DISPID_VALUE, "got %d\n", did);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(did == DISPID_VALUE, "got %ld\n", did);
V_VT(&arg) = VT_I4;
V_I4(&arg) = 0;
@@ -11066,9 +11770,9 @@ static void test_dispex(void)
V_VT(&ret) = VT_EMPTY;
V_DISPATCH(&ret) = (void*)0x1;
hr = IDispatchEx_Invoke(dispex, DISPID_VALUE, &IID_NULL, 0, DISPATCH_METHOD, &dispparams, &ret, NULL, NULL);
- ok(hr == DISP_E_BADPARAMCOUNT, "got 0x%08x\n", hr);
+ ok(hr == DISP_E_BADPARAMCOUNT, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&ret) == VT_EMPTY, "got %d\n", V_VT(&ret));
-todo_wine
+ todo_wine
ok(broken(V_DISPATCH(&ret) == (void*)0x1) || (V_DISPATCH(&ret) == NULL), "got %p\n", V_DISPATCH(&ret));
V_VT(&arg) = VT_I4;
@@ -11081,9 +11785,9 @@ todo_wine
V_VT(&ret) = VT_EMPTY;
V_DISPATCH(&ret) = (void*)0x1;
hr = IDispatchEx_Invoke(dispex, DISPID_VALUE, &IID_NULL, 0, DISPATCH_METHOD, &dispparams, &ret, NULL, NULL);
- ok(hr == DISP_E_BADPARAMCOUNT, "got 0x%08x\n", hr);
+ ok(hr == DISP_E_BADPARAMCOUNT, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&ret) == VT_EMPTY, "got %d\n", V_VT(&ret));
-todo_wine
+ todo_wine
ok(broken(V_DISPATCH(&ret) == (void*)0x1) || (V_DISPATCH(&ret) == NULL), "got %p\n", V_DISPATCH(&ret));
V_VT(&arg) = VT_I4;
@@ -11096,21 +11800,21 @@ todo_wine
V_VT(&ret) = VT_EMPTY;
V_DISPATCH(&ret) = (void*)0x1;
hr = IDispatchEx_Invoke(dispex, DISPID_VALUE, &IID_NULL, 0, DISPATCH_METHOD, &dispparams, &ret, NULL, NULL);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&ret) == VT_DISPATCH, "got %d\n", V_VT(&ret));
ok(V_DISPATCH(&ret) == NULL, "got %p\n", V_DISPATCH(&ret));
V_VT(&ret) = VT_EMPTY;
V_DISPATCH(&ret) = (void*)0x1;
hr = IDispatchEx_Invoke(dispex, DISPID_VALUE, &IID_NULL, 0, DISPATCH_PROPERTYGET, &dispparams, &ret, NULL, NULL);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&ret) == VT_DISPATCH, "got %d\n", V_VT(&ret));
ok(V_DISPATCH(&ret) == NULL, "got %p\n", V_DISPATCH(&ret));
V_VT(&ret) = VT_EMPTY;
V_DISPATCH(&ret) = (void*)0x1;
hr = IDispatchEx_Invoke(dispex, DISPID_VALUE, &IID_NULL, 0, DISPATCH_PROPERTYGET|DISPATCH_METHOD, &dispparams, &ret, NULL, NULL);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&ret) == VT_DISPATCH, "got %d\n", V_VT(&ret));
ok(V_DISPATCH(&ret) == NULL, "got %p\n", V_DISPATCH(&ret));
@@ -11122,9 +11826,9 @@ todo_wine
V_VT(&ret) = VT_EMPTY;
V_I4(&ret) = 1;
hr = IDispatchEx_Invoke(dispex, DISPID_DOM_NODELIST_LENGTH, &IID_NULL, 0, DISPATCH_PROPERTYGET, &dispparams, &ret, NULL, NULL);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&ret) == VT_I4, "got %d\n", V_VT(&ret));
- ok(V_I4(&ret) == 0, "got %d\n", V_I4(&ret));
+ ok(V_I4(&ret) == 0, "got %ld\n", V_I4(&ret));
dispparams.cArgs = 0;
dispparams.cNamedArgs = 0;
@@ -11134,21 +11838,21 @@ todo_wine
V_VT(&ret) = VT_EMPTY;
V_I4(&ret) = 1;
hr = IDispatchEx_Invoke(dispex, DISPID_DOM_NODELIST_LENGTH, &IID_NULL, 0, DISPATCH_METHOD, &dispparams, &ret, NULL, NULL);
- ok(hr == DISP_E_MEMBERNOTFOUND, "got 0x%08x\n", hr);
+ ok(hr == DISP_E_MEMBERNOTFOUND, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&ret) == VT_EMPTY, "got %d\n", V_VT(&ret));
-todo_wine
- ok(broken(V_I4(&ret) == 1) || (V_I4(&ret) == 0), "got %d\n", V_I4(&ret));
+ todo_wine
+ ok(broken(V_I4(&ret) == 1) || (V_I4(&ret) == 0), "got %ld\n", V_I4(&ret));
IXMLDOMNodeList_Release(node_list);
/* IXMLDOMParseError */
hr = IXMLDOMDocument_get_parseError(doc, &error);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMParseError_QueryInterface(error, &IID_IUnknown, (void**)&unk);
test_domobj_dispex(unk);
hr = IXMLDOMParseError_QueryInterface(error, &IID_IDispatchEx, (void**)&dispex);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&arg) = VT_I4;
V_I4(&arg) = 0;
@@ -11160,9 +11864,9 @@ todo_wine
V_VT(&ret) = VT_EMPTY;
V_DISPATCH(&ret) = (void*)0x1;
hr = IDispatchEx_Invoke(dispex, DISPID_VALUE, &IID_NULL, 0, DISPATCH_METHOD, &dispparams, &ret, NULL, NULL);
- ok(hr == DISP_E_MEMBERNOTFOUND, "got 0x%08x\n", hr);
+ ok(hr == DISP_E_MEMBERNOTFOUND, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&ret) == VT_EMPTY, "got %d\n", V_VT(&ret));
-todo_wine
+ todo_wine
ok(broken(V_DISPATCH(&ret) == (void*)0x1) || (V_DISPATCH(&ret) == NULL), "got %p\n", V_DISPATCH(&ret));
IDispatchEx_Release(dispex);
@@ -11172,58 +11876,58 @@ todo_wine
/* IXMLDOMNamedNodeMap */
hr = IXMLDOMDocument_loadXML(doc, _bstr_(xpath_simple_list), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_selectNodes(doc, _bstr_("root/a"), &node_list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNodeList_get_item(node_list, 0, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNodeList_Release(node_list);
hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMElement, (void**)&elem);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
hr = IXMLDOMElement_get_attributes(elem, &map);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNamedNodeMap_QueryInterface(map, &IID_IUnknown, (void**)&unk);
test_domobj_dispex(unk);
IUnknown_Release(unk);
/* collection dispex test */
hr = IXMLDOMNamedNodeMap_QueryInterface(map, &IID_IDispatchEx, (void**)&dispex);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
did = 0;
hr = IDispatchEx_GetDispID(dispex, _bstr_("0"), 0, &did);
- EXPECT_HR(hr, S_OK);
- ok(did == DISPID_DOM_COLLECTION_BASE, "got 0x%08x\n", did);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(did == DISPID_DOM_COLLECTION_BASE, "Unexpected value %ld.\n", did);
IDispatchEx_Release(dispex);
IXMLDOMNamedNodeMap_Release(map);
hr = IXMLDOMDocument_selectNodes(doc, _bstr_("root/b"), &node_list);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNodeList_get_item(node_list, 0, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNodeList_Release(node_list);
hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMElement, (void**)&elem);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node);
hr = IXMLDOMElement_get_attributes(elem, &map);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* collection dispex test, empty collection */
hr = IXMLDOMNamedNodeMap_QueryInterface(map, &IID_IDispatchEx, (void**)&dispex);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
did = 0;
hr = IDispatchEx_GetDispID(dispex, _bstr_("0"), 0, &did);
- EXPECT_HR(hr, S_OK);
- ok(did == DISPID_DOM_COLLECTION_BASE, "got 0x%08x\n", did);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(did == DISPID_DOM_COLLECTION_BASE, "Unexpected value %ld\n", did);
hr = IDispatchEx_GetDispID(dispex, _bstr_("1"), 0, &did);
- EXPECT_HR(hr, S_OK);
- ok(did == DISPID_DOM_COLLECTION_BASE+1, "got 0x%08x\n", did);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(did == DISPID_DOM_COLLECTION_BASE+1, "Unexpected value %ld.\n", did);
IXMLDOMNamedNodeMap_Release(map);
did = -1;
hr = IDispatchEx_GetDispID(dispex, _bstr_("item"), 0, &did);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(did == DISPID_VALUE, "got %d\n", did);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(did == DISPID_VALUE, "got %ld\n", did);
V_VT(&arg) = VT_I4;
V_I4(&arg) = 0;
@@ -11236,7 +11940,7 @@ todo_wine
V_DISPATCH(&ret) = (void*)0x1;
hr = IDispatchEx_Invoke(dispex, DISPID_VALUE, &IID_NULL, 0, DISPATCH_METHOD, &dispparams, &ret, NULL, NULL);
todo_wine {
- ok(hr == DISP_E_BADPARAMCOUNT, "got 0x%08x\n", hr);
+ ok(hr == DISP_E_BADPARAMCOUNT, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&ret) == VT_EMPTY, "got %d\n", V_VT(&ret));
}
ok(broken(V_DISPATCH(&ret) == (void*)0x1) || (V_DISPATCH(&ret) == NULL), "got %p\n", V_DISPATCH(&ret));
@@ -11252,7 +11956,7 @@ todo_wine {
V_DISPATCH(&ret) = (void*)0x1;
hr = IDispatchEx_Invoke(dispex, DISPID_VALUE, &IID_NULL, 0, DISPATCH_METHOD, &dispparams, &ret, NULL, NULL);
todo_wine {
- ok(hr == DISP_E_BADPARAMCOUNT, "got 0x%08x\n", hr);
+ ok(hr == DISP_E_BADPARAMCOUNT, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&ret) == VT_EMPTY, "got %d\n", V_VT(&ret));
}
ok(broken(V_DISPATCH(&ret) == (void*)0x1) || (V_DISPATCH(&ret) == NULL), "got %p\n", V_DISPATCH(&ret));
@@ -11267,22 +11971,22 @@ todo_wine {
V_VT(&ret) = VT_EMPTY;
V_DISPATCH(&ret) = (void*)0x1;
hr = IDispatchEx_Invoke(dispex, DISPID_VALUE, &IID_NULL, 0, DISPATCH_METHOD, &dispparams, &ret, NULL, NULL);
-todo_wine
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ todo_wine
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&ret) == VT_DISPATCH, "got %d\n", V_VT(&ret));
ok(V_DISPATCH(&ret) == NULL, "got %p\n", V_DISPATCH(&ret));
V_VT(&ret) = VT_EMPTY;
V_DISPATCH(&ret) = (void*)0x1;
hr = IDispatchEx_Invoke(dispex, DISPID_VALUE, &IID_NULL, 0, DISPATCH_PROPERTYGET, &dispparams, &ret, NULL, NULL);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&ret) == VT_DISPATCH, "got %d\n", V_VT(&ret));
ok(V_DISPATCH(&ret) == NULL, "got %p\n", V_DISPATCH(&ret));
V_VT(&ret) = VT_EMPTY;
V_DISPATCH(&ret) = (void*)0x1;
hr = IDispatchEx_Invoke(dispex, DISPID_VALUE, &IID_NULL, 0, DISPATCH_PROPERTYGET|DISPATCH_METHOD, &dispparams, &ret, NULL, NULL);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&ret) == VT_DISPATCH, "got %d\n", V_VT(&ret));
ok(V_DISPATCH(&ret) == NULL, "got %p\n", V_DISPATCH(&ret));
@@ -11294,9 +11998,9 @@ todo_wine
V_VT(&ret) = VT_EMPTY;
V_I4(&ret) = 1;
hr = IDispatchEx_Invoke(dispex, DISPID_DOM_NODELIST_LENGTH, &IID_NULL, 0, DISPATCH_PROPERTYGET, &dispparams, &ret, NULL, NULL);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&ret) == VT_I4, "got %d\n", V_VT(&ret));
- ok(V_I4(&ret) == 0, "got %d\n", V_I4(&ret));
+ ok(V_I4(&ret) == 0, "got %ld\n", V_I4(&ret));
dispparams.cArgs = 0;
dispparams.cNamedArgs = 0;
@@ -11306,20 +12010,20 @@ todo_wine
V_VT(&ret) = VT_EMPTY;
V_I4(&ret) = 1;
hr = IDispatchEx_Invoke(dispex, DISPID_DOM_NODELIST_LENGTH, &IID_NULL, 0, DISPATCH_METHOD, &dispparams, &ret, NULL, NULL);
- ok(hr == DISP_E_MEMBERNOTFOUND, "got 0x%08x\n", hr);
-todo_wine
+ ok(hr == DISP_E_MEMBERNOTFOUND, "Unexpected hr %#lx.\n", hr);
+ todo_wine
ok(V_VT(&ret) == VT_EMPTY, "got %d\n", V_VT(&ret));
- ok(broken(V_I4(&ret) == 1) || (V_I4(&ret) == 0), "got %d\n", V_I4(&ret));
+ ok(broken(V_I4(&ret) == 1) || (V_I4(&ret) == 0), "got %ld\n", V_I4(&ret));
IDispatchEx_Release(dispex);
IXMLDOMElement_Release(elem);
/* IXMLDOMImplementation */
hr = IXMLDOMDocument_get_implementation(doc, &impl);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMImplementation_QueryInterface(impl, &IID_IDispatchEx, (void**)&dispex);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IDispatchEx_Release(dispex);
IXMLDOMImplementation_Release(impl);
@@ -11331,38 +12035,38 @@ todo_wine
if (hr == S_OK)
{
hr = IXMLHTTPRequest_QueryInterface(req, &IID_IDispatchEx, (void**)&dispex);
- EXPECT_HR(hr, E_NOINTERFACE);
+ ok(hr == E_NOINTERFACE, "Unexpected hr %#lx.\n", hr);
IXMLHTTPRequest_Release(req);
}
/* IXSLTemplate */
template = create_xsltemplate(&IID_IXSLTemplate);
hr = IXSLTemplate_QueryInterface(template, &IID_IDispatchEx, (void**)&dispex);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDispatchEx_QueryInterface(dispex, &IID_IUnknown, (void**)&unk);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
test_domobj_dispex(unk);
IUnknown_Release(unk);
IDispatchEx_Release(dispex);
/* IXSLProcessor */
hr = CoCreateInstance(&CLSID_FreeThreadedDOMDocument, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument, (void**)&doc);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
b = VARIANT_FALSE;
hr = IXMLDOMDocument_loadXML(doc, _bstr_(szTransformSSXML), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "got %d\n", b);
hr = IXSLTemplate_putref_stylesheet(template, (IXMLDOMNode*)doc);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMDocument_Release(doc);
hr = IXSLTemplate_createProcessor(template, &processor);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXSLProcessor_QueryInterface(processor, &IID_IDispatchEx, (void**)&dispex);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDispatchEx_QueryInterface(dispex, &IID_IUnknown, (void**)&unk);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
test_domobj_dispex(unk);
IUnknown_Release(unk);
IDispatchEx_Release(dispex);
@@ -11390,16 +12094,16 @@ static void test_parseerror(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_get_parseError(doc, &error);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMParseError_get_line(error, NULL);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMParseError_get_srcText(error, NULL);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMParseError_get_linepos(error, NULL);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
IXMLDOMParseError_Release(error);
IXMLDOMDocument_Release(doc);
@@ -11408,9 +12112,9 @@ static void test_parseerror(void)
doc = create_document_version(60, &IID_IXMLDOMDocument);
hr = IXMLDOMDocument_get_parseError(doc, &error);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMParseError_QueryInterface(error, &IID_IXMLDOMParseError2, (void**)&error2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMParseError2_Release(error2);
IXMLDOMParseError_Release(error);
IXMLDOMDocument_Release(doc);
@@ -11428,40 +12132,40 @@ static void test_getAttributeNode(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_loadXML(doc, _bstr_(szExampleXML), &v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_get_documentElement(doc, &elem);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
str = SysAllocString(nonexistent_fileW);
hr = IXMLDOMElement_getAttributeNode(elem, str, NULL);
- EXPECT_HR(hr, E_FAIL);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
attr = (IXMLDOMAttribute*)0xdeadbeef;
hr = IXMLDOMElement_getAttributeNode(elem, str, &attr);
- EXPECT_HR(hr, E_FAIL);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(attr == NULL, "got %p\n", attr);
SysFreeString(str);
- str = SysAllocString(nonexistent_attrW);
+ str = SysAllocString(L"nonExistingAttribute");
hr = IXMLDOMElement_getAttributeNode(elem, str, NULL);
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
attr = (IXMLDOMAttribute*)0xdeadbeef;
hr = IXMLDOMElement_getAttributeNode(elem, str, &attr);
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(attr == NULL, "got %p\n", attr);
SysFreeString(str);
hr = IXMLDOMElement_getAttributeNode(elem, _bstr_("foo:b"), &attr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMAttribute_Release(attr);
hr = IXMLDOMElement_getAttributeNode(elem, _bstr_("b"), &attr);
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_getAttributeNode(elem, _bstr_("a"), &attr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMAttribute_Release(attr);
IXMLDOMElement_Release(elem);
@@ -11480,37 +12184,37 @@ static void test_getAttribute(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_loadXML(doc, _bstr_(szExampleXML), &v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_get_documentElement(doc, &elem);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
VariantInit(&var);
hr = IXMLDOMElement_getAttribute( elem, _bstr_("xmlns:foo"), &var );
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( V_VT(&var) == VT_BSTR, "vt = %x\n", V_VT(&var));
- ok( !lstrcmpW(V_BSTR(&var), _bstr_("urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29")), "wrong attr value: %s\n", wine_dbgstr_w(V_BSTR(&var)));
+ ok(!lstrcmpW(V_BSTR(&var), L"urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29"), "wrong attr value: %s\n", wine_dbgstr_w(V_BSTR(&var)));
VariantClear(&var);
hr = IXMLDOMElement_getAttribute( elem, _bstr_("a"), &var );
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( V_VT(&var) == VT_BSTR, "vt = %x\n", V_VT(&var));
- ok( !lstrcmpW(V_BSTR(&var), _bstr_("attr a")), "wrong attr value: %s\n", wine_dbgstr_w(V_BSTR(&var)));
+ ok(!lstrcmpW(V_BSTR(&var), L"attr a"), "wrong attr value: %s\n", wine_dbgstr_w(V_BSTR(&var)));
VariantClear(&var);
hr = IXMLDOMElement_getAttribute( elem, _bstr_("foo:b"), &var );
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok( V_VT(&var) == VT_BSTR, "vt = %x\n", V_VT(&var));
- ok( !lstrcmpW(V_BSTR(&var), _bstr_("attr b")), "wrong attr value: %s\n", wine_dbgstr_w(V_BSTR(&var)));
+ ok(!lstrcmpW(V_BSTR(&var), L"attr b"), "wrong attr value: %s\n", wine_dbgstr_w(V_BSTR(&var)));
VariantClear(&var);
hr = IXMLDOMElement_getAttribute( elem, _bstr_("b"), &var );
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok( V_VT(&var) == VT_NULL, "vt = %x\n", V_VT(&var));
VariantClear(&var);
hr = IXMLDOMElement_getAttribute( elem, _bstr_("non-existent"), &var );
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok( V_VT(&var) == VT_NULL, "vt = %x\n", V_VT(&var));
VariantClear(&var);
@@ -11557,7 +12261,7 @@ static void test_supporterrorinfo(void)
EXPECT_REF(doc, 1);
hr = IXMLDOMDocument_QueryInterface(doc, &IID_ISupportErrorInfo, (void**)&errorinfo);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(doc, 1);
ISupportErrorInfo_AddRef(errorinfo);
EXPECT_REF(errorinfo, 2);
@@ -11565,14 +12269,14 @@ static void test_supporterrorinfo(void)
ISupportErrorInfo_Release(errorinfo);
hr = IXMLDOMDocument_QueryInterface(doc, &IID_ISupportErrorInfo, (void**)&info2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(errorinfo != info2, "got %p, %p\n", info2, errorinfo);
/* error interface can't be queried back for DOM interface */
hr = ISupportErrorInfo_QueryInterface(info2, &IID_IXMLDOMDocument, &dummy);
- EXPECT_HR(hr, E_NOINTERFACE);
+ ok(hr == E_NOINTERFACE, "Unexpected hr %#lx.\n", hr);
hr = ISupportErrorInfo_QueryInterface(info2, &IID_IXMLDOMNode, &dummy);
- EXPECT_HR(hr, E_NOINTERFACE);
+ ok(hr == E_NOINTERFACE, "Unexpected hr %#lx.\n", hr);
ISupportErrorInfo_Release(info2);
@@ -11580,11 +12284,11 @@ static void test_supporterrorinfo(void)
while (*iid)
{
hr = IXMLDOMDocument_QueryInterface(doc, *iid, (void**)&unk);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if (hr == S_OK)
{
hr = ISupportErrorInfo_InterfaceSupportsErrorInfo(errorinfo, *iid);
- ok(hr == S_OK, "got 0x%08x for %s\n", hr, wine_dbgstr_guid(*iid));
+ ok(hr == S_OK, "Unexpected hr %#lx. for %s\n", hr, wine_dbgstr_guid(*iid));
IUnknown_Release(unk);
}
@@ -11602,15 +12306,15 @@ static void test_supporterrorinfo(void)
V_I1(&type) = ptr->type;
hr = IXMLDOMDocument_createNode(doc, type, _bstr_(ptr->name), NULL, &node);
- ok(hr == S_OK, "%d: got 0x%08x\n", ptr->type, hr);
+ ok(hr == S_OK, "%d: Unexpected hr %#lx.\n", ptr->type, hr);
EXPECT_REF(node, 1);
hr = IXMLDOMNode_QueryInterface(node, &IID_ISupportErrorInfo, (void**)&errorinfo);
- ok(hr == S_OK, "%d: got 0x%08x\n", ptr->type, hr);
+ ok(hr == S_OK, "%d: Unexpected hr %#lx.\n", ptr->type, hr);
EXPECT_REF(node, 1);
hr = ISupportErrorInfo_QueryInterface(errorinfo, &IID_IXMLDOMNode, &dummy);
- ok(hr == E_NOINTERFACE, "%d: got 0x%08x\n", ptr->type, hr);
+ ok(hr == E_NOINTERFACE, "%d: Unexpected hr %#lx.\n", ptr->type, hr);
iid = ptr->iids;
@@ -11620,7 +12324,7 @@ static void test_supporterrorinfo(void)
if (hr == S_OK)
{
hr = ISupportErrorInfo_InterfaceSupportsErrorInfo(errorinfo, *iid);
- ok(hr == S_OK, "%d: got 0x%08x for %s\n", ptr->type, hr, wine_dbgstr_guid(*iid));
+ ok(hr == S_OK, "%d: unexpected hr %#lx for %s\n", ptr->type, hr, wine_dbgstr_guid(*iid));
IUnknown_Release(unk);
}
@@ -11635,31 +12339,31 @@ static void test_supporterrorinfo(void)
/* IXMLDOMNamedNodeMap */
b = VARIANT_FALSE;
hr = IXMLDOMDocument_loadXML(doc, _bstr_(complete4A), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "got %d\n", b);
hr = IXMLDOMDocument_get_documentElement(doc, &elem);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_get_attributes(elem, &map);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(map, 1);
hr = IXMLDOMNamedNodeMap_QueryInterface(map, &IID_ISupportErrorInfo, (void**)&errorinfo);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(map, 2);
hr = ISupportErrorInfo_InterfaceSupportsErrorInfo(errorinfo, &IID_IXMLDOMNamedNodeMap);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISupportErrorInfo_QueryInterface(errorinfo, &IID_IXMLDOMNamedNodeMap, (void**)&map2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(map == map2, "got %p\n", map2);
IXMLDOMNamedNodeMap_Release(map2);
EXPECT_REF(errorinfo, 2);
hr = ISupportErrorInfo_QueryInterface(errorinfo, &IID_IUnknown, (void**)&unk);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(errorinfo, 3);
EXPECT_REF(map, 3);
IUnknown_Release(unk);
@@ -11672,13 +12376,13 @@ static void test_supporterrorinfo(void)
/* IXMLDOMSchemaCollection */
hr = CoCreateInstance(&CLSID_XMLSchemaCache, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMSchemaCollection, (void**)&schemacache);
- ok(hr == S_OK, "failed to create schema collection, 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMSchemaCollection_QueryInterface(schemacache, &IID_ISupportErrorInfo, (void**)&errorinfo);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISupportErrorInfo_InterfaceSupportsErrorInfo(errorinfo, &IID_IXMLDOMSchemaCollection);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ISupportErrorInfo_Release(errorinfo);
IXMLDOMSchemaCollection_Release(schemacache);
@@ -11727,16 +12431,16 @@ static void test_nodeValue(void)
ok(hr == S_OK, "failed to create node type %d\n", ptr->type);
hr = IXMLDOMNode_get_nodeValue(node, NULL);
- ok(hr == E_INVALIDARG, "%d: got 0x%08x\n", ptr->type, hr);
+ ok(hr == E_INVALIDARG, "%d: unexpected hr %#lx\n", ptr->type, hr);
V_VT(&v) = VT_BSTR;
V_BSTR(&v) = _bstr_(ptr->put_content);
hr = IXMLDOMNode_put_nodeValue(node, v);
- ok(hr == ptr->put_hr, "%d: got 0x%08x\n", ptr->type, hr);
+ ok(hr == ptr->put_hr, "%d: unexpected hr %#lx\n", ptr->type, hr);
V_VT(&v) = VT_EMPTY;
hr = IXMLDOMNode_get_nodeValue(node, &v);
- ok(hr == ptr->get_hr, "%d: got 0x%08x, expected 0x%08x\n", ptr->type, hr, ptr->get_hr);
+ ok(hr == ptr->get_hr, "%d: unexpected hr %#lx, expected %#lx.\n", ptr->type, hr, ptr->get_hr);
ok(V_VT(&v) == ptr->get_vt, "%d: got %d, expected %d\n", ptr->type, V_VT(&v), ptr->get_vt);
if (hr == S_OK)
ok(!lstrcmpW(V_BSTR(&v), _bstr_(ptr->put_content)), "%d: got %s\n", ptr->type,
@@ -11764,32 +12468,32 @@ static void test_xmlns_attribute(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_createElement(doc, _bstr_("Testing"), &root);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_appendChild(doc, (IXMLDOMNode*)root, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_createAttribute(doc, _bstr_("xmlns:dt"), &pAttribute);
- ok( hr == S_OK, "returns %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
V_VT(&v) = VT_BSTR;
V_BSTR(&v) = _bstr_("urn:schemas-microsoft-com:datatypes");
hr = IXMLDOMAttribute_put_nodeValue(pAttribute, v);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMElement_setAttributeNode(root, pAttribute, NULL);
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMNode_put_dataType((IXMLDOMNode*)root, _bstr_("bin.base64"));
- ok(hr == S_OK, "ret %08x\n", hr );
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr );
hr = IXMLDOMDocument_get_documentElement(doc, &elem);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
str = NULL;
hr = IXMLDOMElement_get_xml(elem, &str);
- ok( hr == S_OK, "got 0x%08x\n", hr);
- todo_wine ok( lstrcmpW(str, _bstr_("")) == 0,
+ ok( hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ todo_wine ok(lstrcmpW(str, L"") == 0,
"got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
@@ -11833,8 +12537,9 @@ static void test_get_namespaces(void)
IUnknown *unk1, *unk2;
IXMLDOMNode *node;
VARIANT_BOOL b;
+ ULONG fetched;
+ VARIANT v[2];
HRESULT hr;
- VARIANT v;
LONG len;
BSTR s;
@@ -11843,12 +12548,12 @@ static void test_get_namespaces(void)
/* null pointer */
hr = IXMLDOMDocument2_get_namespaces(doc, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
/* no document loaded */
collection = (void*)0xdeadbeef;
hr = IXMLDOMDocument2_get_namespaces(doc, &collection);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if (hr != S_OK)
{
IXMLDOMDocument2_Release(doc);
@@ -11858,106 +12563,128 @@ static void test_get_namespaces(void)
collection2 = (void*)0xdeadbeef;
hr = IXMLDOMDocument2_get_namespaces(doc, &collection2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(collection == collection2, "got %p\n", collection2);
EXPECT_REF(collection, 3);
IXMLDOMSchemaCollection_Release(collection);
len = -1;
hr = IXMLDOMSchemaCollection_get_length(collection, &len);
- EXPECT_HR(hr, S_OK);
- ok(len == 0, "got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(len == 0, "got %ld\n", len);
IXMLDOMSchemaCollection_Release(collection);
/* now with document */
hr = IXMLDOMDocument2_loadXML(doc, _bstr_(namespacesA), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument2_get_namespaces(doc, &collection);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = -1;
hr = IXMLDOMSchemaCollection_get_length(collection, &len);
- EXPECT_HR(hr, S_OK);
- ok(len == 2, "got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(len == 2, "got %ld\n", len);
/* try to lookup some uris */
node = (void*)0xdeadbeef;
hr = IXMLDOMSchemaCollection_get(collection, _bstr_("http://blah.org"), &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(node == NULL, "got %p\n", node);
node = (void*)0xdeadbeef;
hr = IXMLDOMSchemaCollection_get(collection, _bstr_("http://blah1.org"), &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(node == NULL, "got %p\n", node);
/* load schema and try to add it */
doc2 = create_document(&IID_IXMLDOMDocument2);
hr = IXMLDOMDocument2_loadXML(doc2, _bstr_(xsd_schema1_xml), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- V_VT(&v) = VT_DISPATCH;
- V_DISPATCH(&v) = (IDispatch*)doc2;
- hr = IXMLDOMSchemaCollection_add(collection, _bstr_(xsd_schema1_uri), v);
- EXPECT_HR(hr, E_FAIL);
+ V_VT(&v[0]) = VT_DISPATCH;
+ V_DISPATCH(&v[0]) = (IDispatch*)doc2;
+ hr = IXMLDOMSchemaCollection_add(collection, _bstr_(xsd_schema1_uri), v[0]);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMSchemaCollection_get_namespaceURI(collection, 0, &s);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(s, _bstr_("http://blah.org")), "got %s\n", wine_dbgstr_w(s));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(s, L"http://blah.org"), "got %s\n", wine_dbgstr_w(s));
SysFreeString(s);
hr = IXMLDOMSchemaCollection_get_namespaceURI(collection, 1, &s);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(s, _bstr_("http://blahblah.org")), "got %s\n", wine_dbgstr_w(s));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(s, L"http://blahblah.org"), "got %s\n", wine_dbgstr_w(s));
SysFreeString(s);
s = (void*)0xdeadbeef;
hr = IXMLDOMSchemaCollection_get_namespaceURI(collection, 2, &s);
- EXPECT_HR(hr, E_FAIL);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(s == (void*)0xdeadbeef, "got %p\n", s);
/* enumerate */
enumv = (void*)0xdeadbeef;
EXPECT_REF(collection, 2);
hr = IXMLDOMSchemaCollection_get__newEnum(collection, (IUnknown**)&enumv);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(collection, 3);
ok(enumv != NULL, "got %p\n", enumv);
hr = IXMLDOMSchemaCollection_QueryInterface(collection, &IID_IUnknown, (void**)&unk1);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IEnumVARIANT_QueryInterface(enumv, &IID_IUnknown, (void**)&unk2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(unk1 != unk2, "got %p, %p\n", unk1, unk2);
IUnknown_Release(unk1);
IUnknown_Release(unk2);
hr = IXMLDOMSchemaCollection_QueryInterface(collection, &IID_IEnumVARIANT, (void**)&enum2);
- EXPECT_HR(hr, E_NOINTERFACE);
+ ok(hr == E_NOINTERFACE, "Unexpected hr %#lx.\n", hr);
- V_VT(&v) = VT_EMPTY;
- hr = IEnumVARIANT_Next(enumv, 1, &v, NULL);
- EXPECT_HR(hr, S_OK);
- ok(V_VT(&v) == VT_BSTR, "got %d\n", V_VT(&v));
- ok(!lstrcmpW(V_BSTR(&v), _bstr_("http://blah.org")), "got %s\n", wine_dbgstr_w(V_BSTR(&v)));
- VariantClear(&v);
+ V_VT(&v[0]) = VT_EMPTY;
+ hr = IEnumVARIANT_Next(enumv, 1, &v[0], NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&v[0]) == VT_BSTR, "got %d\n", V_VT(&v[0]));
+ ok(!lstrcmpW(V_BSTR(&v[0]), L"http://blah.org"), "got %s\n", wine_dbgstr_w(V_BSTR(&v[0])));
+ VariantClear(&v[0]);
- V_VT(&v) = VT_EMPTY;
- hr = IEnumVARIANT_Next(enumv, 1, &v, NULL);
- EXPECT_HR(hr, S_OK);
- ok(V_VT(&v) == VT_BSTR, "got %d\n", V_VT(&v));
- ok(!lstrcmpW(V_BSTR(&v), _bstr_("http://blahblah.org")), "got %s\n", wine_dbgstr_w(V_BSTR(&v)));
- VariantClear(&v);
+ V_VT(&v[0]) = VT_EMPTY;
+ hr = IEnumVARIANT_Next(enumv, 1, &v[0], &fetched);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(fetched == 1, "got %ld, expected 1\n", fetched);
+ ok(V_VT(&v[0]) == VT_BSTR, "got %d\n", V_VT(&v[0]));
+ ok(!lstrcmpW(V_BSTR(&v[0]), L"http://blahblah.org"), "got %s\n", wine_dbgstr_w(V_BSTR(&v[0])));
+ VariantClear(&v[0]);
- V_VT(&v) = VT_NULL;
- hr = IEnumVARIANT_Next(enumv, 1, &v, NULL);
- EXPECT_HR(hr, S_FALSE);
- ok(V_VT(&v) == VT_EMPTY, "got %d\n", V_VT(&v));
+ V_VT(&v[0]) = VT_NULL;
+ hr = IEnumVARIANT_Next(enumv, 1, &v[0], &fetched);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ ok(fetched == 0, "got %ld, expected 0\n", fetched);
+ ok(V_VT(&v[0]) == VT_EMPTY, "got %d\n", V_VT(&v[0]));
+
+ hr = IEnumVARIANT_Reset(enumv);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ V_VT(&v[1]) = VT_EMPTY;
+ V_VT(&v[0]) = VT_EMPTY;
+ hr = IEnumVARIANT_Next(enumv, 2, v, &fetched);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(fetched == 2, "got %ld, expected 2\n", fetched);
+ ok(V_VT(&v[0]) == VT_BSTR, "got %d\n", V_VT(&v[0]));
+ ok(V_VT(&v[1]) == VT_BSTR, "got %d\n", V_VT(&v[1]));
+ ok(!lstrcmpW(V_BSTR(&v[0]), L"http://blah.org"), "got %s\n", wine_dbgstr_w(V_BSTR(&v[0])));
+ ok(!lstrcmpW(V_BSTR(&v[1]), L"http://blahblah.org"), "got %s\n", wine_dbgstr_w(V_BSTR(&v[1])));
+ VariantClear(&v[1]);
+ VariantClear(&v[0]);
+
+ V_VT(&v[0]) = VT_NULL;
+ hr = IEnumVARIANT_Next(enumv, 1, v, &fetched);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ ok(fetched == 0, "got %ld, expected 0\n", fetched);
+ ok(V_VT(&v[0]) == VT_EMPTY, "got %d\n", V_VT(&v[0]));
IEnumVARIANT_Release(enumv);
IXMLDOMSchemaCollection_Release(collection);
-
IXMLDOMDocument2_Release(doc);
/* now with CLSID_DOMDocument60 */
@@ -11966,12 +12693,12 @@ static void test_get_namespaces(void)
/* null pointer */
hr = IXMLDOMDocument2_get_namespaces(doc, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
/* no document loaded */
collection = (void*)0xdeadbeef;
hr = IXMLDOMDocument2_get_namespaces(doc, &collection);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if (hr != S_OK)
{
IXMLDOMDocument2_Release(doc);
@@ -11981,85 +12708,106 @@ static void test_get_namespaces(void)
collection2 = (void*)0xdeadbeef;
hr = IXMLDOMDocument2_get_namespaces(doc, &collection2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(collection == collection2, "got %p\n", collection2);
EXPECT_REF(collection, 3);
IXMLDOMSchemaCollection_Release(collection);
len = -1;
hr = IXMLDOMSchemaCollection_get_length(collection, &len);
- EXPECT_HR(hr, S_OK);
- ok(len == 0, "got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(len == 0, "got %ld\n", len);
IXMLDOMSchemaCollection_Release(collection);
/* now with document */
hr = IXMLDOMDocument2_loadXML(doc, _bstr_(namespacesA), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument2_get_namespaces(doc, &collection);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = -1;
hr = IXMLDOMSchemaCollection_get_length(collection, &len);
- EXPECT_HR(hr, S_OK);
- ok(len == 2, "got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(len == 2, "got %ld\n", len);
/* try to lookup some uris */
node = (void*)0xdeadbeef;
hr = IXMLDOMSchemaCollection_get(collection, _bstr_("http://blah.org"), &node);
- EXPECT_HR(hr, E_NOTIMPL);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
ok(broken(node == (void*)0xdeadbeef) || (node == NULL), "got %p\n", node);
/* load schema and try to add it */
doc2 = create_document(&IID_IXMLDOMDocument2);
hr = IXMLDOMDocument2_loadXML(doc2, _bstr_(xsd_schema1_xml), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- V_VT(&v) = VT_DISPATCH;
- V_DISPATCH(&v) = (IDispatch*)doc2;
- hr = IXMLDOMSchemaCollection_add(collection, _bstr_(xsd_schema1_uri), v);
- EXPECT_HR(hr, E_FAIL);
+ V_VT(&v[0]) = VT_DISPATCH;
+ V_DISPATCH(&v[0]) = (IDispatch*)doc2;
+ hr = IXMLDOMSchemaCollection_add(collection, _bstr_(xsd_schema1_uri), v[0]);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
IXMLDOMDocument2_Release(doc2);
hr = IXMLDOMSchemaCollection_get_namespaceURI(collection, 0, &s);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(s, _bstr_("http://blah.org")), "got %s\n", wine_dbgstr_w(s));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(s, L"http://blah.org"), "got %s\n", wine_dbgstr_w(s));
SysFreeString(s);
hr = IXMLDOMSchemaCollection_get_namespaceURI(collection, 1, &s);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(s, _bstr_("http://blahblah.org")), "got %s\n", wine_dbgstr_w(s));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(s, L"http://blahblah.org"), "got %s\n", wine_dbgstr_w(s));
SysFreeString(s);
s = (void*)0xdeadbeef;
hr = IXMLDOMSchemaCollection_get_namespaceURI(collection, 2, &s);
- EXPECT_HR(hr, E_FAIL);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(broken(s == (void*)0xdeadbeef) || (s == NULL), "got %p\n", s);
/* enumerate */
enumv = (void*)0xdeadbeef;
hr = IXMLDOMSchemaCollection_get__newEnum(collection, (IUnknown**)&enumv);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(enumv != NULL, "got %p\n", enumv);
- V_VT(&v) = VT_EMPTY;
- hr = IEnumVARIANT_Next(enumv, 1, &v, NULL);
- EXPECT_HR(hr, S_OK);
- ok(V_VT(&v) == VT_BSTR, "got %d\n", V_VT(&v));
- ok(!lstrcmpW(V_BSTR(&v), _bstr_("http://blah.org")), "got %s\n", wine_dbgstr_w(V_BSTR(&v)));
- VariantClear(&v);
+ V_VT(&v[0]) = VT_EMPTY;
+ hr = IEnumVARIANT_Next(enumv, 1, &v[0], NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&v[0]) == VT_BSTR, "got %d\n", V_VT(&v[0]));
+ ok(!lstrcmpW(V_BSTR(&v[0]), L"http://blah.org"), "got %s\n", wine_dbgstr_w(V_BSTR(&v[0])));
+ VariantClear(&v[0]);
- V_VT(&v) = VT_EMPTY;
- hr = IEnumVARIANT_Next(enumv, 1, &v, NULL);
- EXPECT_HR(hr, S_OK);
- ok(V_VT(&v) == VT_BSTR, "got %d\n", V_VT(&v));
- ok(!lstrcmpW(V_BSTR(&v), _bstr_("http://blahblah.org")), "got %s\n", wine_dbgstr_w(V_BSTR(&v)));
- VariantClear(&v);
+ V_VT(&v[0]) = VT_EMPTY;
+ hr = IEnumVARIANT_Next(enumv, 1, &v[0], NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&v[0]) == VT_BSTR, "got %d\n", V_VT(&v[0]));
+ ok(!lstrcmpW(V_BSTR(&v[0]), L"http://blahblah.org"), "got %s\n", wine_dbgstr_w(V_BSTR(&v[0])));
+ VariantClear(&v[0]);
- V_VT(&v) = VT_NULL;
- hr = IEnumVARIANT_Next(enumv, 1, &v, NULL);
- EXPECT_HR(hr, S_FALSE);
- ok(V_VT(&v) == VT_EMPTY, "got %d\n", V_VT(&v));
+ V_VT(&v[0]) = VT_NULL;
+ hr = IEnumVARIANT_Next(enumv, 1, &v[0], NULL);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&v[0]) == VT_EMPTY, "got %d\n", V_VT(&v[0]));
+
+ hr = IEnumVARIANT_Reset(enumv);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ V_VT(&v[1]) = VT_EMPTY;
+ V_VT(&v[0]) = VT_EMPTY;
+ hr = IEnumVARIANT_Next(enumv, 2, v, &fetched);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(fetched == 2, "got %ld, expected 2\n", fetched);
+ ok(V_VT(&v[0]) == VT_BSTR, "got %d\n", V_VT(&v[0]));
+ ok(V_VT(&v[1]) == VT_BSTR, "got %d\n", V_VT(&v[1]));
+ ok(!lstrcmpW(V_BSTR(&v[0]), L"http://blah.org"), "got %s\n", wine_dbgstr_w(V_BSTR(&v[0])));
+ ok(!lstrcmpW(V_BSTR(&v[1]), L"http://blahblah.org"), "got %s\n", wine_dbgstr_w(V_BSTR(&v[0])));
+ VariantClear(&v[1]);
+ VariantClear(&v[0]);
+
+ V_VT(&v[0]) = VT_NULL;
+ hr = IEnumVARIANT_Next(enumv, 1, v, &fetched);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ ok(fetched == 0, "got %ld, expected 0\n", fetched);
+ ok(V_VT(&v[0]) == VT_EMPTY, "got %d\n", V_VT(&v[0]));
IEnumVARIANT_Release(enumv);
IXMLDOMSchemaCollection_Release(collection);
@@ -12077,7 +12825,6 @@ static const DOMNodeType put_data_types[] = {
static void test_put_data(void)
{
- static const WCHAR test_data[] = {'t','e','s','t',' ','n','o','d','e',' ','d','a','t','a',0};
WCHAR buff[100], *data;
IXMLDOMDocument *doc;
const DOMNodeType *type;
@@ -12089,7 +12836,7 @@ static void test_put_data(void)
doc = create_document(&IID_IXMLDOMDocument);
- memcpy(&buff[2], test_data, sizeof(test_data));
+ memcpy(&buff[2], L"test node data", 15 * sizeof(WCHAR));
/* just a big length */
*(DWORD*)buff = 0xf0f0;
data = &buff[2];
@@ -12101,7 +12848,7 @@ static void test_put_data(void)
V_I2(&v) = *type;
hr = IXMLDOMDocument_createNode(doc, v, _bstr_("name"), NULL, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* put_data() is interface-specific */
switch (*type)
@@ -12109,12 +12856,12 @@ static void test_put_data(void)
case NODE_TEXT:
{
hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMText, (void**)&text);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMText_put_data(text, data);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMText_get_data(text, &get_data);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMText_Release(text);
break;
@@ -12124,12 +12871,12 @@ static void test_put_data(void)
IXMLDOMCDATASection *cdata;
hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMCDATASection, (void**)&cdata);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMCDATASection_put_data(cdata, data);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMCDATASection_get_data(cdata, &get_data);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMCDATASection_Release(cdata);
break;
@@ -12139,12 +12886,12 @@ static void test_put_data(void)
IXMLDOMProcessingInstruction *pi;
hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMProcessingInstruction, (void**)&pi);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMProcessingInstruction_put_data(pi, data);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMProcessingInstruction_get_data(pi, &get_data);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMProcessingInstruction_Release(pi);
break;
@@ -12154,12 +12901,12 @@ static void test_put_data(void)
IXMLDOMComment *comment;
hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMComment, (void**)&comment);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMComment_put_data(comment, data);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMComment_get_data(comment, &get_data);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMComment_Release(comment);
break;
@@ -12206,64 +12953,64 @@ static void test_newline_normalization(void)
}
hr = CoCreateInstance(table->clsid, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument, (void**)&doc);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_createNode(doc, v, _bstr_("name"), NULL, &node);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMText, (void**)&text);
/* \r\n is normalized to \n and back to \r\n */
hr = IXMLDOMText_put_data(text, _bstr_("\r\n"));
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMText_get_data(text, &s);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(s, _bstr_("\n")), "got %s\n", wine_dbgstr_w(s));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(s, L"\n"), "got %s\n", wine_dbgstr_w(s));
SysFreeString(s);
hr = IXMLDOMText_get_length(text, &length);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(length == 1, "got %d, expected 1\n", length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 1, "got %ld, expected 1\n", length);
hr = IXMLDOMText_get_xml(text, &s);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(s, _bstr_("\r\n")), "got %s\n", wine_dbgstr_w(s));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(s, L"\r\n"), "got %s\n", wine_dbgstr_w(s));
SysFreeString(s);
/* \r\r\n is normalized to \n\n and back to \r\n\r\n */
hr = IXMLDOMText_put_data(text, _bstr_("\r\r\n"));
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMText_get_data(text, &s);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(s, _bstr_("\n\n")), "got %s\n", wine_dbgstr_w(s));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(s, L"\n\n"), "got %s\n", wine_dbgstr_w(s));
SysFreeString(s);
hr = IXMLDOMText_get_length(text, &length);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(length == 2, "got %d, expected 2\n", length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 2, "got %ld, expected 2\n", length);
hr = IXMLDOMText_get_xml(text, &s);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(s, _bstr_("\r\n\r\n")), "got %s\n", wine_dbgstr_w(s));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(s, L"\r\n\r\n"), "got %s\n", wine_dbgstr_w(s));
SysFreeString(s);
/* the same normalizations are applied when loading a document as a whole */
hr = IXMLDOMDocument_loadXML(doc, _bstr_("foo\n\r\n\r\r\nbar"), &b);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_get_text(doc, &s);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(s, _bstr_("foo\n\n\n\nbar")), "got %s\n", wine_dbgstr_w(s));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(s, L"foo\n\n\n\nbar"), "got %s\n", wine_dbgstr_w(s));
SysFreeString(s);
hr = IXMLDOMDocument_get_xml(doc, &s);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(s, _bstr_("\r\nfoo\r\n\r\n\r\n\r\nbar\r\n")),
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(s, L"\r\nfoo\r\n\r\n\r\n\r\nbar\r\n"),
"got %s\n", wine_dbgstr_w(s));
SysFreeString(s);
@@ -12271,15 +13018,15 @@ static void test_newline_normalization(void)
hr = IXMLDOMDocument_loadXML(doc, _bstr_(""
"foo\n\r\n\r\r\nbar"), &b);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_get_text(doc, &s);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(s, _bstr_("foo\n\n\n\nbar")), "got %s\n", wine_dbgstr_w(s));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(s, L"foo\n\n\n\nbar"), "got %s\n", wine_dbgstr_w(s));
SysFreeString(s);
hr = IXMLDOMDocument_get_xml(doc, &s);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!lstrcmpW(s, _bstr_("\r\n"
"foo\r\n\r\n\r\n\r\nbar\r\n")),
"got %s\n", wine_dbgstr_w(s));
@@ -12288,28 +13035,28 @@ static void test_newline_normalization(void)
/* or preserveWhiteSpace is set */
hr = IXMLDOMDocument_put_preserveWhiteSpace(doc, VARIANT_TRUE);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_loadXML(doc, _bstr_("foo\n\r\n\r\r\nbar"), &b);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_get_text(doc, &s);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(s, _bstr_("foo\n\n\n\nbar")), "got %s\n", wine_dbgstr_w(s));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(s, L"foo\n\n\n\nbar"), "got %s\n", wine_dbgstr_w(s));
SysFreeString(s);
hr = IXMLDOMDocument_get_xml(doc, &s);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if (IsEqualGUID(table->clsid, &CLSID_DOMDocument60))
{
/* DOMDocument60 does the newline normalization but does not insert line breaks around the root node */
-todo_wine
- ok(!lstrcmpW(s, _bstr_("foo\r\n\r\n\r\n\r\nbar")),
+ todo_wine
+ ok(!lstrcmpW(s, L"foo\r\n\r\n\r\n\r\nbar"),
"got %s\n", wine_dbgstr_w(s));
}
else
{
- ok(!lstrcmpW(s, _bstr_("\r\nfoo\r\n\r\n\r\n\r\nbar\r\n")),
+ ok(!lstrcmpW(s, L"\r\nfoo\r\n\r\n\r\n\r\nbar\r\n"),
"got %s\n", wine_dbgstr_w(s));
}
SysFreeString(s);
@@ -12339,33 +13086,33 @@ static void test_putref_schemas(void)
V_VT(&schema) = VT_DISPATCH;
V_DISPATCH(&schema) = NULL;
hr = IXMLDOMDocument2_putref_schemas(doc, schema);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&schema) = VT_UNKNOWN;
V_UNKNOWN(&schema) = NULL;
hr = IXMLDOMDocument2_putref_schemas(doc, schema);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* set as VT_DISPATCH, reset with it */
V_VT(&schema) = VT_DISPATCH;
V_DISPATCH(&schema) = (IDispatch*)cache;
hr = IXMLDOMDocument2_putref_schemas(doc, schema);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_DISPATCH(&schema) = NULL;
hr = IXMLDOMDocument2_get_schemas(doc, &schema);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_DISPATCH(&schema) == (IDispatch*)cache, "got %p\n", V_DISPATCH(&schema));
V_VT(&schema) = VT_DISPATCH;
V_DISPATCH(&schema) = NULL;
hr = IXMLDOMDocument2_putref_schemas(doc, schema);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_DISPATCH(&schema) = (IDispatch*)0xdeadbeef;
V_VT(&schema) = VT_I2;
hr = IXMLDOMDocument2_get_schemas(doc, &schema);
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(V_DISPATCH(&schema) == NULL, "got %p\n", V_DISPATCH(&schema));
ok(V_VT(&schema) == VT_NULL, "got %d\n", V_VT(&schema));
@@ -12373,22 +13120,22 @@ static void test_putref_schemas(void)
V_VT(&schema) = VT_UNKNOWN;
V_UNKNOWN(&schema) = (IUnknown*)cache;
hr = IXMLDOMDocument2_putref_schemas(doc, schema);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_DISPATCH(&schema) = NULL;
hr = IXMLDOMDocument2_get_schemas(doc, &schema);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_DISPATCH(&schema) == (IDispatch*)cache, "got %p\n", V_DISPATCH(&schema));
V_VT(&schema) = VT_UNKNOWN;
V_UNKNOWN(&schema) = NULL;
hr = IXMLDOMDocument2_putref_schemas(doc, schema);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_DISPATCH(&schema) = (IDispatch*)0xdeadbeef;
V_VT(&schema) = VT_I2;
hr = IXMLDOMDocument2_get_schemas(doc, &schema);
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(V_DISPATCH(&schema) == NULL, "got %p\n", V_DISPATCH(&schema));
ok(V_VT(&schema) == VT_NULL, "got %d\n", V_VT(&schema));
@@ -12405,40 +13152,41 @@ static void test_namedmap_newenum(void)
IXMLDOMElement *elem;
IXMLDOMNode *node;
VARIANT_BOOL b;
+ ULONG fetched;
+ VARIANT v[3];
HRESULT hr;
- VARIANT v;
BSTR str;
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_loadXML(doc, _bstr_(attributes_map), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_get_documentElement(doc, &elem);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_get_attributes(elem, &map);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMElement_Release(elem);
enum1 = NULL;
EXPECT_REF(map, 1);
hr = IXMLDOMNamedNodeMap_QueryInterface(map, &IID_IEnumVARIANT, (void**)&enum1);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(enum1 != NULL, "got %p\n", enum1);
EXPECT_REF(map, 1);
EXPECT_REF(enum1, 2);
enum2 = NULL;
hr = IXMLDOMNamedNodeMap_QueryInterface(map, &IID_IEnumVARIANT, (void**)&enum2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(enum2 == enum1, "got %p\n", enum2);
IEnumVARIANT_Release(enum2);
EXPECT_REF(map, 1);
hr = IXMLDOMNamedNodeMap__newEnum(map, (IUnknown**)&enum2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(map, 2);
EXPECT_REF(enum2, 1);
ok(enum2 != enum1, "got %p, %p\n", enum2, enum1);
@@ -12447,9 +13195,9 @@ static void test_namedmap_newenum(void)
/* enumerator created with _newEnum() doesn't share IUnknown* with main object */
hr = IXMLDOMNamedNodeMap_QueryInterface(map, &IID_IUnknown, (void**)&unk1);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IEnumVARIANT_QueryInterface(enum2, &IID_IUnknown, (void**)&unk2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(map, 3);
EXPECT_REF(enum2, 2);
ok(unk1 != unk2, "got %p, %p\n", unk1, unk2);
@@ -12457,49 +13205,102 @@ static void test_namedmap_newenum(void)
IUnknown_Release(unk2);
hr = IXMLDOMNamedNodeMap__newEnum(map, (IUnknown**)&enum3);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(enum2 != enum3, "got %p, %p\n", enum2, enum3);
IEnumVARIANT_Release(enum3);
/* iteration tests */
hr = IXMLDOMNamedNodeMap_get_item(map, 0, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_nodeName(node, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("attr1")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"attr1"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
IXMLDOMNode_Release(node);
hr = IXMLDOMNamedNodeMap_nextNode(map, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_nodeName(node, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("attr1")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"attr1"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
IXMLDOMNode_Release(node);
- V_VT(&v) = VT_EMPTY;
- hr = IEnumVARIANT_Next(enum2, 1, &v, NULL);
- EXPECT_HR(hr, S_OK);
- ok(V_VT(&v) == VT_DISPATCH, "got var type %d\n", V_VT(&v));
- hr = IDispatch_QueryInterface(V_DISPATCH(&v), &IID_IXMLDOMNode, (void**)&node);
- EXPECT_HR(hr, S_OK);
+ V_VT(&v[0]) = VT_EMPTY;
+ hr = IEnumVARIANT_Next(enum2, 1, &v[0], NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&v[0]) == VT_DISPATCH, "got var type %d\n", V_VT(&v[0]));
+ hr = IDispatch_QueryInterface(V_DISPATCH(&v[0]), &IID_IXMLDOMNode, (void**)&node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_nodeName(node, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("attr1")), "got node name %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"attr1"), "got node name %s\n", wine_dbgstr_w(str));
SysFreeString(str);
IXMLDOMNode_Release(node);
- VariantClear(&v);
+ VariantClear(&v[0]);
hr = IXMLDOMNamedNodeMap_nextNode(map, &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_nodeName(node, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("attr2")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"attr2"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
IXMLDOMNode_Release(node);
+ hr = IEnumVARIANT_Reset(enum2);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ V_VT(&v[1]) = VT_EMPTY;
+ V_VT(&v[0]) = VT_EMPTY;
+ hr = IEnumVARIANT_Next(enum2, 2, v, &fetched);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(fetched == 2, "got %ld, expected 2\n", fetched);
+ ok(V_VT(&v[0]) == VT_DISPATCH, "got var type %d\n", V_VT(&v[0]));
+ ok(V_VT(&v[1]) == VT_DISPATCH, "got var type %d\n", V_VT(&v[1]));
+ hr = IDispatch_QueryInterface(V_DISPATCH(&v[0]), &IID_IXMLDOMNode, (void**)&node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNode_get_nodeName(node, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"attr1"), "got node name %s\n", wine_dbgstr_w(str));
+ SysFreeString(str);
+ IXMLDOMNode_Release(node);
+ hr = IDispatch_QueryInterface(V_DISPATCH(&v[1]), &IID_IXMLDOMNode, (void**)&node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNode_get_nodeName(node, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"attr2"), "got node name %s\n", wine_dbgstr_w(str));
+ SysFreeString(str);
+ IXMLDOMNode_Release(node);
+ VariantClear(&v[1]);
+ VariantClear(&v[0]);
+
+ V_VT(&v[2]) = VT_NULL;
+ V_VT(&v[1]) = VT_EMPTY;
+ V_VT(&v[0]) = VT_EMPTY;
+ hr = IEnumVARIANT_Next(enum2, 3, v, &fetched);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ ok(fetched == 2, "got %ld, expected 2\n", fetched);
+ ok(V_VT(&v[0]) == VT_DISPATCH, "got var type %d\n", V_VT(&v[0]));
+ ok(V_VT(&v[1]) == VT_DISPATCH, "got var type %d\n", V_VT(&v[1]));
+ ok(V_VT(&v[2]) == VT_EMPTY, "got var type %d\n", V_VT(&v[2]));
+ hr = IDispatch_QueryInterface(V_DISPATCH(&v[0]), &IID_IXMLDOMNode, (void**)&node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNode_get_nodeName(node, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"attr3"), "got node name %s\n", wine_dbgstr_w(str));
+ SysFreeString(str);
+ IXMLDOMNode_Release(node);
+ hr = IDispatch_QueryInterface(V_DISPATCH(&v[1]), &IID_IXMLDOMNode, (void**)&node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMNode_get_nodeName(node, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"attr4"), "got node name %s\n", wine_dbgstr_w(str));
+ SysFreeString(str);
+ IXMLDOMNode_Release(node);
+ VariantClear(&v[1]);
+ VariantClear(&v[0]);
IEnumVARIANT_Release(enum2);
+
IXMLDOMNamedNodeMap_Release(map);
IXMLDOMDocument_Release(doc);
}
@@ -12548,25 +13349,25 @@ static void test_xsltext(void)
doc2 = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_loadXML(doc, _bstr_(xsltext_xsl), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_loadXML(doc2, _bstr_(""), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_transformNode(doc2, (IXMLDOMNode*)doc, &ret);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(ret, _bstr_("testdata")), "transform result %s\n", wine_dbgstr_w(ret));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(ret, L"testdata"), "transform result %s\n", wine_dbgstr_w(ret));
SysFreeString(ret);
/* omit-xml-declaration */
hr = IXMLDOMDocument_loadXML(doc, _bstr_(omitxmldecl_xsl), &b);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_loadXML(doc2, _bstr_(omitxmldecl_doc), &b);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_transformNode(doc2, (IXMLDOMNode*)doc, &ret);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(ret, _bstr_("item1item2")), "transform result %s\n", wine_dbgstr_w(ret));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(ret, L"item1item2"), "transform result %s\n", wine_dbgstr_w(ret));
SysFreeString(ret);
IXMLDOMDocument_Release(doc2);
@@ -12592,6 +13393,7 @@ static struct attrtest_t attrtests[] = {
{ 0 }
};
+/* see dlls/msxml[46]/tests/domdoc.c */
static void test_create_attribute(void)
{
struct attrtest_t *ptr = attrtests;
@@ -12610,25 +13412,25 @@ static void test_create_attribute(void)
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_ATTRIBUTE;
hr = IXMLDOMDocument_createNode(doc, var, _bstr_(ptr->name), _bstr_(ptr->uri), &node);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
str = NULL;
hr = IXMLDOMNode_get_prefix(node, &str);
if (ptr->prefix)
{
- ok(hr == S_OK, "%d: got 0x%08x\n", i, hr);
+ ok(hr == S_OK, "%d: unexpected hr %#lx\n", i, hr);
ok(!lstrcmpW(str, _bstr_(ptr->prefix)), "%d: got prefix %s, expected %s\n", i, wine_dbgstr_w(str), ptr->prefix);
}
else
{
- ok(hr == S_FALSE, "%d: got 0x%08x\n", i, hr);
+ ok(hr == S_FALSE, "%d: unexpected hr %#lx\n", i, hr);
ok(str == NULL, "%d: got prefix %s\n", i, wine_dbgstr_w(str));
}
SysFreeString(str);
str = NULL;
hr = IXMLDOMNode_get_namespaceURI(node, &str);
- ok(hr == S_OK, "%d: got 0x%08x\n", i, hr);
+ ok(hr == S_OK, "%d: unexpected hr %#lx\n", i, hr);
ok(!lstrcmpW(str, _bstr_(ptr->href)), "%d: got uri %s, expected %s\n", i, wine_dbgstr_w(str), ptr->href);
SysFreeString(str);
@@ -12642,24 +13444,24 @@ static void test_create_attribute(void)
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_ELEMENT;
hr = IXMLDOMDocument_createNode(doc, var, _bstr_("e"), NULL, &node2);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_QueryInterface(node2, &IID_IXMLDOMElement, (void**)&el);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IXMLDOMNode_Release(node2);
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_ATTRIBUTE;
hr = IXMLDOMDocument_createNode(doc, var, _bstr_("xmlns:a"), _bstr_("http://www.w3.org/2000/xmlns/"), &node);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMElement_setAttributeNode(el, (IXMLDOMAttribute*)node, NULL);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* for some reason default namespace uri is not reported */
hr = IXMLDOMNode_get_namespaceURI(node, &str);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(str, _bstr_("")), "got uri %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L""), "got uri %s\n", wine_dbgstr_w(str));
SysFreeString(str);
IXMLDOMNode_Release(node);
@@ -12677,11 +13479,11 @@ static void test_url(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_get_url(doc, NULL);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
s = (void *)0xdeadbeef;
hr = IXMLDOMDocument_get_url(doc, &s);
- ok(hr == S_FALSE, "got 0x%08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(s == NULL, "got %s\n", wine_dbgstr_w(s));
IXMLDOMDocument_Release(doc);
@@ -12702,22 +13504,22 @@ static void test_merging_text(void)
doc = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_createElement(doc, _bstr_("Testing"), &root);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMDocument_appendChild(doc, (IXMLDOMNode*)root, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* test xmlAddChild */
for (i = 0; i < 10; i++)
{
- str = SysAllocString(szstr1);
+ str = SysAllocString(L"str1");
hr = IXMLDOMDocument_createTextNode(doc, str, &nodetext);
SysFreeString(str);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
newtext = NULL;
hr = IXMLDOMElement_appendChild(root, (IXMLDOMNode*)nodetext, (IXMLDOMNode**)&newtext);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(nodetext == newtext, "expected %p, got %p\n", nodetext, newtext);
IXMLDOMText_Release(newtext);
@@ -12726,19 +13528,19 @@ static void test_merging_text(void)
/* test xmlAddPrevSibling */
hr = IXMLDOMElement_get_firstChild(root, &first);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&v) = VT_UNKNOWN;
V_UNKNOWN(&v) = (IUnknown*)first;
for (i = 0; i < 10; i++)
{
- str = SysAllocString(szstr2);
+ str = SysAllocString(L"str2");
hr = IXMLDOMDocument_createTextNode(doc, str, &nodetext);
SysFreeString(str);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
newtext = NULL;
hr = IXMLDOMElement_insertBefore(root, (IXMLDOMNode*)nodetext, v, (IXMLDOMNode**)&newtext);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(nodetext == newtext, "expected %p, got %p\n", nodetext, newtext);
IXMLDOMText_Release(newtext);
@@ -12759,9 +13561,9 @@ static HRESULT WINAPI transformdest_QueryInterface(IUnknown *iface, REFIID riid,
IsEqualIID(riid, &IID_IServiceProvider) ||
IsEqualIID(riid, &IID_IStream) ||
IsEqualIID(riid, &IID_ISequentialStream) ||
- IsEqualIID(riid, &IID_IRequestDictionary);
+ IsEqualIID(riid, &IID_IResponse);
-todo_wine_if(IsEqualIID(riid, &IID_IXMLDOMDocument))
+ todo_wine_if(IsEqualIID(riid, &IID_IXMLDOMDocument))
ok(known_iid, "Unexpected riid %s\n", wine_dbgstr_guid(riid));
return E_NOINTERFACE;
@@ -12788,7 +13590,12 @@ static void test_transformNodeToObject(void)
{
IUnknown transformdest = { &transformdestvtbl };
IXMLDOMDocument *doc, *doc2, *doc3;
+ ISequentialStream *sstream;
+ LARGE_INTEGER off;
+ WCHAR buffer[256];
+ IStream *istream;
VARIANT_BOOL b;
+ ULONG nread;
HRESULT hr;
VARIANT v;
@@ -12797,29 +13604,74 @@ static void test_transformNodeToObject(void)
doc3 = create_document(&IID_IXMLDOMDocument);
hr = IXMLDOMDocument_loadXML(doc, _bstr_(szTransformXML), &b);
- ok(hr == S_OK, "Failed to load document, hr %#x.\n", hr);
+ ok(hr == S_OK, "Failed to load document, hr %#lx.\n", hr);
hr = IXMLDOMDocument_loadXML(doc2, _bstr_(szTransformSSXML), &b);
- ok(hr == S_OK, "Failed to load document, hr %#x.\n", hr);
+ ok(hr == S_OK, "Failed to load document, hr %#lx.\n", hr);
V_VT(&v) = VT_UNKNOWN;
V_UNKNOWN(&v) = &transformdest;
hr = IXMLDOMDocument_transformNodeToObject(doc, (IXMLDOMNode *)doc2, v);
- ok(hr == E_INVALIDARG, "Failed to transform node, hr %#x.\n", hr);
+ ok(hr == E_INVALIDARG, "Failed to transform node, hr %#lx.\n", hr);
V_VT(&v) = VT_UNKNOWN;
V_UNKNOWN(&v) = NULL;
hr = IXMLDOMDocument_transformNodeToObject(doc, (IXMLDOMNode *)doc2, v);
- ok(hr == E_INVALIDARG, "Failed to transform node, hr %#x.\n", hr);
+ ok(hr == E_INVALIDARG, "Failed to transform node, hr %#lx.\n", hr);
V_VT(&v) = VT_DISPATCH;
V_DISPATCH(&v) = NULL;
hr = IXMLDOMDocument_transformNodeToObject(doc, (IXMLDOMNode *)doc2, v);
- ok(hr == E_INVALIDARG, "Failed to transform node, hr %#x.\n", hr);
+ ok(hr == E_INVALIDARG, "Failed to transform node, hr %#lx.\n", hr);
V_VT(&v) = VT_DISPATCH;
V_DISPATCH(&v) = (IDispatch *)doc3;
hr = IXMLDOMDocument_transformNodeToObject(doc, (IXMLDOMNode *)doc2, v);
- ok(hr == S_OK, "Failed to transform node, hr %#x.\n", hr);
+ ok(hr == S_OK, "Failed to transform node, hr %#lx.\n", hr);
+
+ /* IStream */
+ istream = SHCreateMemStream(NULL, 0);
+ V_VT(&v) = VT_UNKNOWN;
+ V_UNKNOWN(&v) = (IUnknown *)istream;
+ hr = IXMLDOMDocument_transformNodeToObject(doc, (IXMLDOMNode *)doc2, v);
+ ok(hr == S_OK, "Failed to transform node, hr %#lx.\n", hr);
+
+ off.QuadPart = 0;
+ hr = IStream_Seek(istream, off, STREAM_SEEK_SET, NULL);
+ ok(hr == S_OK, "Failed to seek, hr %#lx.\n", hr);
+
+ nread = 0;
+ memset(buffer, 0xcc, sizeof(buffer));
+ hr = IStream_Read(istream, buffer, sizeof(buffer), &nread);
+ ok(hr == S_OK, "Failed to read, hr %#lx.\n", hr);
+ buffer[nread/2] = 0;
+ ok(buffer[0] == 0xfeff, "got %x\n", buffer[0]);
+ ok(compareIgnoreReturns(&buffer[1], _bstr_(szTransformOutput)), "got output %s\n", wine_dbgstr_w(buffer));
+ IStream_Release(istream);
+
+ /* ISequentialStream */
+ istream = SHCreateMemStream(NULL, 0);
+ sstream = NULL;
+ hr = IStream_QueryInterface(istream, &IID_ISequentialStream, (void**)&sstream);
+ ok(hr == S_OK, "Failed to QI, hr %#lx.\n", hr);
+
+ V_VT(&v) = VT_UNKNOWN;
+ V_UNKNOWN(&v) = (IUnknown *)sstream;
+ hr = IXMLDOMDocument_transformNodeToObject(doc, (IXMLDOMNode *)doc2, v);
+ ok(hr == S_OK, "Failed to transform node, hr %#lx.\n", hr);
+
+ off.QuadPart = 0;
+ hr = IStream_Seek(istream, off, STREAM_SEEK_SET, NULL);
+ ok(hr == S_OK, "Failed to seek, hr %#lx.\n", hr);
+
+ nread = 0;
+ memset(buffer, 0xcc, sizeof(buffer));
+ hr = ISequentialStream_Read(sstream, buffer, sizeof(buffer), &nread);
+ ok(hr == S_OK, "Failed to read, hr %#lx.\n", hr);
+ buffer[nread/2] = 0;
+ ok(buffer[0] == 0xfeff, "got %x\n", buffer[0]);
+ ok(compareIgnoreReturns(&buffer[1], _bstr_(szTransformOutput)), "got output %s\n", wine_dbgstr_w(buffer));
+ ISequentialStream_Release(sstream);
+ IStream_Release(istream);
IXMLDOMDocument_Release(doc3);
IXMLDOMDocument_Release(doc2);
@@ -12845,42 +13697,76 @@ static void test_normalize_attribute_values(void)
V_I2(&var) = 10;
hr = IXMLDOMDocument2_getProperty(doc, _bstr_("NormalizeAttributeValues"), &var);
todo_wine {
- ok(hr == S_OK, "Failed to get property value, hr %#x.\n", hr);
+ ok(hr == S_OK, "Failed to get property value, hr %#lx.\n", hr);
ok(V_VT(&var) == VT_BOOL, "Unexpected property value type, vt %d.\n", V_VT(&var));
ok(V_BOOL(&var) == VARIANT_FALSE, "Unexpected property value.\n");
}
V_VT(&var) = VT_BOOL;
V_BOOL(&var) = VARIANT_TRUE;
hr = IXMLDOMDocument2_setProperty(doc, _bstr_("NormalizeAttributeValues"), var);
- ok(hr == S_OK, "Failed to set property, hr %#x.\n", hr);
+ ok(hr == S_OK, "Failed to set property, hr %#lx.\n", hr);
V_VT(&var) = VT_I2;
V_I2(&var) = 10;
hr = IXMLDOMDocument2_getProperty(doc, _bstr_("NormalizeAttributeValues"), &var);
todo_wine {
- ok(hr == S_OK, "Failed to get property value, hr %#x.\n", hr);
+ ok(hr == S_OK, "Failed to get property value, hr %#lx.\n", hr);
ok(V_VT(&var) == VT_BOOL, "Unexpected property value type, vt %d.\n", V_VT(&var));
ok(V_BOOL(&var) == VARIANT_TRUE, "Unexpected property value.\n");
}
IXMLDOMDocument2_Release(doc);
}
+static void test_max_element_depth_values(void)
+{
+ IXMLDOMDocument2 *doc;
+ VARIANT var;
+ HRESULT hr;
+
+ doc = create_document_version(60, &IID_IXMLDOMDocument2);
+
+ /* The default max element depth value should be 256. */
+ V_VT(&var) = VT_UI4;
+ V_UI4(&var) = 0xdeadbeef;
+ hr = IXMLDOMDocument2_getProperty(doc, _bstr_("MaxElementDepth"), &var);
+todo_wine {
+ ok(hr == S_OK, "Failed to get property value, hr %#lx.\n", hr);
+ ok(V_VT(&var) == VT_I4, "Unexpected property value type, vt %d.\n", V_VT(&var));
+ ok(V_I4(&var) == 256, "Unexpected property value.\n");
+}
+
+ /* Changes to the depth value should be observable when subsequently retrieved. */
+ V_VT(&var) = VT_I4;
+ V_I4(&var) = 32;
+ hr = IXMLDOMDocument2_setProperty(doc, _bstr_("MaxElementDepth"), var);
+ ok(hr == S_OK, "Failed to set property, hr %#lx.\n", hr);
+
+ V_VT(&var) = VT_UI4;
+ V_UI4(&var) = 0xdeadbeef;
+ hr = IXMLDOMDocument2_getProperty(doc, _bstr_("MaxElementDepth"), &var);
+todo_wine {
+ ok(hr == S_OK, "Failed to get property value, hr %#lx.\n", hr);
+ ok(V_VT(&var) == VT_I4, "Unexpected property value type, vt %d.\n", V_VT(&var));
+ ok(V_I4(&var) == 32, "Unexpected property value.\n");
+}
+
+ IXMLDOMDocument2_Release(doc);
+}
+
typedef struct _namespace_as_attribute_t {
const GUID *guid;
const char *clsid;
- const char *xmlns_uri;
} namespace_as_attribute_t;
static const namespace_as_attribute_t namespace_as_attribute_test_data[] = {
- { &CLSID_DOMDocument, "CLSID_DOMDocument", "" },
- { &CLSID_DOMDocument2, "CLSID_DOMDocument2", "" },
- { &CLSID_DOMDocument26, "CLSID_DOMDocument26", "" },
- { &CLSID_DOMDocument30, "CLSID_DOMDocument30", "" },
- { &CLSID_DOMDocument40, "CLSID_DOMDocument40", "" },
- { &CLSID_DOMDocument60, "CLSID_DOMDocument60", "http://www.w3.org/2000/xmlns/" },
+ { &CLSID_DOMDocument, "CLSID_DOMDocument" },
+ { &CLSID_DOMDocument2, "CLSID_DOMDocument2" },
+ { &CLSID_DOMDocument26, "CLSID_DOMDocument26" },
+ { &CLSID_DOMDocument30, "CLSID_DOMDocument30" },
{ 0 }
};
+/* see dlls/msxml[46]/tests/domdoc.c */
static void test_namespaces_as_attributes(void)
{
const namespace_as_attribute_t *entry = namespace_as_attribute_test_data;
@@ -12892,6 +13778,7 @@ static void test_namespaces_as_attributes(void)
const char *basenames[3];
const char *uris[3];
const char *texts[3];
+ const char *xmls[3];
};
static const struct test tests[] = {
{
@@ -12901,6 +13788,7 @@ static void test_namespaces_as_attributes(void)
{ "b", "d", "ns" }, /* baseName */
{ "nshref", NULL, "" }, /* namespaceURI */
{ "b attr", "d attr", "nshref" }, /* text */
+ { "ns:b=\"b attr\"", "d=\"d attr\"", "xmlns:ns=\"nshref\"" }, /* xml */
},
/* property only */
{
@@ -12910,6 +13798,7 @@ static void test_namespaces_as_attributes(void)
{ "d" }, /* baseName */
{ NULL }, /* namespaceURI */
{ "d attr" }, /* text */
+ { "d=\"d attr\"" }, /* xml */
},
/* namespace only */
{
@@ -12919,6 +13808,17 @@ static void test_namespaces_as_attributes(void)
{ "ns" }, /* baseName */
{ "" }, /* namespaceURI */
{ "nshref" }, /* text */
+ { "xmlns:ns=\"nshref\"" }, /* xml */
+ },
+ /* default namespace */
+ {
+ "", 1,
+ { "xmlns" }, /* nodeName */
+ { "xmlns" }, /* prefix */
+ { "" }, /* baseName */
+ { "" }, /* namespaceURI */
+ { "nshref" }, /* text */
+ { "xmlns=\"nshref\"" }, /* xml */
},
/* no properties or namespaces */
{
@@ -12947,37 +13847,37 @@ static void test_namespaces_as_attributes(void)
test = tests;
while (test->xml) {
hr = CoCreateInstance(entry->guid, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument2, (void **)&doc);
- ok(SUCCEEDED(hr), "Failed to create document %s, hr %#x.\n", wine_dbgstr_guid(entry->guid), hr);
+ ok(hr == S_OK, "Unexpected hr %#lx for %s.\n", hr, wine_dbgstr_guid(entry->guid));
hr = IXMLDOMDocument_loadXML(doc, _bstr_(test->xml), &b);
- ok(hr == S_OK, "Failed to load xml, hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
node = NULL;
hr = IXMLDOMDocument_selectSingleNode(doc, _bstr_("a"), &node);
- ok(SUCCEEDED(hr), "Failed to select a node, hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMNode_get_attributes(node, &map);
- ok(SUCCEEDED(hr), "Failed to get attributes, hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = -1;
hr = IXMLDOMNamedNodeMap_get_length(map, &len);
- ok(SUCCEEDED(hr), "Failed to get map length, hr %#x.\n", hr);
- ok(len == test->explen, "got %d\n", len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(len == test->explen, "got %ld\n", len);
item = NULL;
hr = IXMLDOMNamedNodeMap_get_item(map, test->explen+1, &item);
- ok(hr == S_FALSE, "Failed to get item, hr %#x.\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(!item, "Item should be NULL\n");
for (i = 0; i < len; i++)
{
item = NULL;
hr = IXMLDOMNamedNodeMap_get_item(map, i, &item);
- ok(SUCCEEDED(hr), "Failed to get item, hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
str = NULL;
hr = IXMLDOMNode_get_nodeName(item, &str);
- ok(SUCCEEDED(hr), "Failed to get node name, hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!lstrcmpW(str, _bstr_(test->names[i])), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
@@ -12985,16 +13885,16 @@ static void test_namespaces_as_attributes(void)
hr = IXMLDOMNode_get_prefix(item, &str);
if (test->prefixes[i])
{
- ok(hr == S_OK, "Failed to get node name, hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!lstrcmpW(str, _bstr_(test->prefixes[i])), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
}
else
- ok(hr == S_FALSE, "Failed to get node name, hr %#x.\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
str = NULL;
hr = IXMLDOMNode_get_baseName(item, &str);
- ok(SUCCEEDED(hr), "Failed to get base name, hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!lstrcmpW(str, _bstr_(test->basenames[i])), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
@@ -13002,22 +13902,28 @@ static void test_namespaces_as_attributes(void)
hr = IXMLDOMNode_get_namespaceURI(item, &str);
if (test->uris[i])
{
- ok(hr == S_OK, "Failed to get node name, hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if (test->prefixes[i] && !strcmp(test->prefixes[i], "xmlns"))
- ok(!lstrcmpW(str, _bstr_(entry->xmlns_uri)), "got %s\n", wine_dbgstr_w(str));
+ ok(!SysStringLen(str), "got %s\n", wine_dbgstr_w(str));
else
ok(!lstrcmpW(str, _bstr_(test->uris[i])), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
}
else
- ok(hr == S_FALSE, "Failed to get node name, hr %#x.\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr );
str = NULL;
hr = IXMLDOMNode_get_text(item, &str);
- ok(SUCCEEDED(hr), "Failed to get node text, hr %#x.\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!lstrcmpW(str, _bstr_(test->texts[i])), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
+ str = NULL;
+ hr = IXMLDOMNode_get_xml(item, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, _bstr_(test->xmls[i])), "got %s\n", wine_dbgstr_w(str));
+ SysFreeString(str);
+
IXMLDOMNode_Release(item);
}
@@ -13033,9 +13939,340 @@ static void test_namespaces_as_attributes(void)
free_bstrs();
}
+static const IID *qi_list[32];
+static int qi_count;
+
+static BOOL qi_list_contains(REFIID iid)
+{
+ int i;
+
+ for (i = 0; i < qi_count; i++)
+ {
+ if (IsEqualGUID(qi_list[i], iid))
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static BOOL qi_list_contains_service(REFIID service, REFIID iid)
+{
+ int i;
+
+ for (i = 0; i < qi_count; i++)
+ {
+ if (IsEqualGUID(qi_list[i], service) && IsEqualGUID(qi_list[i + 1], iid))
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static HRESULT WINAPI sp_QueryInterface(IServiceProvider *iface, REFIID iid, void **ppv)
+{
+ if (qi_count < ARRAY_SIZE(qi_list))
+ qi_list[qi_count++] = iid;
+ else
+ ok(0, "qi_list overflow: %d\n", qi_count);
+
+ if (IsEqualGUID(iid, &IID_IUnknown) ||
+ IsEqualGUID(iid, &IID_IServiceProvider))
+ {
+ *ppv = iface;
+ return S_OK;
+ }
+
+ *ppv = NULL;
+ return E_NOINTERFACE;
+}
+
+static ULONG WINAPI sp_AddRef(IServiceProvider *iface)
+{
+ return 2;
+}
+
+static ULONG WINAPI sp_Release(IServiceProvider *iface)
+{
+ return 1;
+}
+
+static HRESULT WINAPI sp_QueryService(IServiceProvider *iface, REFGUID service,
+ REFIID iid, void **ppv)
+{
+ if (IsEqualGUID(service, &SID_SContainerDispatch) ||
+ IsEqualGUID(service, &SID_SInternetHostSecurityManager))
+ {
+ if (qi_count + 1 < ARRAY_SIZE(qi_list))
+ {
+ qi_list[qi_count++] = service;
+ qi_list[qi_count++] = iid;
+ }
+ else
+ ok(0, "qi_list overflow: %d\n", qi_count);
+ }
+
+ *ppv = NULL;
+ return E_NOINTERFACE;
+}
+
+static const IServiceProviderVtbl sp_vtbl =
+{
+ sp_QueryInterface,
+ sp_AddRef,
+ sp_Release,
+ sp_QueryService
+};
+
+static IServiceProvider sp = { &sp_vtbl };
+
+static void test_load_with_site(void)
+{
+ char path[MAX_PATH];
+ IXMLDOMDocument2 *doc;
+ IObjectWithSite *site;
+ VARIANT var;
+ VARIANT_BOOL b;
+ HRESULT hr;
+
+ GetTempPathA(MAX_PATH, path);
+ strcat(path, "winetest.xml");
+ write_to_file(path, win1252xml);
+
+ doc = create_document(&IID_IXMLDOMDocument2);
+
+ hr = IXMLDOMDocument2_QueryInterface(doc, &IID_IObjectWithSite, (void **)&site);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ qi_count = 0;
+ hr = IObjectWithSite_SetSite(site, (IUnknown *)&sp);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(qi_count != 0, "got %d QI calls\n", qi_count);
+ todo_wine
+ ok(qi_list_contains(&IID_IXMLDOMDocument), "QI(IID_IXMLDOMDocument) was not called\n");
+ ok(qi_list_contains(&IID_IHTMLDocument2), "QI(IID_IHTMLDocument2) was not called\n");
+ ok(qi_list_contains(&IID_IServiceProvider), "QI(IID_IServiceProvider) was not called\n");
+ todo_wine
+ ok(qi_list_contains(&IID_IOleClientSite), "QI(IID_IOleClientSite) was not called\n");
+ ok(qi_list_contains_service(&SID_SContainerDispatch, &IID_IHTMLDocument2),
+ "QI(SID_SContainerDispatch, IID_IHTMLDocument2) was not called\n");
+ todo_wine
+ ok(qi_list_contains_service(&SID_SInternetHostSecurityManager, &IID_IXMLDOMDocument),
+ "QI(SID_SInternetHostSecurityManager, IID_IXMLDOMDocument) was not called\n");
+
+ qi_count = 0;
+ V_VT(&var) = VT_BSTR;
+ V_BSTR(&var) = _bstr_(path);
+ hr = IXMLDOMDocument2_load(doc, var, &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(b == VARIANT_TRUE, "got %d\n", b);
+ ok(qi_count == 0, "got %d QI calls\n", qi_count);
+
+ IXMLDOMDocument2_Release(doc);
+
+ DeleteFileA(path);
+ free_bstrs();
+}
+
+typedef struct _validate_on_parse_test_t
+{
+ const GUID *guid;
+ const char *clsid;
+ HRESULT hr;
+} validate_on_parse_test_t;
+
+static const validate_on_parse_test_t validate_on_parse_tests[] =
+{
+ { &CLSID_DOMDocument, "CLSID_DOMDocument" , E_FAIL },
+ { &CLSID_DOMDocument2, "CLSID_DOMDocument2", E_FAIL },
+ { &CLSID_DOMDocument26, "CLSID_DOMDocument26", E_FAIL },
+ { &CLSID_DOMDocument30, "CLSID_DOMDocument30", E_FAIL },
+ { &CLSID_DOMDocument40, "CLSID_DOMDocument40", S_OK },
+ { &CLSID_DOMDocument60, "CLSID_DOMDocument60", S_OK },
+ { 0 }
+};
+
+static void test_validate_on_parse_values(void)
+{
+ const validate_on_parse_test_t *entry = validate_on_parse_tests;
+ int i = 0;
+
+ while (entry->guid)
+ {
+ IXMLDOMDocument2 *doc, *doc_clone;
+ IXMLDOMNode *node_clone;
+ VARIANT var, var_clone;
+ VARIANT_BOOL b;
+ HRESULT hr;
+
+ i++;
+ if (!is_clsid_supported(entry->guid, &IID_IXMLDOMDocument2))
+ {
+ entry++;
+ continue;
+ }
+
+ hr = CoCreateInstance(entry->guid, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument2, (void **)&doc);
+ ok(hr == S_OK, "%d: got %#lx.\n", i, hr);
+
+ V_VT(&var) = VT_I2;
+ V_I2(&var) = 0;
+ hr = IXMLDOMDocument2_getProperty(doc, _bstr_("ValidateOnParse"), &var);
+ ok(hr == entry->hr || broken(hr == E_FAIL) /* win8 */, "%d: got hr %#lx.\n", i, hr);
+ if (SUCCEEDED(hr))
+ {
+ ok(V_VT(&var) == VT_BOOL, "%d: got property value type %d.\n", i, V_VT(&var));
+ ok(V_BOOL(&var) == VARIANT_TRUE, "%d: got property value %d.\n", i, V_BOOL(&var));
+ }
+ else
+ {
+ ok(V_VT(&var) == VT_I2, "%d: got property value type %d.\n", i, V_VT(&var));
+ ok(V_I2(&var) == 0, "%d: got property value %d.\n", i, V_I2(&var));
+ if (IsEqualCLSID(entry->guid, &CLSID_DOMDocument40))
+ {
+ win_skip("Skip tests for CLSID_DOMDocument40 on Windows 8.\n");
+ IXMLDOMDocument2_Release(doc);
+ entry++;
+ continue;
+ }
+ }
+
+ b = VARIANT_FALSE;
+ hr = IXMLDOMDocument2_get_validateOnParse(doc, &b);
+ ok(hr == S_OK, "%d: got hr %#lx.\n", i, hr);
+ ok(b == VARIANT_TRUE, "%d: got property value %d.\n", i, b);
+
+ V_VT(&var) = VT_I2;
+ V_I2(&var) = 0;
+ hr = IXMLDOMDocument2_setProperty(doc, _bstr_("ValidateOnParse"), var);
+ ok(hr == entry->hr, "%d: got hr %#lx.\n", i, hr);
+ V_VT(&var) = VT_I2;
+ V_I2(&var) = 10;
+ hr = IXMLDOMDocument2_getProperty(doc, _bstr_("ValidateOnParse"), &var);
+ ok(hr == entry->hr, "%d: got hr %#lx.\n", i, hr);
+ if (SUCCEEDED(hr))
+ {
+ ok(V_VT(&var) == VT_BOOL, "%d: got property value type %d.\n", i, V_VT(&var));
+ ok(V_BOOL(&var) == VARIANT_FALSE, "%d: got property value %d.\n", i, V_BOOL(&var));
+ }
+
+ V_VT(&var) = VT_BOOL;
+ V_BOOL(&var) = VARIANT_TRUE;
+ hr = IXMLDOMDocument2_setProperty(doc, _bstr_("ValidateOnParse"), var);
+ ok(hr == entry->hr, "%d: got hr %#lx.\n", i, hr);
+ b = VARIANT_FALSE;
+ hr = IXMLDOMDocument2_get_validateOnParse(doc, &b);
+ ok(hr == S_OK, "%d: got hr %#lx.\n", i, hr);
+ ok(b == VARIANT_TRUE, "%d: got property value %d.\n", i, b);
+
+ V_VT(&var) = VT_I2;
+ V_I2(&var) = 0;
+ hr = IXMLDOMDocument2_getProperty(doc, _bstr_("ValidateOnParse"), &var);
+ ok(hr == entry->hr, "%d: got hr %#lx.\n", i, hr);
+ if (SUCCEEDED(hr))
+ {
+ ok(V_VT(&var) == VT_BOOL, "%d: got property value type %d.\n", i, V_VT(&var));
+ ok(V_BOOL(&var) == VARIANT_TRUE, "%d: got property value %d.\n", i, V_BOOL(&var));
+ }
+
+ b = VARIANT_FALSE;
+ hr = IXMLDOMDocument2_put_validateOnParse(doc, b);
+ ok(hr == S_OK, "%d: got hr %#lx.\n", i, hr);
+ V_VT(&var) = VT_I2;
+ V_I2(&var) = 10;
+ hr = IXMLDOMDocument2_getProperty(doc, _bstr_("ValidateOnParse"), &var);
+ ok(hr == entry->hr, "%d: got hr %#lx.\n", i, hr);
+ if (SUCCEEDED(hr))
+ {
+ ok(V_VT(&var) == VT_BOOL, "%d: got property value type %d.\n", i, V_VT(&var));
+ ok(V_BOOL(&var) == VARIANT_FALSE, "%d: got property value %d.\n", i, V_BOOL(&var));
+ }
+
+ /* Cloned document inherits the property. */
+ hr = IXMLDOMDocument2_cloneNode(doc, VARIANT_TRUE, &node_clone);
+ ok(hr == S_OK, "%d: got hr %#lx.\n", i, hr);
+ ok(node_clone != NULL, "%d: got node %p.\n", i, node_clone);
+ hr = IXMLDOMNode_QueryInterface(node_clone, &IID_IXMLDOMDocument2, (void **)&doc_clone);
+ ok(hr == S_OK, "%d: got hr %#lx.\n", i, hr);
+ V_VT(&var) = VT_I2;
+ V_I2(&var) = 10;
+ hr = IXMLDOMDocument2_getProperty(doc, _bstr_("ValidateOnParse"), &var);
+ ok(hr == entry->hr, "%d: got hr %#lx.\n", i, hr);
+ if (SUCCEEDED(hr))
+ {
+ ok(V_VT(&var) == VT_BOOL, "%d: got property value type %d.\n", i, V_VT(&var));
+ ok(V_BOOL(&var) == VARIANT_FALSE, "%d: got property value %d.\n", i, V_BOOL(&var));
+ }
+ V_VT(&var_clone) = VT_I2;
+ V_I2(&var_clone) = 10;
+ hr = IXMLDOMDocument2_getProperty(doc_clone, _bstr_("ValidateOnParse"), &var_clone);
+ ok(hr == entry->hr, "%d: got hr %#lx.\n", i, hr);
+ if (SUCCEEDED(hr))
+ {
+ ok(V_VT(&var_clone) == V_VT(&var), "%d: got property value type %d.\n", i, V_VT(&var_clone));
+ ok(V_BOOL(&var_clone) == V_BOOL(&var), "%d: got property value %d.\n", i, V_BOOL(&var_clone));
+ }
+ b = VARIANT_TRUE;
+ hr = IXMLDOMDocument2_get_validateOnParse(doc_clone, &b);
+ ok(hr == S_OK, "%d: got hr %#lx.\n", i, hr);
+ ok(b == VARIANT_FALSE, "%d: got property value %d.\n", i, b);
+ IXMLDOMNode_Release(node_clone);
+ IXMLDOMDocument2_Release(doc_clone);
+
+ IXMLDOMDocument2_Release(doc);
+ entry++;
+ }
+}
+
+static void test_indent(void)
+{
+ HRESULT hr;
+ VARIANT_BOOL b = VARIANT_FALSE;
+ BSTR data, str;
+ const WCHAR *data_expected;
+ IXMLDOMDocument *doc;
+ IXMLDOMElement *element = NULL;
+
+ str = SysAllocString(L"\n"
+ "\n"
+ "\n"
+ "\n"
+ "\n"
+ "\n");
+ hr = CoCreateInstance(&CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument, (void **)&doc);
+ ok(hr == S_OK, "Unable to create instance hr %#lx.\n", hr);
+ hr = IXMLDOMDocument_loadXML(doc, str, &b);
+ ok(hr == S_OK, "Unable to load XML hr %#lx.\n", hr);
+ hr = IXMLDOMDocument_get_documentElement(doc, &element);
+ ok(hr == S_OK, "Unable to get element hr %#lx.\n", hr);
+ hr = IXMLDOMElement_get_xml(element, &data);
+ ok(hr == S_OK, "Unable to get XML hr %#lx.\n", hr);
+
+ data_expected = L"\r\n"
+ "\t\r\n"
+ "\t\t\r\n"
+ "\t\r\n"
+ "";
+ ok(!lstrcmpW(data, data_expected), "incorrect element string, got '%s'\n", wine_dbgstr_w(data));
+
+ SysFreeString(str);
+}
+
+static DWORD WINAPI new_thread(void *arg)
+{
+ HRESULT hr = CoInitialize(NULL);
+ ok(hr == S_OK, "failed to init com\n");
+ if (hr != S_OK) return 1;
+
+ test_indent();
+
+ CoUninitialize();
+ return 0;
+}
+
START_TEST(domdoc)
{
HRESULT hr;
+ HANDLE thread;
hr = CoInitialize( NULL );
ok( hr == S_OK, "failed to init com\n");
@@ -13049,6 +14286,8 @@ START_TEST(domdoc)
return;
}
+ test_createProcessingInstruction();
+ test_load_with_site();
test_domdoc();
test_persiststream();
test_domnode();
@@ -13089,7 +14328,6 @@ START_TEST(domdoc)
test_default_properties();
test_selectSingleNode();
test_events();
- test_createProcessingInstruction();
test_put_nodeTypedValue();
test_get_xml();
test_insertBefore();
@@ -13118,9 +14356,10 @@ START_TEST(domdoc)
test_transformNodeToObject();
test_normalize_attribute_values();
test_namespaces_as_attributes();
-
+ test_validate_on_parse_values();
test_xsltemplate();
test_xsltext();
+ test_max_element_depth_values();
if (is_clsid_supported(&CLSID_MXNamespaceManager40, &IID_IMXNamespaceManager))
{
@@ -13128,5 +14367,12 @@ START_TEST(domdoc)
test_mxnamespacemanager_override();
}
+ /* We need to test test_indent in a seperate thread. This is to prevent regressions in multi-threaded
+ applications where the default indentation is set (e.g. by setting xmlTreeIndentString) in the first
+ thread but not for new threads, leading to the wrong indentation in subsequent threads. */
+ thread = CreateThread(NULL, 0, new_thread, NULL, 0, NULL);
+ WaitForSingleObject(thread, INFINITE);
+ CloseHandle(thread);
+
CoUninitialize();
}
diff --git a/modules/rostests/winetests/msxml3/httpreq.c b/modules/rostests/winetests/msxml3/httpreq.c
index ae0a95a2f1f..bccfbaf582a 100644
--- a/modules/rostests/winetests/msxml3/httpreq.c
+++ b/modules/rostests/winetests/msxml3/httpreq.c
@@ -35,19 +35,30 @@
#include "objsafe.h"
#include "mshtml.h"
-#include "wine/heap.h"
#include "wine/test.h"
-#define EXPECT_HR(hr,hr_exp) \
- ok(hr == hr_exp, "got 0x%08x, expected 0x%08x\n", hr, hr_exp)
-
#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);
rc = IUnknown_Release(obj);
- ok_(__FILE__, line)(rc == ref, "expected refcount %d, got %d\n", ref, rc);
+ ok_(__FILE__, line)(rc == ref, "expected refcount %ld, got %ld.\n", ref, rc);
+}
+
+#define check_interface(a, b, c) check_interface_(__LINE__, a, b, c)
+static void check_interface_(unsigned int line, void *iface_ptr, REFIID iid, BOOL supported)
+{
+ IUnknown *iface = iface_ptr;
+ HRESULT hr, expected_hr;
+ IUnknown *unk;
+
+ expected_hr = supported ? S_OK : E_NOINTERFACE;
+
+ hr = IUnknown_QueryInterface(iface, iid, (void **)&unk);
+ ok_(__FILE__, line)(hr == expected_hr, "Got hr %#lx, expected %#lx.\n", hr, expected_hr);
+ if (SUCCEEDED(hr))
+ IUnknown_Release(unk);
}
static const char xmltestA[] = "http://test.winehq.org/tests/xmltest.xml";
@@ -130,21 +141,6 @@ static void free_bstrs(void)
alloced_bstrs_count = 0;
}
-static BSTR a2bstr(const char *str)
-{
- BSTR ret;
- int len;
-
- if(!str)
- return NULL;
-
- len = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
- ret = SysAllocStringLen(NULL, len);
- MultiByteToWideChar(CP_ACP, 0, str, -1, ret, len);
-
- return ret;
-}
-
/* test IHTMLElementCollection */
static HRESULT WINAPI htmlecoll_QueryInterface(IHTMLElementCollection *iface, REFIID riid, void **ppvObject)
@@ -250,7 +246,6 @@ static IHTMLElementCollection htmlecoll = { &TestHTMLECollectionVtbl };
/* test IHTMLDocument2 */
static HRESULT WINAPI htmldoc2_QueryInterface(IHTMLDocument2 *iface, REFIID riid, void **ppvObject)
{
- trace("\n");
*ppvObject = NULL;
return E_NOINTERFACE;
}
@@ -496,7 +491,7 @@ static HRESULT WINAPI htmldoc2_put_URL(IHTMLDocument2 *iface, BSTR v)
static HRESULT WINAPI htmldoc2_get_URL(IHTMLDocument2 *iface, BSTR *p)
{
CHECK_EXPECT2(htmldoc2_get_url);
- *p = a2bstr("http://test.winehq.org/");
+ *p = SysAllocString(L"http://test.winehq.org/");
return S_OK;
}
@@ -1254,7 +1249,7 @@ static ULONG WINAPI dispevent_Release(IDispatch *iface)
ULONG ref = InterlockedDecrement( &This->ref );
if (ref == 0)
- heap_free(This);
+ free(This);
return ref;
}
@@ -1287,8 +1282,8 @@ static HRESULT WINAPI dispevent_Invoke(IDispatch *iface, DISPID member, REFIID r
LONG state;
HRESULT hr;
- ok(member == 0, "expected 0 member, got %d\n", member);
- ok(lcid == LOCALE_SYSTEM_DEFAULT, "expected LOCALE_SYSTEM_DEFAULT, got lcid %x\n", lcid);
+ ok(!member, "expected 0 member, got %ld.\n", member);
+ ok(lcid == LOCALE_SYSTEM_DEFAULT, "expected LOCALE_SYSTEM_DEFAULT, got lcid %lx.\n", lcid);
ok(flags == DISPATCH_METHOD, "expected DISPATCH_METHOD, got %d\n", flags);
ok(params->cArgs == 0, "got %d\n", params->cArgs);
@@ -1304,14 +1299,13 @@ static HRESULT WINAPI dispevent_Invoke(IDispatch *iface, DISPID member, REFIID r
state = READYSTATE_UNINITIALIZED;
hr = IXMLHttpRequest_get_readyState(httpreq, &state);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if (state == READYSTATE_COMPLETE)
{
BSTR text = NULL;
hr = IXMLHttpRequest_get_responseText(httpreq, &text);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(*text != 0, "got %s\n", wine_dbgstr_w(text));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
SysFreeString(text);
}
@@ -1331,7 +1325,7 @@ static const IDispatchVtbl dispeventVtbl =
static IDispatch* create_dispevent(void)
{
- dispevent *event = heap_alloc(sizeof(*event));
+ dispevent *event = malloc(sizeof(*event));
event->IDispatch_iface.lpVtbl = &dispeventVtbl;
event->ref = 1;
@@ -1366,10 +1360,10 @@ static void set_safety_opt(IUnknown *unk, DWORD mask, DWORD opts)
HRESULT hr;
hr = IUnknown_QueryInterface(unk, &IID_IObjectSafety, (void**)&obj_safety);
- ok(hr == S_OK, "Could not get IObjectSafety iface: %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IObjectSafety_SetInterfaceSafetyOptions(obj_safety, &IID_IDispatch, mask, mask&opts);
- ok(hr == S_OK, "SetInterfaceSafetyOptions failed: %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IObjectSafety_Release(obj_safety);
}
@@ -1380,7 +1374,7 @@ static void set_xhr_site(IXMLHttpRequest *xhr)
HRESULT hr;
hr = IXMLHttpRequest_QueryInterface(xhr, &IID_IObjectWithSite, (void**)&obj_site);
- ok(hr == S_OK, "Could not get IObjectWithSite iface: %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
g_enablecallchecks = TRUE;
@@ -1400,14 +1394,14 @@ static void set_xhr_site(IXMLHttpRequest *xhr)
SET_EXPECT(site_qi_IOleClientSite);
hr = IObjectWithSite_SetSite(obj_site, &testsite);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
CHECK_CALLED(site_qi_IServiceProvider);
-todo_wine
+ todo_wine
CHECK_CALLED(sp_queryservice_SID_SBindHost);
CHECK_CALLED(sp_queryservice_SID_SContainerDispatch_htmldoc2);
CHECK_CALLED(sp_queryservice_SID_secmgr_htmldoc2);
-todo_wine
+ todo_wine
CHECK_CALLED(sp_queryservice_SID_secmgr_xmldomdoc);
/* this one isn't very reliable
CHECK_CALLED(sp_queryservice_SID_secmgr_secmgr); */
@@ -1438,7 +1432,7 @@ static void _test_open(unsigned line, IXMLHttpRequest *xhr, const char *method,
V_BOOL(&vfalse) = VARIANT_FALSE;
hr = IXMLHttpRequest_open(xhr, _bstr_(method), _bstr_(url), vfalse, empty, empty);
- ok_(__FILE__,line)(hr == exhres, "open(%s %s) failed: %08x, expected %08x\n", method, url, hr, exhres);
+ ok_(__FILE__,line)(hr == exhres, "open(%s %s) failed: %#lx, expected %#lx.\n", method, url, hr, exhres);
}
#define test_server_open(a,b,c,d) _test_server_open(__LINE__,a,b,c,d)
@@ -1452,7 +1446,7 @@ static void _test_server_open(unsigned line, IServerXMLHTTPRequest *xhr, const c
V_BOOL(&vfalse) = VARIANT_FALSE;
hr = IServerXMLHTTPRequest_open(xhr, _bstr_(method), _bstr_(url), vfalse, empty, empty);
- ok_(__FILE__,line)(hr == exhres, "open(%s %s) failed: %08x, expected %08x\n", method, url, hr, exhres);
+ ok_(__FILE__,line)(hr == exhres, "open(%s %s) failed: %#lx, expected %#lx.\n", method, url, hr, exhres);
}
static void test_XMLHTTP(void)
@@ -1460,8 +1454,6 @@ static void test_XMLHTTP(void)
static const char bodyA[] = "mode=Test";
static const char urlA[] = "http://test.winehq.org/tests/post.php";
static const char referertesturl[] = "http://test.winehq.org/tests/referer.php";
- static const WCHAR wszExpectedResponse[] = {'F','A','I','L','E','D',0};
- static const WCHAR norefererW[] = {'n','o',' ','r','e','f','e','r','e','r',' ','s','e','t',0};
IXMLHttpRequest *xhr;
IObjectWithSite *obj_site, *obj_site2;
@@ -1476,43 +1468,47 @@ static void test_XMLHTTP(void)
xhr = create_xhr();
+ check_interface(xhr, &IID_IXMLHttpRequest, TRUE);
+ check_interface(xhr, &IID_IDispatch, TRUE);
+ check_interface(xhr, &IID_IDispatchEx, FALSE);
+
VariantInit(&dummy);
V_VT(&dummy) = VT_ERROR;
V_ERROR(&dummy) = DISP_E_MEMBERNOTFOUND;
hr = IXMLHttpRequest_put_onreadystatechange(xhr, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLHttpRequest_abort(xhr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&varbody) = VT_I2;
V_I2(&varbody) = 1;
hr = IXMLHttpRequest_get_responseBody(xhr, &varbody);
- EXPECT_HR(hr, E_PENDING);
+ ok(hr == E_PENDING, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&varbody) == VT_EMPTY, "got type %d\n", V_VT(&varbody));
V_VT(&varbody) = VT_I2;
V_I2(&varbody) = 1;
hr = IXMLHttpRequest_get_responseStream(xhr, &varbody);
- EXPECT_HR(hr, E_PENDING);
+ ok(hr == E_PENDING, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&varbody) == VT_EMPTY, "got type %d\n", V_VT(&varbody));
/* send before open */
hr = IXMLHttpRequest_send(xhr, dummy);
- ok(hr == E_FAIL || broken(hr == E_UNEXPECTED) /* win2k */, "got 0x%08x\n", hr);
+ ok(hr == E_FAIL || broken(hr == E_UNEXPECTED) /* win2k */, "Unexpected hr %#lx.\n", hr);
/* initial status code */
hr = IXMLHttpRequest_get_status(xhr, NULL);
- ok(hr == E_POINTER || broken(hr == E_INVALIDARG) /* sequence)
{
call_seq->size = 10;
- call_seq->sequence = heap_alloc(call_seq->size * sizeof (struct call_entry));
+ call_seq->sequence = malloc(call_seq->size * sizeof (struct call_entry));
}
if (call_seq->count == call_seq->size)
{
call_seq->size *= 2;
- call_seq->sequence = heap_realloc(call_seq->sequence, call_seq->size * sizeof (struct call_entry));
+ call_seq->sequence = realloc(call_seq->sequence, call_seq->size * sizeof (struct call_entry));
}
assert(call_seq->sequence);
@@ -299,7 +308,7 @@ static inline void flush_sequence(struct call_sequence **seg, int sequence_index
SysFreeString(call_seq->sequence[i].attributes[j].qnameW);
SysFreeString(call_seq->sequence[i].attributes[j].valueW);
}
- heap_free(call_seq->sequence[i].attributes);
+ free(call_seq->sequence[i].attributes);
call_seq->sequence[i].attr_count = 0;
SysFreeString(call_seq->sequence[i].arg1W);
@@ -307,7 +316,7 @@ static inline void flush_sequence(struct call_sequence **seg, int sequence_index
SysFreeString(call_seq->sequence[i].arg3W);
}
- heap_free(call_seq->sequence);
+ free(call_seq->sequence);
call_seq->sequence = NULL;
call_seq->count = call_seq->size = 0;
}
@@ -460,12 +469,12 @@ static void ok_sequence_(struct call_sequence **seq, int sequence_index,
{
failcount++;
ok_(file, line) (FALSE,
- "%s: in event %s expecting ret 0x%08x got 0x%08x\n",
+ "%s: in event %s expecting ret %#lx got %#lx\n",
context, get_event_name(actual->id), expected->ret, actual->ret);
}
else
ok_(file, line) (expected->ret == actual->ret,
- "%s: in event %s expecting ret 0x%08x got 0x%08x\n",
+ "%s: in event %s expecting ret %#lx got %#lx\n",
context, get_event_name(actual->id), expected->ret, actual->ret);
break;
case EH_ERROR:
@@ -534,30 +543,25 @@ static void init_call_sequences(struct call_sequence **seq, int n)
int i;
for (i = 0; i < n; i++)
- seq[i] = heap_alloc_zero(sizeof(struct call_sequence));
+ seq[i] = calloc(1, sizeof(**seq));
}
-static const WCHAR szSimpleXML[] = {
-'<','?','x','m','l',' ','v','e','r','s','i','o','n','=','\"','1','.','0','\"',' ','?','>','\n',
-'<','B','a','n','k','A','c','c','o','u','n','t','>','\n',
-' ',' ',' ','<','N','u','m','b','e','r','>','1','2','3','4','<','/','N','u','m','b','e','r','>','\n',
-' ',' ',' ','<','N','a','m','e','>','C','a','p','t','a','i','n',' ','A','h','a','b','<','/','N','a','m','e','>','\n',
-'<','/','B','a','n','k','A','c','c','o','u','n','t','>','\n','\0'
-};
+static const WCHAR szSimpleXML[] =
-static const WCHAR carriage_ret_test[] = {
-'<','?','x','m','l',' ','v','e','r','s','i','o','n','=','"','1','.','0','"','?','>','\r','\n',
-'<','B','a','n','k','A','c','c','o','u','n','t','>','\r','\n',
-'\t','<','N','u','m','b','e','r','>','1','2','3','4','<','/','N','u','m','b','e','r','>','\r','\n',
-'\t','<','N','a','m','e','>','C','a','p','t','a','i','n',' ','A','h','a','b','<','/','N','a','m','e','>','\r','\n',
-'<','/','B','a','n','k','A','c','c','o','u','n','t','>','\r','\n','\0'
-};
+L"\n"
+"\n"
+" 1234\n"
+" Captain Ahab\n"
+"\n";
-static const WCHAR szUtf16XML[] = {
-'<','?','x','m','l',' ','v','e','r','s','i','o','n','=','"','1','.','0','"',' ',
-'e','n','c','o','d','i','n','g','=','"','U','T','F','-','1','6','"',' ',
-'s','t','a','n','d','a','l','o','n','e','=','"','n','o','"','?','>','\r','\n'
-};
+static const WCHAR carriage_ret_test[] =
+
+L"\r\n"
+"\r\n\t1234\r\n\t"
+"Captain Ahab\r\n"
+"\r\n";
+
+static const WCHAR szUtf16XML[] = L"\r\n";
static const CHAR szUtf16BOM[] = {0xff, 0xfe};
@@ -1097,7 +1101,7 @@ static HRESULT WINAPI contentHandler_putDocumentLocator(
add_call(sequences, CONTENT_HANDLER_INDEX, &call);
hr = ISAXLocator_QueryInterface(pLocator, &IID_IVBSAXLocator, (void**)&unk);
- EXPECT_HR(hr, E_NOINTERFACE);
+ ok(hr == E_NOINTERFACE, "Unexpected hr %#lx.\n", hr);
if (msxml_version >= 6) {
ISAXAttributes *attr, *attr1;
@@ -1105,21 +1109,21 @@ static HRESULT WINAPI contentHandler_putDocumentLocator(
EXPECT_REF(pLocator, 1);
hr = ISAXLocator_QueryInterface(pLocator, &IID_ISAXAttributes, (void**)&attr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(pLocator, 2);
hr = ISAXLocator_QueryInterface(pLocator, &IID_ISAXAttributes, (void**)&attr1);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(pLocator, 3);
ok(attr == attr1, "got %p, %p\n", attr, attr1);
hr = ISAXAttributes_QueryInterface(attr, &IID_IVBSAXAttributes, (void**)&unk);
- EXPECT_HR(hr, E_NOINTERFACE);
+ ok(hr == E_NOINTERFACE, "Unexpected hr %#lx.\n", hr);
hr = ISAXLocator_QueryInterface(pLocator, &IID_IVBSAXAttributes, (void**)&unk);
- EXPECT_HR(hr, E_NOINTERFACE);
+ ok(hr == E_NOINTERFACE, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_QueryInterface(attr, &IID_IMXAttributes, (void**)&mxattr);
- EXPECT_HR(hr, E_NOINTERFACE);
+ ok(hr == E_NOINTERFACE, "Unexpected hr %#lx.\n", hr);
ISAXAttributes_Release(attr);
ISAXAttributes_Release(attr1);
@@ -1207,7 +1211,7 @@ static HRESULT WINAPI contentHandler_startElement(
ok(qname != NULL, "qname == NULL\n");
hr = ISAXAttributes_QueryInterface(saxattr, &IID_IMXAttributes, (void**)&mxattr);
- EXPECT_HR(hr, E_NOINTERFACE);
+ ok(hr == E_NOINTERFACE, "Unexpected hr %#lx.\n", hr);
init_call_entry(locator, &call);
call.id = CH_STARTELEMENT;
@@ -1222,7 +1226,7 @@ static HRESULT WINAPI contentHandler_startElement(
/* store actual attributes */
len = 0;
hr = ISAXAttributes_getLength(saxattr, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if (len)
{
@@ -1230,11 +1234,11 @@ static HRESULT WINAPI contentHandler_startElement(
int i;
struct attribute_entry *attr;
- attr = heap_alloc_zero(len * sizeof(*attr));
+ attr = calloc(len, sizeof(*attr));
v = VARIANT_TRUE;
hr = ISAXXMLReader_getFeature(g_reader, _bstr_("http://xml.org/sax/features/namespaces"), &v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
for (i = 0; i < len; i++)
{
@@ -1243,10 +1247,10 @@ static HRESULT WINAPI contentHandler_startElement(
hr = ISAXAttributes_getName(saxattr, i, &uri, &uri_len,
&localname, &local_len, &qname, &qname_len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getValue(saxattr, i, &value, &value_len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* if 'namespaces' switched off uri and local name contains garbage */
if (v == VARIANT_FALSE && msxml_version > 0)
@@ -1525,9 +1529,9 @@ static HRESULT WINAPI isaxattributes_getQName(
const WCHAR **QName,
int *QNameLength)
{
- static const WCHAR attrqnamesW[][15] = {{'a',':','a','t','t','r','1','j','u','n','k',0},
- {'a','t','t','r','2','j','u','n','k',0},
- {'a','t','t','r','3',0}};
+ static const WCHAR attrqnamesW[][15] = {L"a:attr1junk",
+ L"attr2junk",
+ L"attr3"};
static const int attrqnamelen[] = {7, 5, 5};
ok(index >= 0 && index <= 2, "invalid index received %d\n", index);
@@ -1616,9 +1620,9 @@ static HRESULT WINAPI isaxattributes_getTypeFromQName(
static HRESULT WINAPI isaxattributes_getValue(ISAXAttributes* iface, int index,
const WCHAR **value, int *nValue)
{
- static const WCHAR attrvaluesW[][10] = {{'a','1','j','u','n','k',0},
- {'a','2','j','u','n','k',0},
- {'<','&','"','>','\'',0}};
+ static const WCHAR attrvaluesW[][10] = {L"a1junk",
+ L"a2junk",
+ L"<&\">'"};
static const int attrvalueslen[] = {2, 2, 5};
ok(index >= 0 && index <= 2, "invalid index received %d\n", index);
@@ -1922,7 +1926,7 @@ typedef struct mxwriter_stream_test_t {
} mxwriter_stream_test;
static const mxwriter_write_test *current_write_test;
-static DWORD current_stream_test_index;
+static unsigned int current_stream_test_index;
static HRESULT WINAPI istream_QueryInterface(IStream *iface, REFIID riid, void **ppvObject)
{
@@ -2030,7 +2034,7 @@ static HRESULT WINAPI mxstream_Write(IStream *iface, const void *pv, ULONG cb, U
fail = current_write_test->fail_write;
- ok(current_write_test->cb == cb, "Expected %d, but got %d on test %d\n",
+ ok(current_write_test->cb == cb, "Expected %ld, but got %ld on test %d\n",
current_write_test->cb, cb, current_stream_test_index);
if(!pcbWritten)
@@ -2150,7 +2154,6 @@ static void test_saxreader(void)
ULONG written;
HANDLE file;
static const CHAR testXmlA[] = "test.xml";
- static const WCHAR testXmlW[] = {'t','e','s','t','.','x','m','l',0};
IXMLDOMDocument *doc;
char seqname[50];
VARIANT_BOOL v;
@@ -2168,7 +2171,7 @@ static void test_saxreader(void)
}
hr = CoCreateInstance(table->clsid, NULL, CLSCTX_INPROC_SERVER, &IID_ISAXXMLReader, (void**)&reader);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
g_reader = reader;
if (IsEqualGUID(table->clsid, &CLSID_SAXXMLReader40))
@@ -2183,31 +2186,31 @@ static void test_saxreader(void)
!IsEqualGUID(table->clsid, &CLSID_SAXXMLReader60))
{
hr = ISAXXMLReader_getContentHandler(reader, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = ISAXXMLReader_getErrorHandler(reader, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
}
hr = ISAXXMLReader_getContentHandler(reader, &content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(content == NULL, "Expected %p, got %p\n", NULL, content);
hr = ISAXXMLReader_getErrorHandler(reader, &lpErrorHandler);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(lpErrorHandler == NULL, "Expected %p, got %p\n", NULL, lpErrorHandler);
hr = ISAXXMLReader_putContentHandler(reader, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXXMLReader_putContentHandler(reader, &contentHandler);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXXMLReader_putErrorHandler(reader, &errorHandler);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXXMLReader_getContentHandler(reader, &content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(content == &contentHandler, "Expected %p, got %p\n", &contentHandler, content);
V_VT(&var) = VT_BSTR;
@@ -2220,7 +2223,7 @@ static void test_saxreader(void)
test_seq = content_handler_test1;
set_expected_seq(test_seq);
hr = ISAXXMLReader_parse(reader, var);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok_sequence(sequences, CONTENT_HANDLER_INDEX, test_seq, "content test 1", FALSE);
VariantClear(&var);
@@ -2236,7 +2239,7 @@ static void test_saxreader(void)
set_expected_seq(test_seq);
hr = ISAXXMLReader_parse(reader, var);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok_sequence(sequences, CONTENT_HANDLER_INDEX, test_seq, "content test 1: from safe array", FALSE);
SafeArrayDestroy(sa);
@@ -2244,12 +2247,12 @@ static void test_saxreader(void)
V_VT(&var) = VT_UNKNOWN;
V_UNKNOWN(&var) = NULL;
hr = ISAXXMLReader_parse(reader, var);
- ok(hr == E_INVALIDARG, "got %#x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
V_VT(&var) = VT_DISPATCH;
V_DISPATCH(&var) = NULL;
hr = ISAXXMLReader_parse(reader, var);
- ok(hr == E_INVALIDARG, "got %#x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
stream = create_test_stream(testXML, -1);
V_VT(&var) = VT_UNKNOWN;
@@ -2257,7 +2260,7 @@ static void test_saxreader(void)
set_expected_seq(test_seq);
hr = ISAXXMLReader_parse(reader, var);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok_sequence(sequences, CONTENT_HANDLER_INDEX, test_seq, "content test 1: from stream", FALSE);
IStream_Release(stream);
@@ -2275,7 +2278,7 @@ static void test_saxreader(void)
set_expected_seq(test_seq);
hr = ISAXXMLReader_parse(reader, var);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if (IsEqualGUID(table->clsid, &CLSID_SAXXMLReader40) ||
IsEqualGUID(table->clsid, &CLSID_SAXXMLReader60))
@@ -2292,7 +2295,7 @@ static void test_saxreader(void)
read_cnt = 0;
set_expected_seq(test_seq);
hr = ISAXXMLReader_parse(reader, var);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(read_cnt == 7, "read_cnt = %d\n", read_cnt);
ok_sequence(sequences, CONTENT_HANDLER_INDEX, test_seq, "Read call test", FALSE);
@@ -2307,25 +2310,41 @@ static void test_saxreader(void)
set_expected_seq(test_seq);
hr = ISAXXMLReader_parse(reader, var);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok_sequence(sequences, CONTENT_HANDLER_INDEX, test_seq, "content test 2", FALSE);
VariantClear(&var);
/* from file url */
file = CreateFileA(testXmlA, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
- ok(file != INVALID_HANDLE_VALUE, "Could not create file: %u\n", GetLastError());
+ ok(file != INVALID_HANDLE_VALUE, "Could not create file: %lu\n", GetLastError());
WriteFile(file, testXML, sizeof(testXML)-1, &written, NULL);
CloseHandle(file);
+ /* crashes on newer versions */
+ if (IsEqualGUID(table->clsid, &CLSID_SAXXMLReader) ||
+ IsEqualGUID(table->clsid, &CLSID_SAXXMLReader30))
+ {
+ IVBSAXXMLReader *vb_reader;
+
+ hr = ISAXXMLReader_parseURL(reader, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+
+ hr = ISAXXMLReader_QueryInterface(reader, &IID_IVBSAXXMLReader, (void **)&vb_reader);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IVBSAXXMLReader_parseURL(vb_reader, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+ IVBSAXXMLReader_Release(vb_reader);
+ }
+
if (IsEqualGUID(table->clsid, &CLSID_SAXXMLReader40) ||
IsEqualGUID(table->clsid, &CLSID_SAXXMLReader60))
test_seq = content_handler_test1_alternate;
else
test_seq = content_handler_test1;
set_expected_seq(test_seq);
- hr = ISAXXMLReader_parseURL(reader, testXmlW);
- EXPECT_HR(hr, S_OK);
+ hr = ISAXXMLReader_parseURL(reader, L"test.xml");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok_sequence(sequences, CONTENT_HANDLER_INDEX, test_seq, "content test 1: from file url", FALSE);
/* error handler */
@@ -2335,8 +2354,8 @@ static void test_saxreader(void)
else
test_seq = content_handler_testerror;
set_expected_seq(test_seq);
- hr = ISAXXMLReader_parseURL(reader, testXmlW);
- EXPECT_HR(hr, E_FAIL);
+ hr = ISAXXMLReader_parseURL(reader, L"test.xml");
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok_sequence(sequences, CONTENT_HANDLER_INDEX, test_seq, "content test error", FALSE);
/* callback ret values */
@@ -2345,15 +2364,15 @@ static void test_saxreader(void)
{
test_seq = content_handler_test_callback_rets_alt;
set_expected_seq(test_seq);
- hr = ISAXXMLReader_parseURL(reader, testXmlW);
- EXPECT_HR(hr, S_OK);
+ hr = ISAXXMLReader_parseURL(reader, L"test.xml");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
}
else
{
test_seq = content_handler_test_callback_rets;
set_expected_seq(test_seq);
- hr = ISAXXMLReader_parseURL(reader, testXmlW);
- EXPECT_HR(hr, S_FALSE);
+ hr = ISAXXMLReader_parseURL(reader, L"test.xml");
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
}
ok_sequence(sequences, CONTENT_HANDLER_INDEX, test_seq, "content callback ret values", FALSE);
@@ -2362,11 +2381,11 @@ static void test_saxreader(void)
/* parse from IXMLDOMDocument */
hr = CoCreateInstance(&CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER,
&IID_IXMLDOMDocument, (void**)&doc);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
str = SysAllocString(szSimpleXML);
hr = IXMLDOMDocument_loadXML(doc, str, &v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
SysFreeString(str);
V_VT(&var) = VT_UNKNOWN;
@@ -2380,7 +2399,7 @@ static void test_saxreader(void)
set_expected_seq(test_seq);
hr = ISAXXMLReader_parse(reader, var);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok_sequence(sequences, CONTENT_HANDLER_INDEX, test_seq, "parse from IXMLDOMDocument", FALSE);
IXMLDOMDocument_Release(doc);
@@ -2397,7 +2416,7 @@ static void test_saxreader(void)
V_VT(&var) = VT_BSTR;
V_BSTR(&var) = _bstr_(xmlspace_attr);
hr = ISAXXMLReader_parse(reader, var);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if (IsEqualGUID(table->clsid, &CLSID_SAXXMLReader40) ||
IsEqualGUID(table->clsid, &CLSID_SAXXMLReader60))
@@ -2409,7 +2428,7 @@ static void test_saxreader(void)
/* switch off 'namespaces' feature */
hr = ISAXXMLReader_putFeature(reader, _bstr_("http://xml.org/sax/features/namespaces"), VARIANT_FALSE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
stream = create_test_stream(test_attributes, -1);
V_VT(&var) = VT_UNKNOWN;
@@ -2425,15 +2444,15 @@ static void test_saxreader(void)
set_expected_seq(test_seq);
hr = ISAXXMLReader_parse(reader, var);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok_sequence(sequences, CONTENT_HANDLER_INDEX, test_seq, "content test attributes", TRUE);
IStream_Release(stream);
hr = ISAXXMLReader_putFeature(reader, _bstr_("http://xml.org/sax/features/namespaces"), VARIANT_TRUE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* switch off 'namespace-prefixes' feature */
hr = ISAXXMLReader_putFeature(reader, _bstr_("http://xml.org/sax/features/namespace-prefixes"), VARIANT_FALSE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
stream = create_test_stream(test_attributes, -1);
V_VT(&var) = VT_UNKNOWN;
@@ -2449,12 +2468,12 @@ static void test_saxreader(void)
set_expected_seq(test_seq);
hr = ISAXXMLReader_parse(reader, var);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok_sequence(sequences, CONTENT_HANDLER_INDEX, test_seq, "content test attributes", FALSE);
IStream_Release(stream);
hr = ISAXXMLReader_putFeature(reader, _bstr_("http://xml.org/sax/features/namespace-prefixes"), VARIANT_TRUE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* attribute normalization */
stream = create_test_stream(attribute_normalize, -1);
@@ -2471,17 +2490,17 @@ static void test_saxreader(void)
set_expected_seq(test_seq);
hr = ISAXXMLReader_parse(reader, var);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok_sequence(sequences, CONTENT_HANDLER_INDEX, test_seq, "attribute value normalization", TRUE);
IStream_Release(stream);
resolver = (void*)0xdeadbeef;
hr = ISAXXMLReader_getEntityResolver(reader, &resolver);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(resolver == NULL, "got %p\n", resolver);
hr = ISAXXMLReader_putEntityResolver(reader, NULL);
- ok(hr == S_OK || broken(hr == E_FAIL), "got 0x%08x\n", hr);
+ ok(hr == S_OK || broken(hr == E_FAIL), "Unexpected hr %#lx.\n", hr);
/* CDATA sections */
init_saxlexicalhandler(&lexicalhandler, S_OK);
@@ -2489,7 +2508,7 @@ static void test_saxreader(void)
V_VT(&var) = VT_UNKNOWN;
V_UNKNOWN(&var) = (IUnknown*)&lexicalhandler.ISAXLexicalHandler_iface;
hr = ISAXXMLReader_putProperty(reader, _bstr_("http://xml.org/sax/properties/lexical-handler"), var);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
stream = create_test_stream(test_cdata_xml, -1);
V_VT(&var) = VT_UNKNOWN;
@@ -2503,7 +2522,7 @@ static void test_saxreader(void)
set_expected_seq(test_seq);
hr = ISAXXMLReader_parse(reader, var);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
sprintf(seqname, "%s: cdata test", table->name);
ok_sequence(sequences, CONTENT_HANDLER_INDEX, test_seq, seqname, TRUE);
@@ -2522,7 +2541,7 @@ static void test_saxreader(void)
set_expected_seq(test_seq);
hr = ISAXXMLReader_parse(reader, var);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
sprintf(seqname, "%s: cdata test 2", table->name);
ok_sequence(sequences, CONTENT_HANDLER_INDEX, test_seq, seqname, TRUE);
@@ -2541,7 +2560,7 @@ static void test_saxreader(void)
set_expected_seq(test_seq);
hr = ISAXXMLReader_parse(reader, var);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
sprintf(seqname, "%s: cdata test 3", table->name);
ok_sequence(sequences, CONTENT_HANDLER_INDEX, test_seq, seqname, TRUE);
@@ -2576,10 +2595,10 @@ static void test_saxreader_properties(void)
hr = CoCreateInstance(&CLSID_SAXXMLReader, NULL, CLSCTX_INPROC_SERVER,
&IID_ISAXXMLReader, (void**)&reader);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXXMLReader_getProperty(reader, _bstr_("http://xml.org/sax/properties/lexical-handler"), NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
while (ptr->prop_name)
{
@@ -2592,7 +2611,7 @@ static void test_saxreader_properties(void)
V_VT(&v) = VT_EMPTY;
V_UNKNOWN(&v) = (IUnknown*)0xdeadbeef;
hr = ISAXXMLReader_getProperty(reader, _bstr_(ptr->prop_name), &v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&v) == VT_UNKNOWN, "got %d\n", V_VT(&v));
ok(V_UNKNOWN(&v) == NULL, "got %p\n", V_UNKNOWN(&v));
@@ -2601,7 +2620,7 @@ static void test_saxreader_properties(void)
V_UNKNOWN(&v) = ptr->iface;
ref = get_refcount(ptr->iface);
hr = ISAXXMLReader_putProperty(reader, _bstr_(ptr->prop_name), v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(ref < get_refcount(ptr->iface), "expected inreased refcount\n");
/* VT_DISPATCH */
@@ -2609,8 +2628,8 @@ static void test_saxreader_properties(void)
V_UNKNOWN(&v) = ptr->iface;
ref = get_refcount(ptr->iface);
hr = ISAXXMLReader_putProperty(reader, _bstr_(ptr->prop_name), v);
- EXPECT_HR(hr, S_OK);
- ok(ref == get_refcount(ptr->iface), "got wrong refcount %d, expected %d\n", get_refcount(ptr->iface), ref);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(ref == get_refcount(ptr->iface), "got wrong refcount %ld, expected %ld\n", get_refcount(ptr->iface), ref);
/* VT_VARIANT|VT_BYREF with VT_UNKNOWN in referenced variant */
V_VT(&varref) = VT_UNKNOWN;
@@ -2620,8 +2639,8 @@ static void test_saxreader_properties(void)
V_VARIANTREF(&v) = &varref;
ref = get_refcount(ptr->iface);
hr = ISAXXMLReader_putProperty(reader, _bstr_(ptr->prop_name), v);
- EXPECT_HR(hr, S_OK);
- ok(ref == get_refcount(ptr->iface), "got wrong refcount %d, expected %d\n", get_refcount(ptr->iface), ref);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(ref == get_refcount(ptr->iface), "got wrong refcount %ld, expected %ld\n", get_refcount(ptr->iface), ref);
/* VT_VARIANT|VT_BYREF with VT_DISPATCH in referenced variant */
V_VT(&varref) = VT_DISPATCH;
@@ -2631,15 +2650,15 @@ static void test_saxreader_properties(void)
V_VARIANTREF(&v) = &varref;
ref = get_refcount(ptr->iface);
hr = ISAXXMLReader_putProperty(reader, _bstr_(ptr->prop_name), v);
- EXPECT_HR(hr, S_OK);
- ok(ref == get_refcount(ptr->iface), "got wrong refcount %d, expected %d\n", get_refcount(ptr->iface), ref);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(ref == get_refcount(ptr->iface), "got wrong refcount %ld, expected %ld\n", get_refcount(ptr->iface), ref);
V_VT(&v) = VT_EMPTY;
V_UNKNOWN(&v) = (IUnknown*)0xdeadbeef;
ref = get_refcount(ptr->iface);
hr = ISAXXMLReader_getProperty(reader, _bstr_(ptr->prop_name), &v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&v) == VT_UNKNOWN, "got %d\n", V_VT(&v));
ok(V_UNKNOWN(&v) == ptr->iface, "got %p\n", V_UNKNOWN(&v));
ok(ref < get_refcount(ptr->iface), "expected inreased refcount\n");
@@ -2648,30 +2667,30 @@ static void test_saxreader_properties(void)
V_VT(&v) = VT_EMPTY;
V_UNKNOWN(&v) = (IUnknown*)0xdeadbeef;
hr = ISAXXMLReader_putProperty(reader, _bstr_(ptr->prop_name), v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&v) = VT_EMPTY;
V_UNKNOWN(&v) = (IUnknown*)0xdeadbeef;
hr = ISAXXMLReader_getProperty(reader, _bstr_(ptr->prop_name), &v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&v) == VT_UNKNOWN, "got %d\n", V_VT(&v));
ok(V_UNKNOWN(&v) == NULL, "got %p\n", V_UNKNOWN(&v));
V_VT(&v) = VT_UNKNOWN;
V_UNKNOWN(&v) = ptr->iface;
hr = ISAXXMLReader_putProperty(reader, _bstr_(ptr->prop_name), v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* only VT_EMPTY seems to be valid to reset property */
V_VT(&v) = VT_I4;
V_UNKNOWN(&v) = (IUnknown*)0xdeadbeef;
hr = ISAXXMLReader_putProperty(reader, _bstr_(ptr->prop_name), v);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
V_VT(&v) = VT_EMPTY;
V_UNKNOWN(&v) = (IUnknown*)0xdeadbeef;
hr = ISAXXMLReader_getProperty(reader, _bstr_(ptr->prop_name), &v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&v) == VT_UNKNOWN, "got %d\n", V_VT(&v));
ok(V_UNKNOWN(&v) == ptr->iface, "got %p\n", V_UNKNOWN(&v));
VariantClear(&v);
@@ -2679,12 +2698,12 @@ static void test_saxreader_properties(void)
V_VT(&v) = VT_UNKNOWN;
V_UNKNOWN(&v) = NULL;
hr = ISAXXMLReader_putProperty(reader, _bstr_(ptr->prop_name), v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&v) = VT_EMPTY;
V_UNKNOWN(&v) = (IUnknown*)0xdeadbeef;
hr = ISAXXMLReader_getProperty(reader, _bstr_(ptr->prop_name), &v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&v) == VT_UNKNOWN, "got %d\n", V_VT(&v));
ok(V_UNKNOWN(&v) == NULL, "got %p\n", V_UNKNOWN(&v));
@@ -2692,7 +2711,7 @@ static void test_saxreader_properties(void)
V_VT(&v) = VT_UNKNOWN;
V_UNKNOWN(&v) = ptr->iface;
hr = ISAXXMLReader_putProperty(reader, _bstr_(ptr->prop_name), v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
init_saxlexicalhandler(&lexicalhandler, E_NOINTERFACE);
init_saxdeclhandler(&declhandler, E_NOINTERFACE);
@@ -2702,13 +2721,13 @@ static void test_saxreader_properties(void)
EXPECT_REF(ptr->iface, 1);
ref = get_refcount(ptr->iface);
hr = ISAXXMLReader_putProperty(reader, _bstr_(ptr->prop_name), v);
- EXPECT_HR(hr, E_NOINTERFACE);
+ ok(hr == E_NOINTERFACE, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(ptr->iface, 1);
V_VT(&v) = VT_EMPTY;
V_UNKNOWN(&v) = (IUnknown*)0xdeadbeef;
hr = ISAXXMLReader_getProperty(reader, _bstr_(ptr->prop_name), &v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&v) == VT_UNKNOWN, "got %d\n", V_VT(&v));
ok(V_UNKNOWN(&v) != NULL, "got %p\n", V_UNKNOWN(&v));
@@ -2723,13 +2742,13 @@ static void test_saxreader_properties(void)
hr = CoCreateInstance(&CLSID_SAXXMLReader40, NULL, CLSCTX_INPROC_SERVER,
&IID_ISAXXMLReader, (void**)&reader);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* xmldecl-version property */
V_VT(&v) = VT_EMPTY;
V_BSTR(&v) = (void*)0xdeadbeef;
hr = ISAXXMLReader_getProperty(reader, _bstr_("xmldecl-version"), &v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&v) == VT_BSTR, "got %d\n", V_VT(&v));
ok(V_BSTR(&v) == NULL, "got %s\n", wine_dbgstr_w(V_BSTR(&v)));
@@ -2737,12 +2756,12 @@ static void test_saxreader_properties(void)
V_VT(&v) = VT_BSTR;
V_BSTR(&v) = _bstr_("");
hr = ISAXXMLReader_parse(reader, v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&v) = VT_EMPTY;
V_BSTR(&v) = (void*)0xdeadbeef;
hr = ISAXXMLReader_getProperty(reader, _bstr_("xmldecl-version"), &v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&v) == VT_BSTR, "got %d\n", V_VT(&v));
ok(V_BSTR(&v) == NULL, "got %s\n", wine_dbgstr_w(V_BSTR(&v)));
@@ -2750,21 +2769,21 @@ static void test_saxreader_properties(void)
V_VT(&v) = VT_BSTR;
V_BSTR(&v) = _bstr_("");
hr = ISAXXMLReader_parse(reader, v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* VT_BSTR|VT_BYREF input type */
str = _bstr_("");
V_VT(&v) = VT_BSTR|VT_BYREF;
V_BSTRREF(&v) = &str;
hr = ISAXXMLReader_parse(reader, v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&v) = VT_EMPTY;
V_BSTR(&v) = (void*)0xdeadbeef;
hr = ISAXXMLReader_getProperty(reader, _bstr_("xmldecl-version"), &v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&v) == VT_BSTR, "got %d\n", V_VT(&v));
- ok(!lstrcmpW(V_BSTR(&v), _bstr_("1.0")), "got %s\n", wine_dbgstr_w(V_BSTR(&v)));
+ ok(!lstrcmpW(V_BSTR(&v), L"1.0"), "got %s\n", wine_dbgstr_w(V_BSTR(&v)));
VariantClear(&v);
ISAXXMLReader_Release(reader);
@@ -2816,28 +2835,28 @@ static void test_saxreader_features(void)
{
value = VARIANT_TRUE;
hr = ISAXXMLReader_getFeature(reader, _bstr_("exhaustive-errors"), &value);
- ok(hr == S_OK, "Failed to get feature value, hr %#x.\n", hr);
+ ok(hr == S_OK, "Failed to get feature value, hr %#lx.\n", hr);
ok(value == VARIANT_FALSE, "Unexpected default feature value.\n");
hr = ISAXXMLReader_putFeature(reader, _bstr_("exhaustive-errors"), VARIANT_FALSE);
- ok(hr == S_OK, "Failed to put feature value, hr %#x.\n", hr);
+ ok(hr == S_OK, "Failed to put feature value, hr %#lx.\n", hr);
value = VARIANT_TRUE;
hr = ISAXXMLReader_getFeature(reader, _bstr_("schema-validation"), &value);
- ok(hr == S_OK, "Failed to get feature value, hr %#x.\n", hr);
+ ok(hr == S_OK, "Failed to get feature value, hr %#lx.\n", hr);
ok(value == VARIANT_FALSE, "Unexpected default feature value.\n");
hr = ISAXXMLReader_putFeature(reader, _bstr_("exhaustive-errors"), VARIANT_FALSE);
- ok(hr == S_OK, "Failed to put feature value, hr %#x.\n", hr);
+ ok(hr == S_OK, "Failed to put feature value, hr %#lx.\n", hr);
}
else
{
value = 123;
hr = ISAXXMLReader_getFeature(reader, _bstr_("exhaustive-errors"), &value);
- ok(hr == E_INVALIDARG, "Failed to get feature value, hr %#x.\n", hr);
+ ok(hr == E_INVALIDARG, "Failed to get feature value, hr %#lx.\n", hr);
ok(value == 123, "Unexpected value %d.\n", value);
value = 123;
hr = ISAXXMLReader_getFeature(reader, _bstr_("schema-validation"), &value);
- ok(hr == E_INVALIDARG, "Failed to get feature value, hr %#x.\n", hr);
+ ok(hr == E_INVALIDARG, "Failed to get feature value, hr %#lx.\n", hr);
ok(value == 123, "Unexpected value %d.\n", value);
}
@@ -2846,30 +2865,30 @@ static void test_saxreader_features(void)
{
value = 0xc;
hr = ISAXXMLReader_getFeature(reader, _bstr_(*name), &value);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(entry->value == value, "%s: got wrong default value %x, expected %x\n", entry->clsid, value, entry->value);
value = 0xc;
hr = ISAXXMLReader_putFeature(reader, _bstr_(*name), value);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
value = 0xd;
hr = ISAXXMLReader_getFeature(reader, _bstr_(*name), &value);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(entry->value2 == value, "%s: got wrong value %x, expected %x\n", entry->clsid, value, entry->value2);
hr = ISAXXMLReader_putFeature(reader, _bstr_(*name), VARIANT_FALSE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
value = 0xd;
hr = ISAXXMLReader_getFeature(reader, _bstr_(*name), &value);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(value == VARIANT_FALSE, "%s: got wrong value %x, expected VARIANT_FALSE\n", entry->clsid, value);
hr = ISAXXMLReader_putFeature(reader, _bstr_(*name), VARIANT_TRUE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
value = 0xd;
hr = ISAXXMLReader_getFeature(reader, _bstr_(*name), &value);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(value == VARIANT_TRUE, "%s: got wrong value %x, expected VARIANT_TRUE\n", entry->clsid, value);
name++;
@@ -2905,7 +2924,6 @@ static const struct enc_test_entry_t encoding_test_data[] = {
static void test_saxreader_encoding(void)
{
const struct enc_test_entry_t *entry = encoding_test_data;
- static const WCHAR testXmlW[] = {'t','e','s','t','.','x','m','l',0};
static const CHAR testXmlA[] = "test.xml";
while (entry->guid)
@@ -2925,13 +2943,13 @@ static void test_saxreader_encoding(void)
}
file = CreateFileA(testXmlA, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
- ok(file != INVALID_HANDLE_VALUE, "Could not create file: %u\n", GetLastError());
+ ok(file != INVALID_HANDLE_VALUE, "Could not create file: %lu\n", GetLastError());
WriteFile(file, UTF8BOMTest, sizeof(UTF8BOMTest)-1, &written, NULL);
CloseHandle(file);
- hr = ISAXXMLReader_parseURL(reader, testXmlW);
+ hr = ISAXXMLReader_parseURL(reader, L"test.xml");
todo_wine_if(entry->todo)
- ok(hr == entry->hr, "Expected 0x%08x, got 0x%08x. CLSID %s\n", entry->hr, hr, entry->clsid);
+ ok(hr == entry->hr, "Expected %#lx, got %#lx. CLSID %s\n", entry->hr, hr, entry->clsid);
DeleteFileA(testXmlA);
@@ -2939,7 +2957,7 @@ static void test_saxreader_encoding(void)
V_VT(&input) = VT_BSTR;
V_BSTR(&input) = _bstr_("");
hr = ISAXXMLReader_parse(reader, input);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ISAXXMLReader_Release(reader);
@@ -2970,7 +2988,7 @@ static void test_mxwriter_handlers(void)
hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(writer, 1);
@@ -2981,13 +2999,13 @@ static void test_mxwriter_handlers(void)
/* handler from IMXWriter */
hr = IMXWriter_QueryInterface(writer, riids[i], (void**)&handler);
- ok(hr == S_OK, "%s, expected S_OK, got %08x\n", wine_dbgstr_guid(riids[i]), hr);
+ ok(hr == S_OK, "%s, unexpected hr %#lx.\n", wine_dbgstr_guid(riids[i]), hr);
EXPECT_REF(writer, 2);
EXPECT_REF(handler, 2);
/* IMXWriter from a handler */
hr = IUnknown_QueryInterface(handler, &IID_IMXWriter, (void**)&writer2);
- ok(hr == S_OK, "%s, expected S_OK, got %08x\n", wine_dbgstr_guid(riids[i]), hr);
+ ok(hr == S_OK, "%s, unexpected hr %#lx.\n", wine_dbgstr_guid(riids[i]), hr);
ok(writer2 == writer, "got %p, expected %p\n", writer2, writer);
EXPECT_REF(writer, 3);
IMXWriter_Release(writer2);
@@ -3055,36 +3073,36 @@ static void test_mxwriter_default_properties(const struct mxwriter_props_t *tabl
hr = CoCreateInstance(table->clsid, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
b = !table->bom;
hr = IMXWriter_get_byteOrderMark(writer, &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(table->bom == b, "test %d: got BOM %d, expected %d\n", i, b, table->bom);
b = !table->disable_escape;
hr = IMXWriter_get_disableOutputEscaping(writer, &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(table->disable_escape == b, "test %d: got disable escape %d, expected %d\n", i, b,
table->disable_escape);
b = !table->indent;
hr = IMXWriter_get_indent(writer, &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(table->indent == b, "test %d: got indent %d, expected %d\n", i, b, table->indent);
b = !table->omitdecl;
hr = IMXWriter_get_omitXMLDeclaration(writer, &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(table->omitdecl == b, "test %d: got omitdecl %d, expected %d\n", i, b, table->omitdecl);
b = !table->standalone;
hr = IMXWriter_get_standalone(writer, &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(table->standalone == b, "test %d: got standalone %d, expected %d\n", i, b, table->standalone);
hr = IMXWriter_get_encoding(writer, &encoding);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!lstrcmpW(encoding, _bstr_(table->encoding)), "test %d: got encoding %s, expected %s\n",
i, wine_dbgstr_w(encoding), table->encoding);
SysFreeString(encoding);
@@ -3098,8 +3116,6 @@ static void test_mxwriter_default_properties(const struct mxwriter_props_t *tabl
static void test_mxwriter_properties(void)
{
- static const WCHAR utf16W[] = {'U','T','F','-','1','6',0};
- static const WCHAR testW[] = {'t','e','s','t',0};
ISAXContentHandler *content;
IMXWriter *writer;
VARIANT_BOOL b;
@@ -3111,136 +3127,136 @@ static void test_mxwriter_properties(void)
hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_get_disableOutputEscaping(writer, NULL);
- ok(hr == E_POINTER, "got %08x\n", hr);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_get_byteOrderMark(writer, NULL);
- ok(hr == E_POINTER, "got %08x\n", hr);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_get_indent(writer, NULL);
- ok(hr == E_POINTER, "got %08x\n", hr);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_get_omitXMLDeclaration(writer, NULL);
- ok(hr == E_POINTER, "got %08x\n", hr);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_get_standalone(writer, NULL);
- ok(hr == E_POINTER, "got %08x\n", hr);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
/* set and check */
hr = IMXWriter_put_standalone(writer, VARIANT_TRUE);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
b = VARIANT_FALSE;
hr = IMXWriter_get_standalone(writer, &b);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "got %d\n", b);
hr = IMXWriter_get_encoding(writer, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
/* UTF-16 is a default setting apparently */
str = (void*)0xdeadbeef;
hr = IMXWriter_get_encoding(writer, &str);
- EXPECT_HR(hr, S_OK);
- ok(lstrcmpW(str, utf16W) == 0, "expected empty string, got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"UTF-16"), "Unexpected string %s.\n", wine_dbgstr_w(str));
str2 = (void*)0xdeadbeef;
hr = IMXWriter_get_encoding(writer, &str2);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(str != str2, "expected newly allocated, got same %p\n", str);
SysFreeString(str2);
SysFreeString(str);
/* put empty string */
- str = SysAllocString(emptyW);
+ str = SysAllocString(L"");
hr = IMXWriter_put_encoding(writer, str);
- ok(hr == E_INVALIDARG, "got %08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
SysFreeString(str);
str = (void*)0xdeadbeef;
hr = IMXWriter_get_encoding(writer, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("UTF-16")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"UTF-16"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
/* invalid encoding name */
- str = SysAllocString(testW);
+ str = SysAllocString(L"test");
hr = IMXWriter_put_encoding(writer, str);
- ok(hr == E_INVALIDARG, "got %08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
SysFreeString(str);
- /* test case sensivity */
+ /* test case sensitivity */
hr = IMXWriter_put_encoding(writer, _bstr_("utf-8"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
str = (void*)0xdeadbeef;
hr = IMXWriter_get_encoding(writer, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("utf-8")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"utf-8"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
hr = IMXWriter_put_encoding(writer, _bstr_("uTf-16"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
str = (void*)0xdeadbeef;
hr = IMXWriter_get_encoding(writer, &str);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(str, _bstr_("uTf-16")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"uTf-16"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
/* how it affects document creation */
hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_endDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_("\r\n"),
+ ok(!lstrcmpW(L"\r\n",
V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
ISAXContentHandler_Release(content);
hr = IMXWriter_get_version(writer, NULL);
- ok(hr == E_POINTER, "got %08x\n", hr);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
/* default version is 'surprisingly' 1.0 */
hr = IMXWriter_get_version(writer, &str);
- ok(hr == S_OK, "got %08x\n", hr);
- ok(!lstrcmpW(str, _bstr_("1.0")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"1.0"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
/* store version string as is */
hr = IMXWriter_put_version(writer, NULL);
- ok(hr == E_INVALIDARG, "got %08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_version(writer, _bstr_("1.0"));
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_version(writer, _bstr_(""));
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_get_version(writer, &str);
- ok(hr == S_OK, "got %08x\n", hr);
- ok(!lstrcmpW(str, _bstr_("")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L""), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
hr = IMXWriter_put_version(writer, _bstr_("a.b"));
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_get_version(writer, &str);
- ok(hr == S_OK, "got %08x\n", hr);
- ok(!lstrcmpW(str, _bstr_("a.b")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"a.b"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
hr = IMXWriter_put_version(writer, _bstr_("2.0"));
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_get_version(writer, &str);
- ok(hr == S_OK, "got %08x\n", hr);
- ok(!lstrcmpW(str, _bstr_("2.0")), "got %s\n", wine_dbgstr_w(str));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"2.0"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
IMXWriter_Release(writer);
@@ -3262,185 +3278,185 @@ static void test_mxwriter_flush(void)
hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = CreateStreamOnHGlobal(NULL, TRUE, &stream);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(stream, 1);
/* detach when nothing was attached */
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_put_output(writer, dest);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* attach stream */
V_VT(&dest) = VT_UNKNOWN;
V_UNKNOWN(&dest) = (IUnknown*)stream;
hr = IMXWriter_put_output(writer, dest);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine EXPECT_REF(stream, 3);
/* detach setting VT_EMPTY destination */
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_put_output(writer, dest);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(stream, 1);
V_VT(&dest) = VT_UNKNOWN;
V_UNKNOWN(&dest) = (IUnknown*)stream;
hr = IMXWriter_put_output(writer, dest);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* flush() doesn't detach a stream */
hr = IMXWriter_flush(writer);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine EXPECT_REF(stream, 3);
pos.QuadPart = 0;
hr = IStream_Seek(stream, pos, STREAM_SEEK_CUR, &pos2);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(pos2.QuadPart == 0, "expected stream beginning\n");
hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startDocument(content);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
pos.QuadPart = 0;
hr = IStream_Seek(stream, pos, STREAM_SEEK_CUR, &pos2);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(pos2.QuadPart != 0, "expected stream beginning\n");
/* already started */
hr = ISAXContentHandler_startDocument(content);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_endDocument(content);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* flushed on endDocument() */
pos.QuadPart = 0;
hr = IStream_Seek(stream, pos, STREAM_SEEK_CUR, &pos2);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(pos2.QuadPart != 0, "expected stream position moved\n");
IStream_Release(stream);
/* auto-flush feature */
hr = CreateStreamOnHGlobal(NULL, TRUE, &stream);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(stream, 1);
V_VT(&dest) = VT_UNKNOWN;
V_UNKNOWN(&dest) = (IUnknown*)stream;
hr = IMXWriter_put_output(writer, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_byteOrderMark(writer, VARIANT_FALSE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- hr = ISAXContentHandler_startElement(content, emptyW, 0, emptyW, 0, _bstr_("a"), -1, NULL);
- EXPECT_HR(hr, S_OK);
+ hr = ISAXContentHandler_startElement(content, L"", 0, L"", 0, _bstr_("a"), -1, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* internal buffer is flushed automatically on certain threshold */
pos.QuadPart = 0;
pos2.QuadPart = 1;
hr = IStream_Seek(stream, pos, STREAM_SEEK_CUR, &pos2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(pos2.QuadPart == 0, "expected stream beginning\n");
len = 2048;
- buff = heap_alloc(len + 1);
+ buff = malloc(len + 1);
memset(buff, 'A', len);
buff[len] = 0;
hr = ISAXContentHandler_characters(content, _bstr_(buff), len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
pos.QuadPart = 0;
pos2.QuadPart = 0;
hr = IStream_Seek(stream, pos, STREAM_SEEK_CUR, &pos2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(pos2.QuadPart != 0, "unexpected stream beginning\n");
hr = IMXWriter_get_output(writer, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
ref = get_refcount(stream);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_UNKNOWN, "got vt type %d\n", V_VT(&dest));
ok(V_UNKNOWN(&dest) == (IUnknown*)stream, "got pointer %p\n", V_UNKNOWN(&dest));
ok(ref+1 == get_refcount(stream), "expected increased refcount\n");
VariantClear(&dest);
hr = ISAXContentHandler_endDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IStream_Release(stream);
/* test char count lower than threshold */
hr = CreateStreamOnHGlobal(NULL, TRUE, &stream);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
EXPECT_REF(stream, 1);
hr = ISAXContentHandler_startDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- hr = ISAXContentHandler_startElement(content, emptyW, 0, emptyW, 0, _bstr_("a"), -1, NULL);
- EXPECT_HR(hr, S_OK);
+ hr = ISAXContentHandler_startElement(content, L"", 0, L"", 0, _bstr_("a"), -1, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
pos.QuadPart = 0;
pos2.QuadPart = 1;
hr = IStream_Seek(stream, pos, STREAM_SEEK_CUR, &pos2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(pos2.QuadPart == 0, "expected stream beginning\n");
memset(buff, 'A', len);
buff[len] = 0;
hr = ISAXContentHandler_characters(content, _bstr_(buff), len - 8);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
pos.QuadPart = 0;
pos2.QuadPart = 1;
hr = IStream_Seek(stream, pos, STREAM_SEEK_CUR, &pos2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(pos2.QuadPart == 0, "expected stream beginning\n");
hr = ISAXContentHandler_endDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* test auto-flush function when stream is not set */
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_put_output(writer, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- hr = ISAXContentHandler_startElement(content, emptyW, 0, emptyW, 0, _bstr_("a"), -1, NULL);
- EXPECT_HR(hr, S_OK);
+ hr = ISAXContentHandler_startElement(content, L"", 0, L"", 0, _bstr_("a"), -1, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
memset(buff, 'A', len);
buff[len] = 0;
hr = ISAXContentHandler_characters(content, _bstr_(buff), len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len += strlen("");
ok(SysStringLen(V_BSTR(&dest)) == len, "got len=%d, expected %d\n", SysStringLen(V_BSTR(&dest)), len);
VariantClear(&dest);
- heap_free(buff);
+ free(buff);
ISAXContentHandler_Release(content);
IStream_Release(stream);
IMXWriter_Release(writer);
@@ -3456,32 +3472,32 @@ static void test_mxwriter_startenddocument(void)
hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startDocument(content);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_endDocument(content);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_("\r\n"), V_BSTR(&dest)),
+ ok(!lstrcmpW(L"\r\n", V_BSTR(&dest)),
"got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
/* now try another startDocument */
hr = ISAXContentHandler_startDocument(content);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* and get duplicated prolog */
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
ok(!lstrcmpW(_bstr_("\r\n"
"\r\n"), V_BSTR(&dest)),
@@ -3494,25 +3510,25 @@ static void test_mxwriter_startenddocument(void)
/* now with omitted declaration */
hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startDocument(content);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_endDocument(content);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_(""), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ ok(!lstrcmpW(L"", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
ISAXContentHandler_Release(content);
@@ -3687,21 +3703,21 @@ static void test_mxwriter_startendelement_batch(const struct writer_startendelem
hr = CoCreateInstance(table->clsid, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if (table->type & DisableEscaping)
{
hr = IMXWriter_put_disableOutputEscaping(writer, VARIANT_TRUE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
}
if (table->type & StartElement)
@@ -3709,7 +3725,7 @@ static void test_mxwriter_startendelement_batch(const struct writer_startendelem
hr = ISAXContentHandler_startElement(content, _bstr_(table->uri), table->uri ? strlen(table->uri) : 0,
_bstr_(table->local_name), table->local_name ? strlen(table->local_name) : 0, _bstr_(table->qname),
table->qname ? strlen(table->qname) : 0, table->attr);
- ok(hr == table->hr, "test %d: got 0x%08x, expected 0x%08x\n", i, hr, table->hr);
+ ok(hr == table->hr, "test %d: got %#lx, expected %#lx\n", i, hr, table->hr);
}
if (table->type & EndElement)
@@ -3717,7 +3733,7 @@ static void test_mxwriter_startendelement_batch(const struct writer_startendelem
hr = ISAXContentHandler_endElement(content, _bstr_(table->uri), table->uri ? strlen(table->uri) : 0,
_bstr_(table->local_name), table->local_name ? strlen(table->local_name) : 0, _bstr_(table->qname),
table->qname ? strlen(table->qname) : 0);
- ok(hr == table->hr, "test %d: got 0x%08x, expected 0x%08x\n", i, hr, table->hr);
+ ok(hr == table->hr, "test %d: got %#lx, expected %#lx\n", i, hr, table->hr);
}
/* test output */
@@ -3727,7 +3743,7 @@ static void test_mxwriter_startendelement_batch(const struct writer_startendelem
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
ok(!lstrcmpW(_bstr_(table->output), V_BSTR(&dest)),
"test %d: got wrong content %s, expected %s\n", i, wine_dbgstr_w(V_BSTR(&dest)), table->output);
@@ -3788,24 +3804,24 @@ static void test_mxwriter_startendelement_batch2(const struct writer_startendele
hr = CoCreateInstance(table->clsid, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startElement(content, _bstr_(""), 0, _bstr_(""), 0,
_bstr_(table->qnamestart), table->qnamestart_len, NULL);
- ok(hr == table->hr, "test %d: got 0x%08x, expected 0x%08x\n", i, hr, table->hr);
+ ok(hr == table->hr, "test %d: got %#lx, expected %#lx\n", i, hr, table->hr);
hr = ISAXContentHandler_endElement(content, _bstr_(""), 0, _bstr_(""), 0,
_bstr_(table->qnameend), table->qnameend_len);
- ok(hr == table->hr, "test %d: got 0x%08x, expected 0x%08x\n", i, hr, table->hr);
+ ok(hr == table->hr, "test %d: got %#lx, expected %#lx\n", i, hr, table->hr);
/* test output */
if (hr == S_OK)
@@ -3814,7 +3830,7 @@ static void test_mxwriter_startendelement_batch2(const struct writer_startendele
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
ok(!lstrcmpW(_bstr_(table->output), V_BSTR(&dest)),
"test %d: got wrong content %s, expected %s\n", i, wine_dbgstr_w(V_BSTR(&dest)), table->output);
@@ -3835,8 +3851,10 @@ static void test_mxwriter_startendelement_batch2(const struct writer_startendele
static void test_mxwriter_startendelement(void)
{
ISAXContentHandler *content;
+ IVBSAXContentHandler *vb_content;
IMXWriter *writer;
VARIANT dest;
+ BSTR bstr_null = NULL, bstr_empty, bstr_a, bstr_b, bstr_ab;
HRESULT hr;
test_mxwriter_startendelement_batch(writer_startendelement);
@@ -3844,110 +3862,187 @@ static void test_mxwriter_startendelement(void)
hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
-
- hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IMXWriter_QueryInterface(writer, &IID_IVBSAXContentHandler, (void**)&vb_content);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IVBSAXContentHandler_startDocument(vb_content);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ bstr_empty = SysAllocString(L"");
+ bstr_a = SysAllocString(L"a");
+ bstr_b = SysAllocString(L"b");
+ bstr_ab = SysAllocString(L"a:b");
+
+ hr = IVBSAXContentHandler_startElement(vb_content, &bstr_null, &bstr_empty, &bstr_b, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+
+ hr = IVBSAXContentHandler_startElement(vb_content, &bstr_empty, &bstr_b, &bstr_empty, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ V_VT(&dest) = VT_EMPTY;
+ hr = IMXWriter_get_output(writer, &dest);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
+ ok(!lstrcmpW(L"<>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ VariantClear(&dest);
+
+ hr = IVBSAXContentHandler_startElement(vb_content, &bstr_empty, &bstr_empty, &bstr_b, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ V_VT(&dest) = VT_EMPTY;
+ hr = IMXWriter_get_output(writer, &dest);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
+ ok(!lstrcmpW(L"<>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ VariantClear(&dest);
+
+ hr = IVBSAXContentHandler_endElement(vb_content, &bstr_null, &bstr_null, &bstr_b);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+
+ hr = IVBSAXContentHandler_endElement(vb_content, &bstr_null, &bstr_a, &bstr_b);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+
+ hr = IVBSAXContentHandler_endElement(vb_content, &bstr_a, &bstr_b, &bstr_null);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+
+ hr = IVBSAXContentHandler_endElement(vb_content, &bstr_empty, &bstr_null, &bstr_b);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+
+ hr = IVBSAXContentHandler_endElement(vb_content, &bstr_empty, &bstr_b, &bstr_null);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
+
+ hr = IVBSAXContentHandler_endElement(vb_content, &bstr_empty, &bstr_empty, &bstr_b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ V_VT(&dest) = VT_EMPTY;
+ hr = IMXWriter_get_output(writer, &dest);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
+ ok(!lstrcmpW(L"<>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ VariantClear(&dest);
+
+ SysFreeString(bstr_empty);
+ SysFreeString(bstr_a);
+ SysFreeString(bstr_b);
+ SysFreeString(bstr_ab);
+
+ hr = IVBSAXContentHandler_endDocument(vb_content);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ IVBSAXContentHandler_Release(vb_content);
+ IMXWriter_Release(writer);
+
+ hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER,
+ &IID_IMXWriter, (void**)&writer);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startDocument(content);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* all string pointers should be not null */
hr = ISAXContentHandler_startElement(content, _bstr_(""), 0, _bstr_("b"), 1, _bstr_(""), 0, NULL);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_("<>"), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ ok(!lstrcmpW(L"<>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
hr = ISAXContentHandler_startElement(content, _bstr_(""), 0, _bstr_(""), 0, _bstr_("b"), 1, NULL);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_("<>"), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ ok(!lstrcmpW(L"<>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
hr = ISAXContentHandler_endElement(content, NULL, 0, NULL, 0, _bstr_("a:b"), 3);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_endElement(content, NULL, 0, _bstr_("b"), 1, _bstr_("a:b"), 3);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
/* only local name is an error too */
hr = ISAXContentHandler_endElement(content, NULL, 0, _bstr_("b"), 1, NULL, 0);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_endElement(content, _bstr_(""), 0, _bstr_(""), 0, _bstr_("b"), 1);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_("<>"), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ ok(!lstrcmpW(L"<>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
hr = ISAXContentHandler_endDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_put_output(writer, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_(""), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ ok(!lstrcmpW(L"", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
hr = ISAXContentHandler_startDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startElement(content, _bstr_(""), 0, _bstr_(""), 0, _bstr_("abcdef"), 3, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_(""), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ ok(!lstrcmpW(L"", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
hr = ISAXContentHandler_endDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IMXWriter_flush(writer);
hr = ISAXContentHandler_endElement(content, _bstr_(""), 0, _bstr_(""), 0, _bstr_("abdcdef"), 3);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_(""), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ ok(!lstrcmpW(L"", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_put_output(writer, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* length -1 */
hr = ISAXContentHandler_startElement(content, _bstr_(""), 0, _bstr_(""), 0, _bstr_("a"), -1, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_(""), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ ok(!lstrcmpW(L"", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
ISAXContentHandler_Release(content);
@@ -3971,8 +4066,7 @@ static const struct writer_characters_t writer_characters[] = {
static void test_mxwriter_characters(void)
{
- static const WCHAR chardataW[] = {'T','E','S','T','C','H','A','R','D','A','T','A',' ','.',0};
- static const WCHAR embedded_nullbytes[] = {'a',0,'b',0,0,0,'c',0};
+ static const WCHAR embedded_nullbytes[] = L"a\0b\0\0\0c";
const struct writer_characters_t *table = writer_characters;
IVBSAXContentHandler *vb_content;
ISAXContentHandler *content;
@@ -3984,42 +4078,42 @@ static void test_mxwriter_characters(void)
hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_IVBSAXContentHandler, (void**)&vb_content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_characters(content, NULL, 0);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- hr = ISAXContentHandler_characters(content, chardataW, 0);
- EXPECT_HR(hr, S_OK);
+ hr = ISAXContentHandler_characters(content, L"TESTCHARDATA .", 0);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
str = _bstr_("VbChars");
hr = IVBSAXContentHandler_characters(vb_content, &str);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- hr = ISAXContentHandler_characters(content, chardataW, ARRAY_SIZE(chardataW) - 1);
- EXPECT_HR(hr, S_OK);
+ hr = ISAXContentHandler_characters(content, L"TESTCHARDATA .", 14);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_("VbCharsTESTCHARDATA ."), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ ok(!lstrcmpW(L"VbCharsTESTCHARDATA .", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
hr = ISAXContentHandler_endDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ISAXContentHandler_Release(content);
IVBSAXContentHandler_Release(vb_content);
@@ -4028,31 +4122,31 @@ static void test_mxwriter_characters(void)
/* try empty characters data to see if element is closed */
hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startElement(content, _bstr_(""), 0, _bstr_(""), 0, _bstr_("a"), 1, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- hr = ISAXContentHandler_characters(content, chardataW, 0);
- EXPECT_HR(hr, S_OK);
+ hr = ISAXContentHandler_characters(content, L"TESTCHARDATA .", 0);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_endElement(content, _bstr_(""), 0, _bstr_(""), 0, _bstr_("a"), 1);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_(""), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ ok(!lstrcmpW(L"", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
ISAXContentHandler_Release(content);
@@ -4061,23 +4155,23 @@ static void test_mxwriter_characters(void)
/* test embedded null bytes */
hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_characters(content, embedded_nullbytes, ARRAY_SIZE(embedded_nullbytes));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
ok(SysStringLen(V_BSTR(&dest)) == ARRAY_SIZE(embedded_nullbytes), "unexpected len %d\n", SysStringLen(V_BSTR(&dest)));
ok(!memcmp(V_BSTR(&dest), embedded_nullbytes, ARRAY_SIZE(embedded_nullbytes)),
@@ -4089,25 +4183,25 @@ static void test_mxwriter_characters(void)
hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_IVBSAXContentHandler, (void**)&vb_content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IVBSAXContentHandler_startDocument(vb_content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
str = SysAllocStringLen(embedded_nullbytes, ARRAY_SIZE(embedded_nullbytes));
hr = IVBSAXContentHandler_characters(vb_content, &str);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
SysFreeString(str);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
ok(SysStringLen(V_BSTR(&dest)) == ARRAY_SIZE(embedded_nullbytes), "unexpected len %d\n", SysStringLen(V_BSTR(&dest)));
ok(!memcmp(V_BSTR(&dest), embedded_nullbytes, ARRAY_SIZE(embedded_nullbytes)),
@@ -4134,26 +4228,26 @@ static void test_mxwriter_characters(void)
hr = CoCreateInstance(table->clsid, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_characters(content, _bstr_(table->data), strlen(table->data));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* test output */
if (hr == S_OK)
{
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
ok(!lstrcmpW(_bstr_(table->output), V_BSTR(&dest)),
"test %d: got wrong content %s, expected \"%s\"\n", i, wine_dbgstr_w(V_BSTR(&dest)), table->output);
@@ -4163,20 +4257,20 @@ static void test_mxwriter_characters(void)
/* with disabled escaping */
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_put_output(writer, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_disableOutputEscaping(writer, VARIANT_TRUE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_characters(content, _bstr_(table->data), strlen(table->data));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* test output */
if (hr == S_OK)
{
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
ok(!lstrcmpW(_bstr_(table->data), V_BSTR(&dest)),
"test %d: got wrong content %s, expected \"%s\"\n", i, wine_dbgstr_w(V_BSTR(&dest)), table->data);
@@ -4198,14 +4292,14 @@ static const mxwriter_stream_test mxwriter_stream_tests[] = {
VARIANT_TRUE,"UTF-16",
{
{FALSE,(const BYTE*)szUtf16BOM,sizeof(szUtf16BOM),TRUE},
- {FALSE,(const BYTE*)szUtf16XML,sizeof(szUtf16XML)},
+ {FALSE,(const BYTE*)szUtf16XML,sizeof(szUtf16XML)-sizeof(WCHAR)},
{TRUE}
}
},
{
VARIANT_FALSE,"UTF-16",
{
- {FALSE,(const BYTE*)szUtf16XML,sizeof(szUtf16XML)},
+ {FALSE,(const BYTE*)szUtf16XML,sizeof(szUtf16XML)-sizeof(WCHAR)},
{TRUE}
}
},
@@ -4235,7 +4329,7 @@ static const mxwriter_stream_test mxwriter_stream_tests[] = {
VARIANT_TRUE,"UTF-16",
{
{FALSE,(const BYTE*)szUtf16BOM,sizeof(szUtf16BOM),TRUE},
- {FALSE,(const BYTE*)szUtf16XML,sizeof(szUtf16XML)},
+ {FALSE,(const BYTE*)szUtf16XML,sizeof(szUtf16XML)-sizeof(WCHAR)},
{TRUE}
}
},
@@ -4243,7 +4337,7 @@ static const mxwriter_stream_test mxwriter_stream_tests[] = {
VARIANT_TRUE,"UTF-16",
{
{FALSE,(const BYTE*)szUtf16BOM,sizeof(szUtf16BOM),TRUE,TRUE},
- {FALSE,(const BYTE*)szUtf16XML,sizeof(szUtf16XML)},
+ {FALSE,(const BYTE*)szUtf16XML,sizeof(szUtf16XML)-sizeof(WCHAR)},
{TRUE}
}
}
@@ -4265,29 +4359,29 @@ static void test_mxwriter_stream(void)
hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- ok(hr == S_OK, "CoCreateInstance failed: %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx on test %d\n", hr, current_stream_test_index);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
- ok(hr == S_OK, "QueryInterface(ISAXContentHandler) failed: %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx on test %d\n", hr, current_stream_test_index);
hr = IMXWriter_put_encoding(writer, _bstr_(test->encoding));
- ok(hr == S_OK, "put_encoding failed with %08x on test %d\n", hr, current_stream_test_index);
+ ok(hr == S_OK, "Unexpected hr %#lx on test %d\n", hr, current_stream_test_index);
V_VT(&dest) = VT_UNKNOWN;
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);
+ ok(hr == S_OK, "Unexpected hr %#lx on test %d\n", hr, current_stream_test_index);
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);
+ ok(hr == S_OK, "Unexpected hr %#lx on test %d\n", hr, current_stream_test_index);
current_write_test = test->expected_writes;
hr = ISAXContentHandler_startDocument(content);
- ok(hr == S_OK, "startDocument failed with %08x on test %d\n", hr, current_stream_test_index);
+ ok(hr == S_OK, "Unexpected hr %#lx on test %d\n", hr, current_stream_test_index);
hr = ISAXContentHandler_endDocument(content);
- ok(hr == S_OK, "endDocument failed with %08x on test %d\n", hr, current_stream_test_index);
+ ok(hr == S_OK, "Unexpected hr %#lx on test %d\n", hr, current_stream_test_index);
ISAXContentHandler_Release(content);
IMXWriter_Release(writer);
@@ -4298,78 +4392,78 @@ static void test_mxwriter_stream(void)
hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- ok(hr == S_OK, "CoCreateInstance failed: %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = CreateStreamOnHGlobal(NULL, TRUE, &stream);
- ok(hr == S_OK, "CreateStreamOnHGlobal failed: %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
- ok(hr == S_OK, "QueryInterface(ISAXContentHandler) failed: %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_encoding(writer, _bstr_("UTF-8"));
- ok(hr == S_OK, "put_encoding failed: %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_UNKNOWN;
V_UNKNOWN(&dest) = (IUnknown*)stream;
hr = IMXWriter_put_output(writer, dest);
- ok(hr == S_OK, "put_output failed: %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startDocument(content);
- ok(hr == S_OK, "startDocument failed: %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* Setting output of the mxwriter causes the current output to be flushed,
* and the writer to start over.
*/
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_put_output(writer, dest);
- ok(hr == S_OK, "put_output failed: %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
pos.QuadPart = 0;
hr = IStream_Seek(stream, pos, STREAM_SEEK_CUR, &pos2);
- ok(hr == S_OK, "Seek failed: %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(pos2.QuadPart != 0, "expected stream position moved\n");
hr = ISAXContentHandler_startDocument(content);
- ok(hr == S_OK, "startDocument failed: %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_endDocument(content);
- ok(hr == S_OK, "endDocument failed: %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- ok(hr == S_OK, "get_output failed: %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "Expected VT_BSTR, got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_("\r\n"), V_BSTR(&dest)),
+ ok(!lstrcmpW(L"\r\n", V_BSTR(&dest)),
"Got wrong content: %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
/* test when BOM is written to output stream */
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_put_output(writer, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
pos.QuadPart = 0;
hr = IStream_Seek(stream, pos, STREAM_SEEK_SET, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_UNKNOWN;
V_UNKNOWN(&dest) = (IUnknown*)stream;
hr = IMXWriter_put_output(writer, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_byteOrderMark(writer, VARIANT_TRUE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_encoding(writer, _bstr_("UTF-16"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
pos.QuadPart = 0;
pos2.QuadPart = 0;
hr = IStream_Seek(stream, pos, STREAM_SEEK_CUR, &pos2);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(pos2.QuadPart == 2, "got wrong position\n");
IStream_Release(stream);
@@ -4379,6 +4473,199 @@ static void test_mxwriter_stream(void)
free_bstrs();
}
+static void test_mxwriter_domdoc(void)
+{
+ ISAXContentHandler *content;
+ IXMLDOMDocument *domdoc;
+ IMXWriter *writer;
+ HRESULT hr;
+ VARIANT dest;
+ IXMLDOMElement *root = NULL;
+ IXMLDOMNodeList *node_list = NULL;
+ IXMLDOMNode *node = NULL;
+ LONG list_length = 0;
+ BSTR str;
+
+ /* Create writer and attach DOMDocument output */
+ hr = CoCreateInstance(&CLSID_MXXMLWriter60, NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (void**)&writer);
+ ok(hr == S_OK, "Failed to create a writer, hr %#lx.\n", hr);
+
+ hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = CoCreateInstance(&CLSID_DOMDocument60, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument, (void **)&domdoc);
+ ok(hr == S_OK, "Failed to create a document, hr %#lx.\n", hr);
+
+ V_VT(&dest) = VT_DISPATCH;
+ V_DISPATCH(&dest) = (IDispatch *)domdoc;
+
+ hr = IMXWriter_put_output(writer, dest);
+ todo_wine
+ ok(hr == S_OK, "Failed to set writer output, hr %#lx.\n", hr);
+ if (FAILED(hr))
+ {
+ IXMLDOMDocument_Release(domdoc);
+ IMXWriter_Release(writer);
+ return;
+ }
+
+ /* Add root element to document. */
+ hr = IXMLDOMDocument_createElement(domdoc, _bstr_("TestElement"), &root);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMDocument_appendChild(domdoc, (IXMLDOMNode *)root, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ IXMLDOMElement_Release(root);
+
+ hr = IXMLDOMDocument_get_documentElement(domdoc, &root);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(root != NULL, "Unexpected document root.\n");
+ IXMLDOMElement_Release(root);
+
+ /* startDocument clears root element and disables methods. */
+ hr = ISAXContentHandler_startDocument(content);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IXMLDOMDocument_get_documentElement(domdoc, &root);
+ todo_wine
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+
+ hr = IXMLDOMDocument_createElement(domdoc, _bstr_("TestElement"), &root);
+ todo_wine
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
+
+ /* startElement allows document root node to be accessed. */
+ hr = ISAXContentHandler_startElement(content, L"", 0, L"", 0, L"BankAccount", 11, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IXMLDOMDocument_get_documentElement(domdoc, &root);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(root != NULL, "Unexpected document root.\n");
+
+ hr = IXMLDOMElement_get_nodeName(root, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ todo_wine
+ ok(!lstrcmpW(L"BankAccount", str), "Unexpected name %s.\n", wine_dbgstr_w(str));
+ SysFreeString(str);
+
+ /* startElement immediately updates previous node. */
+ hr = ISAXContentHandler_startElement(content, L"", 0, L"", 0, L"Number", 6, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IXMLDOMElement_get_childNodes(root, &node_list);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IXMLDOMNodeList_get_length(node_list, &list_length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ todo_wine
+ ok(list_length == 1, "list length %ld, expected 1\n", list_length);
+
+ hr = IXMLDOMNodeList_get_item(node_list, 0, &node);
+ todo_wine
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IXMLDOMNode_get_nodeName(node, &str);
+todo_wine {
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(L"Number", str), "got %s\n", wine_dbgstr_w(str));
+}
+ SysFreeString(str);
+
+ /* characters not immediately visible. */
+ hr = ISAXContentHandler_characters(content, L"12345", 5);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IXMLDOMNode_get_text(node, &str);
+todo_wine {
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(L"", str), "got %s\n", wine_dbgstr_w(str));
+}
+ SysFreeString(str);
+
+ /* characters visible after endElement. */
+ hr = ISAXContentHandler_endElement(content, L"", 0, L"", 0, L"Number", 6);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IXMLDOMNode_get_text(node, &str);
+todo_wine {
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(L"12345", str), "got %s\n", wine_dbgstr_w(str));
+}
+ SysFreeString(str);
+
+ IXMLDOMNode_Release(node);
+
+ /* second startElement updates the existing node list. */
+
+ hr = ISAXContentHandler_startElement(content, L"", 0, L"", 0, L"Name", 4, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = ISAXContentHandler_characters(content, L"Captain Ahab", 12);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = ISAXContentHandler_endElement(content, L"", 0, L"", 0, L"Name", 4);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = ISAXContentHandler_endElement(content, L"", 0, L"", 0, L"BankAccount", 11);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IXMLDOMNodeList_get_length(node_list, &list_length);
+todo_wine {
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(2 == list_length, "list length %ld, expected 2\n", list_length);
+}
+ hr = IXMLDOMNodeList_get_item(node_list, 1, &node);
+ todo_wine
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IXMLDOMNode_get_nodeName(node, &str);
+todo_wine {
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(L"Name", str), "got %s\n", wine_dbgstr_w(str));
+}
+ SysFreeString(str);
+
+ hr = IXMLDOMNode_get_text(node, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+todo_wine {
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(L"Captain Ahab", str), "got %s\n", wine_dbgstr_w(str));
+}
+ SysFreeString(str);
+
+ IXMLDOMNode_Release(node);
+ IXMLDOMNodeList_Release(node_list);
+ IXMLDOMElement_Release(root);
+
+ /* endDocument makes document modifiable again. */
+
+ hr = ISAXContentHandler_endDocument(content);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ hr = IXMLDOMDocument_createElement(domdoc, _bstr_("TestElement"), &root);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ IXMLDOMElement_Release(root);
+
+ /* finally check doc output */
+ hr = IXMLDOMDocument_get_xml(domdoc, &str);
+todo_wine {
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(
+ L""
+ "12345"
+ "Captain Ahab"
+ "\r\n",
+ str),
+ "got %s\n", wine_dbgstr_w(str));
+}
+ SysFreeString(str);
+
+ IXMLDOMDocument_Release(domdoc);
+ ISAXContentHandler_Release(content);
+ IMXWriter_Release(writer);
+
+ free_bstrs();
+}
+
static const char *encoding_names[] = {
"iso-8859-1",
"iso-8859-2",
@@ -4407,59 +4694,59 @@ static void test_mxwriter_encoding(void)
hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_encoding(writer, _bstr_("UTF-8"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_endDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* The content is always re-encoded to UTF-16 when the output is
* retrieved as a BSTR.
*/
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "Expected VT_BSTR, got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_("\r\n"), V_BSTR(&dest)),
+ ok(!lstrcmpW(L"\r\n", V_BSTR(&dest)),
"got wrong content: %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
/* switch encoding when something is written already */
hr = CreateStreamOnHGlobal(NULL, TRUE, &stream);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_UNKNOWN;
V_UNKNOWN(&dest) = (IUnknown*)stream;
hr = IMXWriter_put_output(writer, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_encoding(writer, _bstr_("UTF-8"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* write empty element */
hr = ISAXContentHandler_startElement(content, _bstr_(""), 0, _bstr_(""), 0, _bstr_("a"), 1, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_endElement(content, _bstr_(""), 0, _bstr_(""), 0, _bstr_("a"), 1);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* switch */
hr = IMXWriter_put_encoding(writer, _bstr_("UTF-16"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_flush(writer);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = GetHGlobalFromStream(stream, &g);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ptr = GlobalLock(g);
ok(!strncmp(ptr, "", 4), "got %c%c%c%c\n", ptr[0],ptr[1],ptr[2],ptr[3]);
@@ -4467,8 +4754,8 @@ static void test_mxwriter_encoding(void)
/* so output is unaffected, encoding name is stored however */
hr = IMXWriter_get_encoding(writer, &s);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(s, _bstr_("UTF-16")), "got %s\n", wine_dbgstr_w(s));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(s, L"UTF-16"), "got %s\n", wine_dbgstr_w(s));
SysFreeString(s);
IStream_Release(stream);
@@ -4480,12 +4767,12 @@ static void test_mxwriter_encoding(void)
char expectedA[200];
hr = CreateStreamOnHGlobal(NULL, TRUE, &stream);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_UNKNOWN;
V_UNKNOWN(&dest) = (IUnknown*)stream;
hr = IMXWriter_put_output(writer, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_encoding(writer, _bstr_(enc));
ok(hr == S_OK || broken(hr != S_OK) /* old win versions do not support certain encodings */,
@@ -4498,13 +4785,13 @@ static void test_mxwriter_encoding(void)
}
hr = ISAXContentHandler_startDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_endDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_flush(writer);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* prepare expected string */
*expectedA = 0;
@@ -4513,7 +4800,7 @@ static void test_mxwriter_encoding(void)
strcat(expectedA, "\" standalone=\"no\"?>\r\n");
hr = GetHGlobalFromStream(stream, &g);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ptr = GlobalLock(g);
ok(!strncmp(ptr, expectedA, strlen(expectedA)), "%s: got %s, expected %.50s\n", enc, ptr, expectedA);
@@ -4521,7 +4808,7 @@ static void test_mxwriter_encoding(void)
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_put_output(writer, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IStream_Release(stream);
@@ -4536,8 +4823,6 @@ static void test_mxwriter_encoding(void)
static void test_obj_dispex(IUnknown *obj)
{
- static const WCHAR testW[] = {'t','e','s','t','p','r','o','p',0};
- static const WCHAR starW[] = {'*',0};
DISPID dispid = DISPID_SAX_XMLREADER_GETFEATURE;
IDispatchEx *dispex;
IUnknown *unk;
@@ -4548,42 +4833,42 @@ static void test_obj_dispex(IUnknown *obj)
DISPID did;
hr = IUnknown_QueryInterface(obj, &IID_IDispatchEx, (void**)&dispex);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if (FAILED(hr)) return;
ticnt = 0;
hr = IDispatchEx_GetTypeInfoCount(dispex, &ticnt);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(ticnt == 1, "ticnt=%u\n", ticnt);
- name = SysAllocString(starW);
+ name = SysAllocString(L"*");
hr = IDispatchEx_DeleteMemberByName(dispex, name, fdexNameCaseSensitive);
- EXPECT_HR(hr, E_NOTIMPL);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
SysFreeString(name);
hr = IDispatchEx_DeleteMemberByDispID(dispex, dispid);
- EXPECT_HR(hr, E_NOTIMPL);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
props = 0;
hr = IDispatchEx_GetMemberProperties(dispex, dispid, grfdexPropCanAll, &props);
- EXPECT_HR(hr, E_NOTIMPL);
- ok(props == 0, "expected 0 got %d\n", props);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
+ ok(props == 0, "Unexpected value %ld.\n", props);
hr = IDispatchEx_GetMemberName(dispex, dispid, &name);
- EXPECT_HR(hr, E_NOTIMPL);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
if (SUCCEEDED(hr)) SysFreeString(name);
hr = IDispatchEx_GetNextDispID(dispex, fdexEnumDefault, DISPID_SAX_XMLREADER_GETFEATURE, &dispid);
- EXPECT_HR(hr, E_NOTIMPL);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
unk = (IUnknown*)0xdeadbeef;
hr = IDispatchEx_GetNameSpaceParent(dispex, &unk);
- EXPECT_HR(hr, E_NOTIMPL);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
ok(unk == (IUnknown*)0xdeadbeef, "got %p\n", unk);
- name = SysAllocString(testW);
+ name = SysAllocString(L"testprop");
hr = IDispatchEx_GetDispID(dispex, name, fdexNameEnsure, &did);
- ok(hr == DISP_E_UNKNOWNNAME, "got 0x%08x\n", hr);
+ ok(hr == DISP_E_UNKNOWNNAME, "Unexpected hr %#lx.\n", hr);
SysFreeString(name);
IDispatchEx_Release(dispex);
@@ -4601,17 +4886,22 @@ static void test_saxreader_dispex(void)
hr = CoCreateInstance(&CLSID_SAXXMLReader, NULL, CLSCTX_INPROC_SERVER,
&IID_ISAXXMLReader, (void**)&reader);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ check_interface(reader, &IID_ISAXXMLReader, TRUE);
+ check_interface(reader, &IID_IVBSAXXMLReader, TRUE);
+ check_interface(reader, &IID_IDispatch, TRUE);
+ check_interface(reader, &IID_IDispatchEx, TRUE);
hr = ISAXXMLReader_QueryInterface(reader, &IID_IUnknown, (void**)&unk);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
test_obj_dispex(unk);
IUnknown_Release(unk);
hr = ISAXXMLReader_QueryInterface(reader, &IID_IVBSAXXMLReader, (void**)&vbreader);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IVBSAXXMLReader_QueryInterface(vbreader, &IID_IUnknown, (void**)&unk);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
test_obj_dispex(unk);
IUnknown_Release(unk);
@@ -4634,7 +4924,7 @@ static void test_saxreader_dispex(void)
NULL,
NULL,
NULL);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IVBSAXXMLReader_Invoke(vbreader,
DISPID_SAX_XMLREADER_CONTENTHANDLER,
@@ -4645,7 +4935,7 @@ static void test_saxreader_dispex(void)
NULL,
NULL,
NULL);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IVBSAXXMLReader_Release(vbreader);
ISAXXMLReader_Release(reader);
@@ -4653,7 +4943,7 @@ static void test_saxreader_dispex(void)
if (is_clsid_supported(&CLSID_SAXXMLReader60, reader_support_data))
{
hr = CoCreateInstance(&CLSID_SAXXMLReader60, NULL, CLSCTX_INPROC_SERVER, &IID_IUnknown, (void**)&unk);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
test_obj_dispex(unk);
IUnknown_Release(unk);
}
@@ -4668,10 +4958,10 @@ static void test_mxwriter_dispex(void)
hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_IDispatchEx, (void**)&dispex);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDispatchEx_QueryInterface(dispex, &IID_IUnknown, (void**)&unk);
test_obj_dispex(unk);
IUnknown_Release(unk);
@@ -4681,7 +4971,7 @@ static void test_mxwriter_dispex(void)
if (is_clsid_supported(&CLSID_MXXMLWriter60, mxwriter_support_data))
{
hr = CoCreateInstance(&CLSID_MXXMLWriter60, NULL, CLSCTX_INPROC_SERVER, &IID_IUnknown, (void**)&unk);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
test_obj_dispex(unk);
IUnknown_Release(unk);
}
@@ -4689,7 +4979,6 @@ static void test_mxwriter_dispex(void)
static void test_mxwriter_comment(void)
{
- static const WCHAR commentW[] = {'c','o','m','m','e','n','t',0};
IVBSAXLexicalHandler *vblexical;
ISAXContentHandler *content;
ISAXLexicalHandler *lexical;
@@ -4699,47 +4988,47 @@ static void test_mxwriter_comment(void)
hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXLexicalHandler, (void**)&lexical);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_IVBSAXLexicalHandler, (void**)&vblexical);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXLexicalHandler_comment(lexical, NULL, 0);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IVBSAXLexicalHandler_comment(vblexical, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
- hr = ISAXLexicalHandler_comment(lexical, commentW, 0);
- EXPECT_HR(hr, S_OK);
+ hr = ISAXLexicalHandler_comment(lexical, L"comment", 0);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_("\r\n"), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ ok(!lstrcmpW(L"\r\n", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
- hr = ISAXLexicalHandler_comment(lexical, commentW, ARRAY_SIZE(commentW) - 1);
- EXPECT_HR(hr, S_OK);
+ hr = ISAXLexicalHandler_comment(lexical, L"comment", 7);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_("\r\n\r\n"), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ ok(!lstrcmpW(L"\r\n\r\n", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
ISAXContentHandler_Release(content);
@@ -4760,48 +5049,48 @@ static void test_mxwriter_cdata(void)
hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXLexicalHandler, (void**)&lexical);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_IVBSAXLexicalHandler, (void**)&vblexical);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXLexicalHandler_startCDATA(lexical);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_(" & \""), 7);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXLexicalHandler_endCDATA(lexical);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_(" & \"]]>"), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ ok(!lstrcmpW(L" & \"]]>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
ISAXContentHandler_Release(content);
@@ -4813,8 +5102,6 @@ static void test_mxwriter_cdata(void)
static void test_mxwriter_pi(void)
{
- static const WCHAR targetW[] = {'t','a','r','g','e','t',0};
- static const WCHAR dataW[] = {'d','a','t','a',0};
ISAXContentHandler *content;
IMXWriter *writer;
VARIANT dest;
@@ -4822,49 +5109,49 @@ static void test_mxwriter_pi(void)
hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_processingInstruction(content, NULL, 0, NULL, 0);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- hr = ISAXContentHandler_processingInstruction(content, targetW, 0, NULL, 0);
- EXPECT_HR(hr, S_OK);
+ hr = ISAXContentHandler_processingInstruction(content, L"target", 0, NULL, 0);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- hr = ISAXContentHandler_processingInstruction(content, targetW, 6, NULL, 0);
- EXPECT_HR(hr, S_OK);
+ hr = ISAXContentHandler_processingInstruction(content, L"target", 6, NULL, 0);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_("\?>\r\n\r\n"), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ ok(!lstrcmpW(L"\?>\r\n\r\n", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
- hr = ISAXContentHandler_processingInstruction(content, targetW, 4, dataW, 4);
- EXPECT_HR(hr, S_OK);
+ hr = ISAXContentHandler_processingInstruction(content, L"target", 4, L"data", 4);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_("\?>\r\n\r\n\r\n"), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ ok(!lstrcmpW(L"\?>\r\n\r\n\r\n", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_put_output(writer, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- hr = ISAXContentHandler_processingInstruction(content, targetW, 6, dataW, 0);
- EXPECT_HR(hr, S_OK);
+ hr = ISAXContentHandler_processingInstruction(content, L"target", 6, L"data", 0);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_("\r\n"), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ ok(!lstrcmpW(L"\r\n", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
@@ -4874,7 +5161,6 @@ static void test_mxwriter_pi(void)
static void test_mxwriter_ignorablespaces(void)
{
- static const WCHAR dataW[] = {'d','a','t','a',0};
ISAXContentHandler *content;
IMXWriter *writer;
VARIANT dest;
@@ -4882,28 +5168,28 @@ static void test_mxwriter_ignorablespaces(void)
hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_ignorableWhitespace(content, NULL, 0);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- hr = ISAXContentHandler_ignorableWhitespace(content, dataW, 0);
- EXPECT_HR(hr, S_OK);
+ hr = ISAXContentHandler_ignorableWhitespace(content, L"data", 0);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- hr = ISAXContentHandler_ignorableWhitespace(content, dataW, 4);
- EXPECT_HR(hr, S_OK);
+ hr = ISAXContentHandler_ignorableWhitespace(content, L"data", 4);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- hr = ISAXContentHandler_ignorableWhitespace(content, dataW, 1);
- EXPECT_HR(hr, S_OK);
+ hr = ISAXContentHandler_ignorableWhitespace(content, L"data", 1);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_("datad"), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ ok(!lstrcmpW(L"datad", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
ISAXContentHandler_Release(content);
@@ -4912,10 +5198,6 @@ static void test_mxwriter_ignorablespaces(void)
static void test_mxwriter_dtd(void)
{
- static const WCHAR contentW[] = {'c','o','n','t','e','n','t'};
- static const WCHAR nameW[] = {'n','a','m','e'};
- static const WCHAR pubW[] = {'p','u','b'};
- static const WCHAR sysW[] = {'s','y','s'};
IVBSAXLexicalHandler *vblexical;
ISAXContentHandler *content;
ISAXLexicalHandler *lexical;
@@ -4928,79 +5210,78 @@ static void test_mxwriter_dtd(void)
hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXWriter, (void**)&writer);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXLexicalHandler, (void**)&lexical);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXDeclHandler, (void**)&decl);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_IVBSAXDeclHandler, (void**)&vbdecl);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_IVBSAXLexicalHandler, (void**)&vblexical);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_omitXMLDeclaration(writer, VARIANT_TRUE);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startDocument(content);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXLexicalHandler_startDTD(lexical, NULL, 0, NULL, 0, NULL, 0);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IVBSAXLexicalHandler_startDTD(vblexical, NULL, NULL, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
- hr = ISAXLexicalHandler_startDTD(lexical, NULL, 0, pubW, ARRAY_SIZE(pubW), NULL, 0);
- EXPECT_HR(hr, E_INVALIDARG);
+ hr = ISAXLexicalHandler_startDTD(lexical, NULL, 0, L"pub", 3, NULL, 0);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- hr = ISAXLexicalHandler_startDTD(lexical, NULL, 0, NULL, 0, sysW, ARRAY_SIZE(sysW));
- EXPECT_HR(hr, E_INVALIDARG);
+ hr = ISAXLexicalHandler_startDTD(lexical, NULL, 0, NULL, 0, L"sys", 3);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- hr = ISAXLexicalHandler_startDTD(lexical, NULL, 0, pubW, ARRAY_SIZE(pubW), sysW, ARRAY_SIZE(sysW));
- EXPECT_HR(hr, E_INVALIDARG);
+ hr = ISAXLexicalHandler_startDTD(lexical, NULL, 0, L"pub", 3, L"sys", 3);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- hr = ISAXLexicalHandler_startDTD(lexical, nameW, ARRAY_SIZE(nameW), NULL, 0, NULL, 0);
- EXPECT_HR(hr, S_OK);
+ hr = ISAXLexicalHandler_startDTD(lexical, L"name", 4, NULL, 0, NULL, 0);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_("\r\n]>\r\n"),
@@ -5010,74 +5291,74 @@ static void test_mxwriter_dtd(void)
/* element declaration */
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_put_output(writer, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXDeclHandler_elementDecl(decl, NULL, 0, NULL, 0);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IVBSAXDeclHandler_elementDecl(vbdecl, NULL, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
- hr = ISAXDeclHandler_elementDecl(decl, nameW, ARRAY_SIZE(nameW), NULL, 0);
- EXPECT_HR(hr, E_INVALIDARG);
+ hr = ISAXDeclHandler_elementDecl(decl, L"name", 4, NULL, 0);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- hr = ISAXDeclHandler_elementDecl(decl, nameW, ARRAY_SIZE(nameW), contentW, ARRAY_SIZE(contentW));
- EXPECT_HR(hr, S_OK);
+ hr = ISAXDeclHandler_elementDecl(decl, L"name", 4, L"content", 7);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_("\r\n"),
+ ok(!lstrcmpW(L"\r\n",
V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_put_output(writer, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- hr = ISAXDeclHandler_elementDecl(decl, nameW, ARRAY_SIZE(nameW), contentW, 0);
- EXPECT_HR(hr, S_OK);
+ hr = ISAXDeclHandler_elementDecl(decl, L"name", 4, L"content", 0);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_("\r\n"),
+ ok(!lstrcmpW(L"\r\n",
V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
/* attribute declaration */
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_put_output(writer, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXDeclHandler_attributeDecl(decl, _bstr_("element"), strlen("element"),
_bstr_("attribute"), strlen("attribute"), _bstr_("CDATA"), strlen("CDATA"),
_bstr_("#REQUIRED"), strlen("#REQUIRED"), _bstr_("value"), strlen("value"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_("\r\n"),
+ ok(!lstrcmpW(L"\r\n",
V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
hr = ISAXDeclHandler_attributeDecl(decl, _bstr_("element"), strlen("element"),
_bstr_("attribute2"), strlen("attribute2"), _bstr_("CDATA"), strlen("CDATA"),
_bstr_("#REQUIRED"), strlen("#REQUIRED"), _bstr_("value2"), strlen("value2"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXDeclHandler_attributeDecl(decl, _bstr_("element2"), strlen("element2"),
_bstr_("attribute3"), strlen("attribute3"), _bstr_("CDATA"), strlen("CDATA"),
_bstr_("#REQUIRED"), strlen("#REQUIRED"), _bstr_("value3"), strlen("value3"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
ok(!lstrcmpW(_bstr_("\r\n"
"\r\n"
@@ -5088,58 +5369,58 @@ static void test_mxwriter_dtd(void)
/* internal entities */
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_put_output(writer, dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXDeclHandler_internalEntityDecl(decl, NULL, 0, NULL, 0);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IVBSAXDeclHandler_internalEntityDecl(vbdecl, NULL, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = ISAXDeclHandler_internalEntityDecl(decl, _bstr_("name"), -1, NULL, 0);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = ISAXDeclHandler_internalEntityDecl(decl, _bstr_("name"), strlen("name"), _bstr_("value"), strlen("value"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_("\r\n"), V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
+ ok(!lstrcmpW(L"\r\n", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
/* external entities */
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_put_output(writer, dest);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXDeclHandler_externalEntityDecl(decl, NULL, 0, NULL, 0, NULL, 0);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IVBSAXDeclHandler_externalEntityDecl(vbdecl, NULL, NULL, NULL);
- ok(hr == E_POINTER, "got 0x%08x\n", hr);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = ISAXDeclHandler_externalEntityDecl(decl, _bstr_("name"), 0, NULL, 0, NULL, 0);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = ISAXDeclHandler_externalEntityDecl(decl, _bstr_("name"), -1, NULL, 0, NULL, 0);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = ISAXDeclHandler_externalEntityDecl(decl, _bstr_("name"), strlen("name"), _bstr_("pubid"), strlen("pubid"),
_bstr_("sysid"), strlen("sysid"));
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\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);
+ ok(hr == S_OK, "Unexpected hr %#lx.\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);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
ok(!lstrcmpW(_bstr_(
"\r\n"
@@ -5150,29 +5431,29 @@ static void test_mxwriter_dtd(void)
/* notation declaration */
hr = IMXWriter_QueryInterface(writer, &IID_ISAXDTDHandler, (void**)&dtd);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_put_output(writer, dest);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXDTDHandler_notationDecl(dtd, NULL, 0, NULL, 0, NULL, 0);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = ISAXDTDHandler_notationDecl(dtd, _bstr_("name"), strlen("name"), NULL, 0, NULL, 0);
- ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\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);
+ ok(hr == S_OK, "Unexpected hr %#lx.\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);
+ ok(hr == S_OK, "Unexpected hr %#lx.\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);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_get_output(writer, &dest);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
ok(!lstrcmpW(_bstr_(
"clsid, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXAttributes, (void**)&mxattr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXAttributes_QueryInterface(mxattr, &IID_ISAXAttributes, (void**)&saxattr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* SAXAttributes40 and SAXAttributes60 both crash on this test */
if (IsEqualGUID(table->clsid, &CLSID_SAXAttributes) ||
IsEqualGUID(table->clsid, &CLSID_SAXAttributes30))
{
hr = ISAXAttributes_getLength(saxattr, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
}
len = -1;
hr = ISAXAttributes_getLength(saxattr, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(len == 0, "got %d\n", len);
hr = ISAXAttributes_getValue(saxattr, 0, &value, &len);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getValue(saxattr, 0, NULL, &len);
- ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getValue(saxattr, 0, &value, NULL);
- ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getValue(saxattr, 0, NULL, NULL);
- ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getType(saxattr, 0, &value, &len);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getType(saxattr, 0, NULL, &len);
- ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getType(saxattr, 0, &value, NULL);
- ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getType(saxattr, 0, NULL, NULL);
- ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IMXAttributes_addAttribute(mxattr, _bstr_(table->uri), _bstr_(table->local),
_bstr_(table->qname), _bstr_(table->type), _bstr_(table->value));
- ok(hr == table->hr, "%d: got 0x%08x, expected 0x%08x\n", i, hr, table->hr);
+ ok(hr == table->hr, "%d: got %#lx, expected %#lx.\n", i, hr, table->hr);
if (hr == S_OK)
{
@@ -5303,27 +5584,27 @@ static void test_mxattr_addAttribute(void)
IsEqualGUID(table->clsid, &CLSID_SAXAttributes30))
{
hr = ISAXAttributes_getValue(saxattr, 0, NULL, &len);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getValue(saxattr, 0, &value, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getValue(saxattr, 0, NULL, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getType(saxattr, 0, NULL, &len);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getType(saxattr, 0, &value, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getType(saxattr, 0, NULL, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
}
len = -1;
hr = ISAXAttributes_getValue(saxattr, 0, &value, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!lstrcmpW(_bstr_(table->value), value), "%d: got %s, expected %s\n", i, wine_dbgstr_w(value),
table->value);
ok(lstrlenW(value) == len, "%d: got wrong value length %d\n", i, len);
@@ -5331,7 +5612,7 @@ static void test_mxattr_addAttribute(void)
len = -1;
value = (void*)0xdeadbeef;
hr = ISAXAttributes_getType(saxattr, 0, &value, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if (table->type)
{
@@ -5349,95 +5630,95 @@ static void test_mxattr_addAttribute(void)
if (IsEqualGUID(table->clsid, &CLSID_SAXAttributes) ||
IsEqualGUID(table->clsid, &CLSID_SAXAttributes30))
{
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
}
else
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getIndexFromQName(saxattr, NULL, 0, &index);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
index = -1;
hr = ISAXAttributes_getIndexFromQName(saxattr, _bstr_("nonexistent"), 11, &index);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(index == -1, "%d: got wrong index %d\n", i, index);
index = -1;
hr = ISAXAttributes_getIndexFromQName(saxattr, _bstr_(table->qname), 0, &index);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(index == -1, "%d: got wrong index %d\n", i, index);
index = -1;
hr = ISAXAttributes_getIndexFromQName(saxattr, _bstr_(table->qname), strlen(table->qname), &index);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(index == 0, "%d: got wrong index %d\n", i, index);
index = -1;
hr = ISAXAttributes_getIndexFromQName(saxattr, _bstr_(table->qname), strlen(table->qname)-1, &index);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(index == -1, "%d: got wrong index %d\n", i, index);
if (IsEqualGUID(table->clsid, &CLSID_SAXAttributes40) ||
IsEqualGUID(table->clsid, &CLSID_SAXAttributes60))
{
hr = ISAXAttributes_getValueFromQName(saxattr, NULL, 0, NULL, NULL);
- ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getValueFromQName(saxattr, _bstr_(table->qname), 0, NULL, NULL);
- ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getValueFromQName(saxattr, _bstr_(table->qname), 0, &value, NULL);
- ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getValueFromName(saxattr, NULL, 0, NULL, 0, NULL, NULL);
- ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getValueFromName(saxattr, _bstr_(table->uri), 0, NULL, 0, NULL, NULL);
- ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getValueFromName(saxattr, _bstr_(table->uri), 0, NULL, 0, &value, NULL);
- ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok(hr == E_POINTER /* win8 */ || hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
}
else
{
hr = ISAXAttributes_getValueFromQName(saxattr, NULL, 0, NULL, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getValueFromQName(saxattr, _bstr_(table->qname), 0, NULL, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getValueFromQName(saxattr, _bstr_(table->qname), 0, &value, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
/* versions 4 and 6 crash */
hr = ISAXAttributes_getValueFromQName(saxattr, _bstr_(table->qname), strlen(table->qname), NULL, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getValueFromQName(saxattr, _bstr_(table->qname), strlen(table->qname), NULL, &len);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getValueFromName(saxattr, NULL, 0, NULL, 0, NULL, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getValueFromName(saxattr, _bstr_(table->uri), 0, NULL, 0, NULL, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getValueFromName(saxattr, _bstr_(table->uri), 0, NULL, 0, &value, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getValueFromName(saxattr, _bstr_(table->uri), 0, _bstr_(table->local), 0, &value, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getValueFromName(saxattr, _bstr_(table->uri), 0, _bstr_(table->local), 0, NULL, &len);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getValueFromName(saxattr, _bstr_(table->uri), strlen(table->uri), _bstr_(table->local),
strlen(table->local), NULL, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
}
hr = ISAXAttributes_getValueFromQName(saxattr, _bstr_(table->qname), strlen(table->qname), &value, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!lstrcmpW(_bstr_(table->value), value), "%d: got %s, expected %s\n", i, wine_dbgstr_w(value),
table->value);
ok(lstrlenW(value) == len, "%d: got wrong value length %d\n", i, len);
@@ -5445,7 +5726,7 @@ static void test_mxattr_addAttribute(void)
if (table->uri) {
hr = ISAXAttributes_getValueFromName(saxattr, _bstr_(table->uri), strlen(table->uri),
_bstr_(table->local), strlen(table->local), &value, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!lstrcmpW(_bstr_(table->value), value), "%d: got %s, expected %s\n", i, wine_dbgstr_w(value),
table->value);
ok(lstrlenW(value) == len, "%d: got wrong value length %d\n", i, len);
@@ -5454,7 +5735,7 @@ static void test_mxattr_addAttribute(void)
len = -1;
hr = ISAXAttributes_getLength(saxattr, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if (table->hr == S_OK)
ok(len == 1, "%d: got %d length, expected 1\n", i, len);
else
@@ -5480,57 +5761,57 @@ static void test_mxattr_clear(void)
hr = CoCreateInstance(&CLSID_SAXAttributes, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXAttributes, (void**)&mxattr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXAttributes_QueryInterface(mxattr, &IID_ISAXAttributes, (void**)&saxattr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getQName(saxattr, 0, NULL, NULL);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getQName(saxattr, 0, &ptr, &len);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IMXAttributes_clear(mxattr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXAttributes_addAttribute(mxattr, _bstr_("uri"), _bstr_("local"),
_bstr_("qname"), _bstr_("type"), _bstr_("value"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = -1;
hr = ISAXAttributes_getLength(saxattr, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(len == 1, "got %d\n", len);
len = -1;
hr = ISAXAttributes_getQName(saxattr, 0, NULL, &len);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
ok(len == -1, "got %d\n", len);
ptr = (void*)0xdeadbeef;
hr = ISAXAttributes_getQName(saxattr, 0, &ptr, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
ok(ptr == (void*)0xdeadbeef, "got %p\n", ptr);
len = 0;
hr = ISAXAttributes_getQName(saxattr, 0, &ptr, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(len == 5, "got %d\n", len);
- ok(!lstrcmpW(ptr, _bstr_("qname")), "got %s\n", wine_dbgstr_w(ptr));
+ ok(!lstrcmpW(ptr, L"qname"), "got %s\n", wine_dbgstr_w(ptr));
hr = IMXAttributes_clear(mxattr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = -1;
hr = ISAXAttributes_getLength(saxattr, &len);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(len == 0, "got %d\n", len);
len = -1;
ptr = (void*)0xdeadbeef;
hr = ISAXAttributes_getQName(saxattr, 0, &ptr, &len);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(len == -1, "got %d\n", len);
ok(ptr == (void*)0xdeadbeef, "got %p\n", ptr);
@@ -5548,10 +5829,10 @@ static void test_mxattr_dispex(void)
hr = CoCreateInstance(&CLSID_SAXAttributes, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXAttributes, (void**)&mxattr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXAttributes_QueryInterface(mxattr, &IID_IDispatchEx, (void**)&dispex);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDispatchEx_QueryInterface(dispex, &IID_IUnknown, (void**)&unk);
test_obj_dispex(unk);
IUnknown_Release(unk);
@@ -5562,40 +5843,20 @@ static void test_mxattr_dispex(void)
static void test_mxattr_qi(void)
{
- IVBSAXAttributes *vbsaxattr, *vbsaxattr2;
- ISAXAttributes *saxattr;
IMXAttributes *mxattr;
HRESULT hr;
hr = CoCreateInstance(&CLSID_SAXAttributes, NULL, CLSCTX_INPROC_SERVER,
- &IID_IMXAttributes, (void**)&mxattr);
- EXPECT_HR(hr, S_OK);
+ &IID_IMXAttributes, (void **)&mxattr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- EXPECT_REF(mxattr, 1);
- hr = IMXAttributes_QueryInterface(mxattr, &IID_ISAXAttributes, (void**)&saxattr);
- EXPECT_HR(hr, S_OK);
-
- EXPECT_REF(mxattr, 2);
- EXPECT_REF(saxattr, 2);
-
- hr = IMXAttributes_QueryInterface(mxattr, &IID_IVBSAXAttributes, (void**)&vbsaxattr);
- EXPECT_HR(hr, S_OK);
-
- EXPECT_REF(vbsaxattr, 3);
- EXPECT_REF(mxattr, 3);
- EXPECT_REF(saxattr, 3);
-
- hr = ISAXAttributes_QueryInterface(saxattr, &IID_IVBSAXAttributes, (void**)&vbsaxattr2);
- EXPECT_HR(hr, S_OK);
-
- EXPECT_REF(vbsaxattr, 4);
- EXPECT_REF(mxattr, 4);
- EXPECT_REF(saxattr, 4);
+ check_interface(mxattr, &IID_IMXAttributes, TRUE);
+ check_interface(mxattr, &IID_ISAXAttributes, TRUE);
+ check_interface(mxattr, &IID_IVBSAXAttributes, TRUE);
+ check_interface(mxattr, &IID_IDispatch, TRUE);
+ check_interface(mxattr, &IID_IDispatchEx, TRUE);
IMXAttributes_Release(mxattr);
- ISAXAttributes_Release(saxattr);
- IVBSAXAttributes_Release(vbsaxattr);
- IVBSAXAttributes_Release(vbsaxattr2);
}
static struct msxmlsupported_data_t saxattr_support_data[] =
@@ -5609,11 +5870,6 @@ static struct msxmlsupported_data_t saxattr_support_data[] =
static void test_mxattr_localname(void)
{
- static const WCHAR localname1W[] = {'l','o','c','a','l','n','a','m','e','1',0};
- static const WCHAR localnameW[] = {'l','o','c','a','l','n','a','m','e',0};
- static const WCHAR uri1W[] = {'u','r','i','1',0};
- static const WCHAR uriW[] = {'u','r','i',0};
-
const struct msxmlsupported_data_t *table = saxattr_support_data;
while (table->clsid)
@@ -5631,60 +5887,60 @@ static void test_mxattr_localname(void)
hr = CoCreateInstance(table->clsid, NULL, CLSCTX_INPROC_SERVER,
&IID_IMXAttributes, (void**)&mxattr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXAttributes_QueryInterface(mxattr, &IID_ISAXAttributes, (void**)&saxattr);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXAttributes_getIndexFromName(saxattr, NULL, 0, NULL, 0, &index);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- /* add some ambiguos attribute names */
+ /* add some ambiguous attribute names */
hr = IMXAttributes_addAttribute(mxattr, _bstr_("uri"), _bstr_("localname"),
_bstr_("a:localname"), _bstr_(""), _bstr_("value"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXAttributes_addAttribute(mxattr, _bstr_("uri"), _bstr_("localname"),
_bstr_("b:localname"), _bstr_(""), _bstr_("value"));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
index = -1;
- hr = ISAXAttributes_getIndexFromName(saxattr, uriW, lstrlenW(uriW), localnameW, lstrlenW(localnameW), &index);
- EXPECT_HR(hr, S_OK);
+ hr = ISAXAttributes_getIndexFromName(saxattr, L"uri", 3, L"localname", 9, &index);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(index == 0, "%s: got index %d\n", table->name, index);
index = -1;
- hr = ISAXAttributes_getIndexFromName(saxattr, uri1W, lstrlenW(uri1W), localnameW, lstrlenW(localnameW), &index);
- EXPECT_HR(hr, E_INVALIDARG);
+ hr = ISAXAttributes_getIndexFromName(saxattr, L"uri1", 4, L"localname", 9, &index);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(index == -1, "%s: got index %d\n", table->name, index);
index = -1;
- hr = ISAXAttributes_getIndexFromName(saxattr, uriW, lstrlenW(uriW), localname1W, lstrlenW(localname1W), &index);
- EXPECT_HR(hr, E_INVALIDARG);
+ hr = ISAXAttributes_getIndexFromName(saxattr, L"uri", 3, L"localname1", 10, &index);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(index == -1, "%s: got index %d\n", table->name, index);
if (IsEqualGUID(table->clsid, &CLSID_SAXAttributes) ||
IsEqualGUID(table->clsid, &CLSID_SAXAttributes30))
{
hr = ISAXAttributes_getIndexFromName(saxattr, NULL, 0, NULL, 0, NULL);
- EXPECT_HR(hr, E_POINTER);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
- hr = ISAXAttributes_getIndexFromName(saxattr, uriW, lstrlenW(uriW), localname1W, lstrlenW(localname1W), NULL);
- EXPECT_HR(hr, E_POINTER);
+ hr = ISAXAttributes_getIndexFromName(saxattr, L"uri", 3, L"localname1", 10, NULL);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
}
else
{
hr = ISAXAttributes_getIndexFromName(saxattr, NULL, 0, NULL, 0, NULL);
- EXPECT_HR(hr, E_INVALIDARG);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- hr = ISAXAttributes_getIndexFromName(saxattr, uriW, lstrlenW(uriW), localname1W, lstrlenW(localname1W), NULL);
- EXPECT_HR(hr, E_INVALIDARG);
+ hr = ISAXAttributes_getIndexFromName(saxattr, L"uri", 3, L"localname1", 10, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
}
- hr = ISAXAttributes_getIndexFromName(saxattr, uriW, lstrlenW(uriW), NULL, 0, &index);
- EXPECT_HR(hr, E_INVALIDARG);
+ hr = ISAXAttributes_getIndexFromName(saxattr, L"uri", 3, NULL, 0, &index);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
- hr = ISAXAttributes_getIndexFromName(saxattr, NULL, 0, localname1W, lstrlenW(localname1W), &index);
- EXPECT_HR(hr, E_INVALIDARG);
+ hr = ISAXAttributes_getIndexFromName(saxattr, NULL, 0, L"localname1", 10, &index);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
table++;
@@ -5702,46 +5958,46 @@ static void test_mxwriter_indent(void)
HRESULT hr;
hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (void**)&writer);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_put_indent(writer, VARIANT_TRUE);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_startDocument(content);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- hr = ISAXContentHandler_startElement(content, emptyW, 0, emptyW, 0, _bstr_("a"), -1, NULL);
- ok(hr == S_OK, "got %08x\n", hr);
+ hr = ISAXContentHandler_startElement(content, L"", 0, L"", 0, _bstr_("a"), -1, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_characters(content, _bstr_(""), 0);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- hr = ISAXContentHandler_startElement(content, emptyW, 0, emptyW, 0, _bstr_("b"), -1, NULL);
- ok(hr == S_OK, "got %08x\n", hr);
+ hr = ISAXContentHandler_startElement(content, L"", 0, L"", 0, _bstr_("b"), -1, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- hr = ISAXContentHandler_startElement(content, emptyW, 0, emptyW, 0, _bstr_("c"), -1, NULL);
- ok(hr == S_OK, "got %08x\n", hr);
+ hr = ISAXContentHandler_startElement(content, L"", 0, L"", 0, _bstr_("c"), -1, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- hr = ISAXContentHandler_endElement(content, emptyW, 0, emptyW, 0, _bstr_("c"), -1);
- ok(hr == S_OK, "got %08x\n", hr);
+ hr = ISAXContentHandler_endElement(content, L"", 0, L"", 0, _bstr_("c"), -1);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- hr = ISAXContentHandler_endElement(content, emptyW, 0, emptyW, 0, _bstr_("b"), -1);
- ok(hr == S_OK, "got %08x\n", hr);
+ hr = ISAXContentHandler_endElement(content, L"", 0, L"", 0, _bstr_("b"), -1);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- hr = ISAXContentHandler_endElement(content, emptyW, 0, emptyW, 0, _bstr_("a"), -1);
- ok(hr == S_OK, "got %08x\n", hr);
+ hr = ISAXContentHandler_endElement(content, L"", 0, L"", 0, _bstr_("a"), -1);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = ISAXContentHandler_endDocument(content);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&dest) = VT_EMPTY;
hr = IMXWriter_get_output(writer, &dest);
- ok(hr == S_OK, "got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
- ok(!lstrcmpW(_bstr_("\r\n\r\n\t\t\r\n\t\r\n"), V_BSTR(&dest)),
+ ok(!lstrcmpW(L"\r\n\r\n\t\t\r\n\t\r\n", V_BSTR(&dest)),
"got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
VariantClear(&dest);
@@ -5796,6 +6052,7 @@ START_TEST(saxreader)
test_mxwriter_properties();
test_mxwriter_flush();
test_mxwriter_stream();
+ test_mxwriter_domdoc();
test_mxwriter_encoding();
test_mxwriter_dispex();
test_mxwriter_indent();
diff --git a/modules/rostests/winetests/msxml3/schema.c b/modules/rostests/winetests/msxml3/schema.c
index bf2922f09c3..50e5a743b82 100644
--- a/modules/rostests/winetests/msxml3/schema.c
+++ b/modules/rostests/winetests/msxml3/schema.c
@@ -34,12 +34,9 @@
#include "wine/test.h"
-#define EXPECT_HR(hr,hr_exp) \
- ok(hr == hr_exp, "got 0x%08x, expected 0x%08x\n", hr, hr_exp)
-
-static const CHAR xdr_schema1_uri[] = "x-schema:test1.xdr";
-static const CHAR xdr_schema1_xml[] =
-""
+static const WCHAR xdr_schema1_uri[] = L"x-schema:test1.xdr";
+static const WCHAR xdr_schema1_xml[] =
+L""
""
@@ -55,9 +52,9 @@ static const CHAR xdr_schema1_xml[] =
" "
"";
-static const CHAR xdr_schema2_uri[] = "x-schema:test2.xdr";
-static const CHAR xdr_schema2_xml[] =
-""
+static const WCHAR xdr_schema2_uri[] = L"x-schema:test2.xdr";
+static const WCHAR xdr_schema2_xml[] =
+L""
""
@@ -71,9 +68,9 @@ static const CHAR xdr_schema2_xml[] =
" "
"";
-static const CHAR xdr_schema3_uri[] = "x-schema:test3.xdr";
-static const CHAR xdr_schema3_xml[] =
-""
+static const WCHAR xdr_schema3_uri[] = L"x-schema:test3.xdr";
+static const WCHAR xdr_schema3_xml[] =
+L""
""
@@ -87,50 +84,10 @@ static const CHAR xdr_schema3_xml[] =
" "
"";
-static const CHAR xsd_schema1_uri[] = "x-schema:test1.xsd";
-static const CHAR xsd_schema1_xml[] =
-""
-""
-" "
-" "
-" "
-" "
-" "
-" "
-" "
-"";
+static const WCHAR xsd_schema1_uri[] = L"x-schema:test1.xsd";
-static const CHAR xsd_schema2_uri[] = "x-schema:test2.xsd";
-static const CHAR xsd_schema2_xml[] =
-""
-""
-" "
-" "
-" "
-" "
-" "
-" "
-" "
-"";
-
-static const CHAR xsd_schema3_uri[] = "x-schema:test3.xsd";
-static const CHAR xsd_schema3_xml[] =
-""
-""
-" "
-" "
-" "
-" "
-" "
-" "
-" "
-"";
-
-static const CHAR szDatatypeXDR[] =
-"\n"
" \n"
" \n"
@@ -205,8 +162,8 @@ static const CHAR szDatatypeXDR[] =
" \n"
"";
-static const CHAR szDatatypeXML[] =
-"\n"
+static const WCHAR szDatatypeXML[] =
+L"\n"
"\n"
" \n"
" testBase64\n"
@@ -378,8 +335,8 @@ static const CHAR szDatatypeXML[] =
" \n"
"";
-static const CHAR szOpenSeqXDR[] =
-"\n"
+static const WCHAR szOpenSeqXDR[] =
+L"\n"
" \n"
" \n"
" \n"
@@ -395,31 +352,15 @@ static const CHAR szOpenSeqXDR[] =
" \n"
"";
-static const CHAR szOpenSeqXML1[] = "";
-static const CHAR szOpenSeqXML2[] = "";
-static const CHAR szOpenSeqXML3[] = "";
-static const CHAR szOpenSeqXML4[] = "";
+static const WCHAR szOpenSeqXML1[] = L"";
+static const WCHAR szOpenSeqXML2[] = L"";
+static const WCHAR szOpenSeqXML3[] = L"";
+static const WCHAR szOpenSeqXML4[] = L"";
-#define check_ref_expr(expr, n) { \
- LONG ref = expr; \
- ok(ref == n, "expected %i refs, got %i\n", n, ref); \
-}
-
-#define check_refs(iface, obj, n) { \
- LONG ref = iface ## _AddRef(obj); \
- ok(ref == n+1, "expected %i refs, got %i\n", n+1, ref); \
- ref = iface ## _Release(obj); \
- ok(ref == n, "expected %i refs, got %i\n", n, ref); \
-}
-
-#define ole_check(expr) { \
- HRESULT r = expr; \
- ok(r == S_OK, #expr " returned %x\n", r); \
-}
-
-#define ole_expect(expr, expect) { \
- HRESULT r = expr; \
- ok(r == (expect), #expr " returned %x, expected %x\n", r, expect); \
+static ULONG get_refcount(void *iface)
+{
+ IUnknown_AddRef((IUnknown *)iface);
+ return IUnknown_Release((IUnknown *)iface);
}
#define _expect64(expr, str, base, TYPE, CONV) { \
@@ -429,29 +370,16 @@ static const CHAR szOpenSeqXML4[] = "";
wine_dbgstr_longlong(v1), wine_dbgstr_longlong(v2)); \
}
-#ifdef __REACTOS__
-#define expect_int64(expr, x, base) _expect64(expr, #x, base, LONG64, _strtoi64)
-#define expect_uint64(expr, x, base) _expect64(expr, #x, base, ULONG64, _strtoui64)
-#else
#define expect_int64(expr, x, base) _expect64(expr, #x, base, LONG64, strtoll)
#define expect_uint64(expr, x, base) _expect64(expr, #x, base, ULONG64, strtoull)
-#endif
static BSTR alloced_bstrs[256];
static int alloced_bstrs_count;
-static BSTR alloc_str_from_narrow(const char *str)
-{
- int len = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
- BSTR ret = SysAllocStringLen(NULL, len - 1); /* NUL character added automatically */
- MultiByteToWideChar(CP_ACP, 0, str, -1, ret, len);
- return ret;
-}
-
-static BSTR _bstr_(const char *str)
+static BSTR _bstr_(const WCHAR *str)
{
assert(alloced_bstrs_count < ARRAY_SIZE(alloced_bstrs));
- alloced_bstrs[alloced_bstrs_count] = alloc_str_from_narrow(str);
+ alloced_bstrs[alloced_bstrs_count] = SysAllocString(str);
return alloced_bstrs[alloced_bstrs_count++];
}
@@ -478,7 +406,7 @@ static void* _create_object(const GUID *clsid, const char *name, const IID *iid,
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);
+ win_skip_(__FILE__,line)("failed to create %s instance: hr %#lx.\n", name, hr);
return obj;
}
@@ -500,10 +428,10 @@ static void test_schema_refs(void)
IXMLDOMDocument2 *doc;
IXMLDOMNode *node;
IXMLDOMSchemaCollection *cache;
+ LONG len, refcount;
VARIANT v;
VARIANT_BOOL b;
BSTR str;
- LONG len;
HRESULT hr;
doc = create_document(&IID_IXMLDOMDocument2);
@@ -519,156 +447,190 @@ static void test_schema_refs(void)
VariantInit(&v);
str = SysAllocString(xdr_schema_xml);
- ole_check(IXMLDOMDocument2_loadXML(doc, str, &b));
+ hr = IXMLDOMDocument2_loadXML(doc, str, &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "b %04x\n", b);
SysFreeString(str);
node = (void*)0xdeadbeef;
- ole_check(IXMLDOMSchemaCollection_get(cache, NULL, &node));
+ hr = IXMLDOMSchemaCollection_get(cache, NULL, &node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(node == NULL, "%p\n", node);
/* NULL uri pointer, still adds a document */
- ole_check(IXMLDOMSchemaCollection_add(cache, NULL, _variantdoc_(doc)));
+ hr = IXMLDOMSchemaCollection_add(cache, NULL, _variantdoc_(doc));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = -1;
- ole_check(IXMLDOMSchemaCollection_get_length(cache, &len));
- ok(len == 1, "got %d\n", len);
+ hr = IXMLDOMSchemaCollection_get_length(cache, &len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(len == 1, "Unexpected length %ld.\n", len);
/* read back - empty valid BSTR */
str = NULL;
- ole_check(IXMLDOMSchemaCollection_get_namespaceURI(cache, 0, &str));
+ hr = IXMLDOMSchemaCollection_get_namespaceURI(cache, 0, &str);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(str && *str == 0, "got %p\n", str);
SysFreeString(str);
node = NULL;
- ole_check(IXMLDOMSchemaCollection_get(cache, NULL, &node));
+ hr = IXMLDOMSchemaCollection_get(cache, NULL, &node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(node != NULL, "%p\n", node);
-#if __REACTOS__
- if (node)
-#endif
IXMLDOMNode_Release(node);
node = NULL;
str = SysAllocString(L"");
- ole_check(IXMLDOMSchemaCollection_get(cache, str, &node));
+ hr = IXMLDOMSchemaCollection_get(cache, str, &node);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(node != NULL, "%p\n", node);
-#if __REACTOS__
- if (node)
-#endif
IXMLDOMNode_Release(node);
SysFreeString(str);
/* remove with NULL uri */
- ole_check(IXMLDOMSchemaCollection_remove(cache, NULL));
+ hr = IXMLDOMSchemaCollection_remove(cache, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
len = -1;
- ole_check(IXMLDOMSchemaCollection_get_length(cache, &len));
- ok(len == 0, "got %d\n", len);
+ hr = IXMLDOMSchemaCollection_get_length(cache, &len);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(len == 0, "Unexpected length %ld.\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);
+ ok(hr == S_OK, "Unexpected hr %#lx.\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);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(len == 1, "Unexpected length %ld.\n", len);
hr = IXMLDOMSchemaCollection_remove(cache, NULL);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\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);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(len == 0, "Unexpected length %ld.\n", len);
str = SysAllocString(L"x-schema:test.xml");
- ole_check(IXMLDOMSchemaCollection_add(cache, str, _variantdoc_(doc)));
+ hr = IXMLDOMSchemaCollection_add(cache, str, _variantdoc_(doc));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* IXMLDOMSchemaCollection_add doesn't add a ref on doc */
- check_refs(IXMLDOMDocument2, doc, 1);
+ refcount = get_refcount(doc);
+ ok(refcount == 1, "Unexpected refcount %ld.\n", refcount);
SysFreeString(str);
V_VT(&v) = VT_INT;
- ole_expect(IXMLDOMDocument2_get_schemas(doc, &v), S_FALSE);
+ hr = IXMLDOMDocument2_get_schemas(doc, &v);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&v) == VT_NULL, "vt %x\n", V_VT(&v));
- check_ref_expr(IXMLDOMSchemaCollection_AddRef(cache), 2);
+ refcount = IXMLDOMSchemaCollection_AddRef(cache);
+ ok(refcount == 2, "Unexpected refcount %ld.\n", refcount);
V_VT(&v) = VT_DISPATCH;
V_DISPATCH(&v) = (IDispatch*)cache;
/* check that putref_schemas takes a ref */
- ole_check(IXMLDOMDocument2_putref_schemas(doc, v));
- check_refs(IXMLDOMSchemaCollection, cache, 3);
+ hr = IXMLDOMDocument2_putref_schemas(doc, v);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ refcount = get_refcount(cache);
+ ok(refcount == 3, "Unexpected refcount %ld.\n", refcount);
VariantClear(&v); /* refs now 2 */
V_VT(&v) = VT_INT;
/* check that get_schemas adds a ref */
- ole_check(IXMLDOMDocument2_get_schemas(doc, &v));
+ hr = IXMLDOMDocument2_get_schemas(doc, &v);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&v) == VT_DISPATCH, "vt %x\n", V_VT(&v));
- check_refs(IXMLDOMSchemaCollection, cache, 3);
+ refcount = get_refcount(cache);
+ ok(refcount == 3, "Unexpected refcount %ld.\n", refcount);
/* get_schemas doesn't release a ref if passed VT_DISPATCH - ie it doesn't call VariantClear() */
- ole_check(IXMLDOMDocument2_get_schemas(doc, &v));
+ hr = IXMLDOMDocument2_get_schemas(doc, &v);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&v) == VT_DISPATCH, "vt %x\n", V_VT(&v));
- check_refs(IXMLDOMSchemaCollection, cache, 4);
+ refcount = get_refcount(cache);
+ ok(refcount == 4, "Unexpected refcount %ld.\n", refcount);
/* release the two refs returned by get_schemas */
- check_ref_expr(IXMLDOMSchemaCollection_Release(cache), 3);
- check_ref_expr(IXMLDOMSchemaCollection_Release(cache), 2);
+ refcount = IXMLDOMSchemaCollection_Release(cache);
+ ok(refcount == 3, "Unexpected refcount %ld.\n", refcount);
+ refcount = IXMLDOMSchemaCollection_Release(cache);
+ ok(refcount == 2, "Unexpected refcount %ld.\n", refcount);
/* check that taking another ref on the document doesn't change the schema's ref count */
- check_ref_expr(IXMLDOMDocument2_AddRef(doc), 2);
- check_refs(IXMLDOMSchemaCollection, cache, 2);
- check_ref_expr(IXMLDOMDocument2_Release(doc), 1);
+ refcount = IXMLDOMDocument2_AddRef(doc);
+ ok(refcount == 2, "Unexpected refcount %ld.\n", refcount);
+ refcount = get_refcount(cache);
+ ok(refcount == 2, "Unexpected refcount %ld.\n", refcount);
+ refcount = IXMLDOMDocument2_Release(doc);
+ ok(refcount == 1, "Unexpected refcount %ld.\n", refcount);
/* call putref_schema with some odd variants */
V_VT(&v) = VT_INT;
- ole_expect(IXMLDOMDocument2_putref_schemas(doc, v), E_FAIL);
- check_refs(IXMLDOMSchemaCollection, cache, 2);
+ hr = IXMLDOMDocument2_putref_schemas(doc, v);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
+ refcount = get_refcount(cache);
+ ok(refcount == 2, "Unexpected refcount %ld.\n", refcount);
/* calling with VT_EMPTY releases the schema */
V_VT(&v) = VT_EMPTY;
- ole_check(IXMLDOMDocument2_putref_schemas(doc, v));
- check_refs(IXMLDOMSchemaCollection, cache, 1);
+ hr = IXMLDOMDocument2_putref_schemas(doc, v);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ refcount = get_refcount(cache);
+ ok(refcount == 1, "Unexpected refcount %ld.\n", refcount);
/* try setting with VT_UNKNOWN */
- check_ref_expr(IXMLDOMSchemaCollection_AddRef(cache), 2);
+ refcount = IXMLDOMSchemaCollection_AddRef(cache);
+ ok(refcount == 2, "Unexpected refcount %ld.\n", refcount);
V_VT(&v) = VT_UNKNOWN;
V_UNKNOWN(&v) = (IUnknown*)cache;
- ole_check(IXMLDOMDocument2_putref_schemas(doc, v));
- check_refs(IXMLDOMSchemaCollection, cache, 3);
+ hr = IXMLDOMDocument2_putref_schemas(doc, v);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ refcount = get_refcount(cache);
+ ok(refcount == 3, "Unexpected refcount %ld.\n", refcount);
VariantClear(&v); /* refs now 2 */
/* calling with VT_NULL releases the schema */
V_VT(&v) = VT_NULL;
- ole_check(IXMLDOMDocument2_putref_schemas(doc, v));
- check_refs(IXMLDOMSchemaCollection, cache, 1);
+ hr = IXMLDOMDocument2_putref_schemas(doc, v);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ refcount = get_refcount(cache);
+ ok(refcount == 1, "Unexpected refcount %ld.\n", refcount);
/* refs now 1 */
/* set again */
- check_ref_expr(IXMLDOMSchemaCollection_AddRef(cache), 2);
+ refcount = IXMLDOMSchemaCollection_AddRef(cache);
+ ok(refcount == 2, "Unexpected refcount %ld.\n", refcount);
V_VT(&v) = VT_UNKNOWN;
V_UNKNOWN(&v) = (IUnknown*)cache;
- ole_check(IXMLDOMDocument2_putref_schemas(doc, v));
- check_refs(IXMLDOMSchemaCollection, cache, 3);
+ hr = IXMLDOMDocument2_putref_schemas(doc, v);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ refcount = get_refcount(cache);
+ ok(refcount == 3, "Unexpected refcount %ld.\n", refcount);
VariantClear(&v); /* refs now 2 */
/* release the final ref on the doc which should release its ref on the schema */
- check_ref_expr(IXMLDOMDocument2_Release(doc), 0);
+ refcount = IXMLDOMDocument2_Release(doc);
+ ok(!refcount, "Unexpected refcount %ld.\n", refcount);
- check_refs(IXMLDOMSchemaCollection, cache, 1);
- check_ref_expr(IXMLDOMSchemaCollection_Release(cache), 0);
+ refcount = get_refcount(cache);
+ ok(refcount == 1, "Unexpected refcount %ld.\n", refcount);
+ refcount = IXMLDOMSchemaCollection_Release(cache);
+ ok(!refcount, "Unexpected refcount %ld.\n", refcount);
}
static void test_collection_refs(void)
{
IXMLDOMDocument2 *schema1, *schema2, *schema3;
IXMLDOMSchemaCollection *cache1, *cache2, *cache3;
+ LONG refcount, length;
VARIANT_BOOL b;
- LONG length;
+ HRESULT hr;
schema1 = create_document(&IID_IXMLDOMDocument2);
ok(schema1 != NULL, "Failed to create a document.\n");
@@ -691,93 +653,166 @@ static void test_collection_refs(void)
cache2 = create_cache(&IID_IXMLDOMSchemaCollection);
cache3 = create_cache(&IID_IXMLDOMSchemaCollection);
- ole_check(IXMLDOMDocument2_loadXML(schema1, _bstr_(xdr_schema1_xml), &b));
+ hr = IXMLDOMDocument2_loadXML(schema1, _bstr_(xdr_schema1_xml), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML\n");
- ole_check(IXMLDOMDocument2_loadXML(schema2, _bstr_(xdr_schema2_xml), &b));
+ hr = IXMLDOMDocument2_loadXML(schema2, _bstr_(xdr_schema2_xml), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML\n");
- ole_check(IXMLDOMDocument2_loadXML(schema3, _bstr_(xdr_schema3_xml), &b));
+ hr = IXMLDOMDocument2_loadXML(schema3, _bstr_(xdr_schema3_xml), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML\n");
- ole_check(IXMLDOMSchemaCollection_add(cache1, _bstr_(xdr_schema1_uri), _variantdoc_(schema1)));
- ole_check(IXMLDOMSchemaCollection_add(cache2, _bstr_(xdr_schema2_uri), _variantdoc_(schema2)));
- ole_check(IXMLDOMSchemaCollection_add(cache3, _bstr_(xdr_schema3_uri), _variantdoc_(schema3)));
+ hr = IXMLDOMSchemaCollection_add(cache1, _bstr_(xdr_schema1_uri), _variantdoc_(schema1));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMSchemaCollection_add(cache2, _bstr_(xdr_schema2_uri), _variantdoc_(schema2));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMSchemaCollection_add(cache3, _bstr_(xdr_schema3_uri), _variantdoc_(schema3));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- check_ref_expr(IXMLDOMDocument2_Release(schema1), 0);
- check_ref_expr(IXMLDOMDocument2_Release(schema2), 0);
- check_ref_expr(IXMLDOMDocument2_Release(schema3), 0);
+ refcount = IXMLDOMDocument2_Release(schema1);
+ ok(!refcount, "Unexpected refcount %ld.\n", refcount);
+ refcount = IXMLDOMDocument2_Release(schema2);
+ ok(!refcount, "Unexpected refcount %ld.\n", refcount);
+ refcount = IXMLDOMDocument2_Release(schema3);
+ ok(!refcount, "Unexpected refcount %ld.\n", refcount);
schema1 = NULL;
schema2 = NULL;
schema3 = NULL;
/* releasing the original doc does not affect the schema cache */
- ole_check(IXMLDOMSchemaCollection_get(cache1, _bstr_(xdr_schema1_uri), (IXMLDOMNode**)&schema1));
- ole_check(IXMLDOMSchemaCollection_get(cache2, _bstr_(xdr_schema2_uri), (IXMLDOMNode**)&schema2));
- ole_check(IXMLDOMSchemaCollection_get(cache3, _bstr_(xdr_schema3_uri), (IXMLDOMNode**)&schema3));
+ hr = IXMLDOMSchemaCollection_get(cache1, _bstr_(xdr_schema1_uri), (IXMLDOMNode**)&schema1);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMSchemaCollection_get(cache2, _bstr_(xdr_schema2_uri), (IXMLDOMNode**)&schema2);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMSchemaCollection_get(cache3, _bstr_(xdr_schema3_uri), (IXMLDOMNode**)&schema3);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* we get a read-only domdoc interface, created just for us */
- if (schema1) check_refs(IXMLDOMDocument2, schema1, 1);
- if (schema2) check_refs(IXMLDOMDocument2, schema2, 1);
- if (schema3) check_refs(IXMLDOMDocument2, schema3, 1);
+ if (schema1)
+ {
+ refcount = get_refcount(schema1);
+ ok(refcount == 1, "Unexpected refcount %ld.\n", refcount);
+ }
- ole_expect(IXMLDOMSchemaCollection_addCollection(cache1, NULL), E_POINTER);
- ole_check(IXMLDOMSchemaCollection_addCollection(cache2, cache1));
- ole_check(IXMLDOMSchemaCollection_addCollection(cache3, cache2));
+ if (schema2)
+ {
+ refcount = get_refcount(schema2);
+ ok(refcount == 1, "Unexpected refcount %ld.\n", refcount);
+ }
+
+ if (schema3)
+ {
+ refcount = get_refcount(schema3);
+ ok(refcount == 1, "Unexpected refcount %ld.\n", refcount);
+ }
+
+ hr = IXMLDOMSchemaCollection_addCollection(cache1, NULL);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMSchemaCollection_addCollection(cache2, cache1);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMSchemaCollection_addCollection(cache3, cache2);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
length = -1;
- ole_check(IXMLDOMSchemaCollection_get_length(cache1, &length));
- ok(length == 1, "expected length 1, got %i\n", length);
+ hr = IXMLDOMSchemaCollection_get_length(cache1, &length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 1, "Unexpected length %ld.\n", length);
length = -1;
- ole_check(IXMLDOMSchemaCollection_get_length(cache2, &length));
- ok(length == 2, "expected length 2, got %i\n", length);
+ hr = IXMLDOMSchemaCollection_get_length(cache2, &length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 2, "Unexpected length %ld.\n", length);
length = -1;
- ole_check(IXMLDOMSchemaCollection_get_length(cache3, &length));
- ok(length == 3, "expected length 3, got %i\n", length);
-
+ hr = IXMLDOMSchemaCollection_get_length(cache3, &length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 3, "Unexpected length %ld.\n", length);
/* merging collections does not affect the ref count */
- check_refs(IXMLDOMSchemaCollection, cache1, 1);
- check_refs(IXMLDOMSchemaCollection, cache2, 1);
- check_refs(IXMLDOMSchemaCollection, cache3, 1);
+ refcount = get_refcount(cache1);
+ ok(refcount == 1, "Unexpected refcount %ld.\n", refcount);
+ refcount = get_refcount(cache2);
+ ok(refcount == 1, "Unexpected refcount %ld.\n", refcount);
+ refcount = get_refcount(cache3);
+ ok(refcount == 1, "Unexpected refcount %ld.\n", refcount);
/* nor does it affect the domdoc instances */
- if (schema1) check_refs(IXMLDOMDocument2, schema1, 1);
- if (schema2) check_refs(IXMLDOMDocument2, schema2, 1);
- if (schema3) check_refs(IXMLDOMDocument2, schema3, 1);
+ if (schema1)
+ {
+ refcount = IXMLDOMDocument2_Release(schema1);
+ ok(!refcount, "Unexpected refcount %ld.\n", refcount);
+ }
+
+ if (schema2)
+ {
+ refcount = IXMLDOMDocument2_Release(schema2);
+ ok(!refcount, "Unexpected refcount %ld.\n", refcount);
+ }
+
+ if (schema3)
+ {
+ refcount = IXMLDOMDocument2_Release(schema3);
+ ok(!refcount, "Unexpected refcount %ld.\n", refcount);
+ }
- if (schema1) check_ref_expr(IXMLDOMDocument2_Release(schema1), 0);
- if (schema2) check_ref_expr(IXMLDOMDocument2_Release(schema2), 0);
- if (schema3) check_ref_expr(IXMLDOMDocument2_Release(schema3), 0);
schema1 = NULL;
schema2 = NULL;
schema3 = NULL;
/* releasing the domdoc instances doesn't change the cache */
- ole_check(IXMLDOMSchemaCollection_get(cache1, _bstr_(xdr_schema1_uri), (IXMLDOMNode**)&schema1));
- ole_check(IXMLDOMSchemaCollection_get(cache2, _bstr_(xdr_schema2_uri), (IXMLDOMNode**)&schema2));
- ole_check(IXMLDOMSchemaCollection_get(cache3, _bstr_(xdr_schema3_uri), (IXMLDOMNode**)&schema3));
+ hr = IXMLDOMSchemaCollection_get(cache1, _bstr_(xdr_schema1_uri), (IXMLDOMNode**)&schema1);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMSchemaCollection_get(cache2, _bstr_(xdr_schema2_uri), (IXMLDOMNode**)&schema2);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMSchemaCollection_get(cache3, _bstr_(xdr_schema3_uri), (IXMLDOMNode**)&schema3);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* we can just get them again */
- if (schema1) check_refs(IXMLDOMDocument2, schema1, 1);
- if (schema2) check_refs(IXMLDOMDocument2, schema2, 1);
- if (schema3) check_refs(IXMLDOMDocument2, schema3, 1);
+ if (schema1)
+ {
+ refcount = get_refcount(schema1);
+ ok(refcount == 1, "Unexpected refcount %ld.\n", refcount);
+ }
+
+ if (schema2)
+ {
+ refcount = get_refcount(schema2);
+ ok(refcount == 1, "Unexpected refcount %ld.\n", refcount);
+ }
+
+ if (schema3)
+ {
+ refcount = get_refcount(schema3);
+ ok(refcount == 1, "Unexpected refcount %ld.\n", refcount);
+ }
/* releasing the caches does not affect the domdoc instances */
- check_ref_expr(IXMLDOMSchemaCollection_Release(cache1), 0);
- check_ref_expr(IXMLDOMSchemaCollection_Release(cache2), 0);
- check_ref_expr(IXMLDOMSchemaCollection_Release(cache3), 0);
+ refcount = IXMLDOMSchemaCollection_Release(cache1);
+ ok(!refcount, "Unexpected refcount %ld.\n", refcount);
+ refcount = IXMLDOMSchemaCollection_Release(cache2);
+ ok(!refcount, "Unexpected refcount %ld.\n", refcount);
+ refcount = IXMLDOMSchemaCollection_Release(cache3);
+ ok(!refcount, "Unexpected refcount %ld.\n", refcount);
/* they're just for us */
- if (schema1) check_refs(IXMLDOMDocument2, schema1, 1);
- if (schema2) check_refs(IXMLDOMDocument2, schema2, 1);
- if (schema3) check_refs(IXMLDOMDocument2, schema3, 1);
-
- if (schema1) check_ref_expr(IXMLDOMDocument2_Release(schema1), 0);
- if (schema2) check_ref_expr(IXMLDOMDocument2_Release(schema2), 0);
- if (schema3) check_ref_expr(IXMLDOMDocument2_Release(schema3), 0);
+ if (schema1)
+ {
+ refcount = IXMLDOMDocument2_Release(schema1);
+ ok(!refcount, "Unexpected refcount %ld.\n", refcount);
+ }
+ if (schema2)
+ {
+ refcount = IXMLDOMDocument2_Release(schema2);
+ ok(!refcount, "Unexpected refcount %ld.\n", refcount);
+ }
+ if (schema3)
+ {
+ refcount = IXMLDOMDocument2_Release(schema3);
+ ok(!refcount, "Unexpected refcount %ld.\n", refcount);
+ }
free_bstrs();
}
@@ -787,6 +822,7 @@ static void test_length(void)
IXMLDOMDocument2 *schema1, *schema2, *schema3;
IXMLDOMSchemaCollection *cache;
VARIANT_BOOL b;
+ HRESULT hr;
VARIANT v;
LONG length;
@@ -809,62 +845,81 @@ static void test_length(void)
VariantInit(&v);
- ole_check(IXMLDOMDocument2_loadXML(schema1, _bstr_(xdr_schema1_xml), &b));
+ hr = IXMLDOMDocument2_loadXML(schema1, _bstr_(xdr_schema1_xml), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML\n");
- ole_check(IXMLDOMDocument2_loadXML(schema2, _bstr_(xdr_schema2_xml), &b));
+ hr = IXMLDOMDocument2_loadXML(schema2, _bstr_(xdr_schema2_xml), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML\n");
- ole_check(IXMLDOMDocument2_loadXML(schema3, _bstr_(xdr_schema3_xml), &b));
+ hr = IXMLDOMDocument2_loadXML(schema3, _bstr_(xdr_schema3_xml), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML\n");
- ole_expect(IXMLDOMSchemaCollection_get_length(cache, NULL), E_POINTER);
+ hr = IXMLDOMSchemaCollection_get_length(cache, NULL);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
/* MSDN lies; removing a nonexistent entry produces no error */
- ole_check(IXMLDOMSchemaCollection_remove(cache, NULL));
- ole_check(IXMLDOMSchemaCollection_remove(cache, _bstr_(xdr_schema1_uri)));
+ hr = IXMLDOMSchemaCollection_remove(cache, NULL);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMSchemaCollection_remove(cache, _bstr_(xdr_schema1_uri));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
length = -1;
- ole_check(IXMLDOMSchemaCollection_get_length(cache, &length));
- ok(length == 0, "expected length 0, got %i\n", length);
+ hr = IXMLDOMSchemaCollection_get_length(cache, &length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 0, "Unexpected length %ld.\n", length);
- ole_check(IXMLDOMSchemaCollection_add(cache, _bstr_(xdr_schema1_uri), _variantdoc_(schema1)));
+ hr = IXMLDOMSchemaCollection_add(cache, _bstr_(xdr_schema1_uri), _variantdoc_(schema1));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
length = -1;
- ole_check(IXMLDOMSchemaCollection_get_length(cache, &length));
- ok(length == 1, "expected length 1, got %i\n", length);
+ hr = IXMLDOMSchemaCollection_get_length(cache, &length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 1, "Unexpected length %ld.\n", length);
- ole_check(IXMLDOMSchemaCollection_add(cache, _bstr_(xdr_schema2_uri), _variantdoc_(schema2)));
+ hr = IXMLDOMSchemaCollection_add(cache, _bstr_(xdr_schema2_uri), _variantdoc_(schema2));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
length = -1;
- ole_check(IXMLDOMSchemaCollection_get_length(cache, &length));
- ok(length == 2, "expected length 2, got %i\n", length);
+ hr = IXMLDOMSchemaCollection_get_length(cache, &length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 2, "Unexpected length %ld.\n", length);
- ole_check(IXMLDOMSchemaCollection_add(cache, _bstr_(xdr_schema3_uri), _variantdoc_(schema3)));
+ hr = IXMLDOMSchemaCollection_add(cache, _bstr_(xdr_schema3_uri), _variantdoc_(schema3));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
length = -1;
- ole_check(IXMLDOMSchemaCollection_get_length(cache, &length));
- ok(length == 3, "expected length 3, got %i\n", length);
+ hr = IXMLDOMSchemaCollection_get_length(cache, &length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 3, "Unexpected length %ld.\n", length);
/* adding with VT_NULL is the same as removing */
V_VT(&v) = VT_NULL;
- ole_check(IXMLDOMSchemaCollection_add(cache, _bstr_(xdr_schema1_uri), v));
+ hr = IXMLDOMSchemaCollection_add(cache, _bstr_(xdr_schema1_uri), v);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
length = -1;
- ole_check(IXMLDOMSchemaCollection_get_length(cache, &length));
- ok(length == 2, "expected length 2, got %i\n", length);
+ hr = IXMLDOMSchemaCollection_get_length(cache, &length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 2, "Unexpected length %ld.\n", length);
- ole_check(IXMLDOMSchemaCollection_remove(cache, _bstr_(xdr_schema2_uri)));
+ hr = IXMLDOMSchemaCollection_remove(cache, _bstr_(xdr_schema2_uri));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
length = -1;
- ole_check(IXMLDOMSchemaCollection_get_length(cache, &length));
- ok(length == 1, "expected length 1, got %i\n", length);
+ hr = IXMLDOMSchemaCollection_get_length(cache, &length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 1, "Unexpected length %ld.\n", length);
- ole_check(IXMLDOMSchemaCollection_remove(cache, _bstr_(xdr_schema3_uri)));
+ hr = IXMLDOMSchemaCollection_remove(cache, _bstr_(xdr_schema3_uri));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
length = -1;
- ole_check(IXMLDOMSchemaCollection_get_length(cache, &length));
- ok(length == 0, "expected length 0, got %i\n", length);
+ hr = IXMLDOMSchemaCollection_get_length(cache, &length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 0, "Unexpected length %ld.\n", length);
IXMLDOMDocument2_Release(schema1);
IXMLDOMDocument2_Release(schema2);
@@ -876,9 +931,9 @@ static void test_length(void)
static void test_collection_content(void)
{
- IXMLDOMDocument2 *schema1, *schema2, *schema3, *schema4, *schema5;
+ IXMLDOMDocument2 *schema1, *schema2, *schema3;
BSTR content[5] = {NULL, NULL, NULL, NULL, NULL};
- IXMLDOMSchemaCollection *cache1, *cache2;
+ IXMLDOMSchemaCollection *cache1;
VARIANT_BOOL b;
LONG length;
HRESULT hr;
@@ -890,7 +945,6 @@ static void test_collection_content(void)
schema3 = create_document_version(30, &IID_IXMLDOMDocument2);
cache1 = create_cache_version(30, &IID_IXMLDOMSchemaCollection);
- cache2 = create_cache_version(40, &IID_IXMLDOMSchemaCollection);
if (!schema1 || !schema2 || !schema3 || !cache1)
{
@@ -903,102 +957,69 @@ static void test_collection_content(void)
return;
}
- ole_check(IXMLDOMDocument2_loadXML(schema1, _bstr_(xdr_schema1_xml), &b));
+ hr = IXMLDOMDocument2_loadXML(schema1, _bstr_(xdr_schema1_xml), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML\n");
- ole_check(IXMLDOMDocument2_loadXML(schema2, _bstr_(xdr_schema2_xml), &b));
+ hr = IXMLDOMDocument2_loadXML(schema2, _bstr_(xdr_schema2_xml), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML\n");
- ole_check(IXMLDOMDocument2_loadXML(schema3, _bstr_(xdr_schema3_xml), &b));
+ hr = IXMLDOMDocument2_loadXML(schema3, _bstr_(xdr_schema3_xml), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML\n");
- ole_check(IXMLDOMSchemaCollection_add(cache1, _bstr_(xdr_schema1_uri), _variantdoc_(schema1)));
- ole_check(IXMLDOMSchemaCollection_add(cache1, _bstr_(xdr_schema2_uri), _variantdoc_(schema2)));
- ole_check(IXMLDOMSchemaCollection_add(cache1, _bstr_(xdr_schema3_uri), _variantdoc_(schema3)));
+ hr = IXMLDOMSchemaCollection_add(cache1, _bstr_(xdr_schema1_uri), _variantdoc_(schema1));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMSchemaCollection_add(cache1, _bstr_(xdr_schema2_uri), _variantdoc_(schema2));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ hr = IXMLDOMSchemaCollection_add(cache1, _bstr_(xdr_schema3_uri), _variantdoc_(schema3));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
length = -1;
- ole_check(IXMLDOMSchemaCollection_get_length(cache1, &length));
- ok(length == 3, "expected length 3, got %i\n", length);
+ hr = IXMLDOMSchemaCollection_get_length(cache1, &length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 3, "Unexpected length %ld.\n", length);
IXMLDOMDocument2_Release(schema1);
IXMLDOMDocument2_Release(schema2);
IXMLDOMDocument2_Release(schema3);
- if (cache2)
- {
- schema1 = create_document_version(40, &IID_IXMLDOMDocument2);
- schema2 = create_document_version(40, &IID_IXMLDOMDocument2);
- schema3 = create_document_version(40, &IID_IXMLDOMDocument2);
- schema4 = create_document_version(40, &IID_IXMLDOMDocument2);
- schema5 = create_document_version(40, &IID_IXMLDOMDocument2);
- ole_check(IXMLDOMDocument2_loadXML(schema1, _bstr_(xdr_schema1_xml), &b));
- ok(b == VARIANT_TRUE, "failed to load XML\n");
- ole_check(IXMLDOMDocument2_loadXML(schema2, _bstr_(xdr_schema2_xml), &b));
- ok(b == VARIANT_TRUE, "failed to load XML\n");
- ole_check(IXMLDOMDocument2_loadXML(schema3, _bstr_(xsd_schema1_xml), &b));
- ok(b == VARIANT_TRUE, "failed to load XML\n");
- ole_check(IXMLDOMDocument2_loadXML(schema4, _bstr_(xsd_schema2_xml), &b));
- ok(b == VARIANT_TRUE, "failed to load XML\n");
- ole_check(IXMLDOMDocument2_loadXML(schema5, _bstr_(xsd_schema3_xml), &b));
- ok(b == VARIANT_TRUE, "failed to load XML\n");
-
- /* combining XDR and XSD schemas in the same cache is fine */
- ole_check(IXMLDOMSchemaCollection_add(cache2, _bstr_(xdr_schema1_uri), _variantdoc_(schema1)));
- ole_check(IXMLDOMSchemaCollection_add(cache2, _bstr_(xdr_schema2_uri), _variantdoc_(schema2)));
- ole_check(IXMLDOMSchemaCollection_add(cache2, _bstr_(xsd_schema1_uri), _variantdoc_(schema3)));
- ole_check(IXMLDOMSchemaCollection_add(cache2, _bstr_(xsd_schema2_uri), _variantdoc_(schema4)));
- ole_check(IXMLDOMSchemaCollection_add(cache2, _bstr_(xsd_schema3_uri), _variantdoc_(schema5)));
-
- length = -1;
- ole_check(IXMLDOMSchemaCollection_get_length(cache2, &length));
- ok(length == 5, "expected length 5, got %i\n", length);
-
- IXMLDOMDocument2_Release(schema1);
- IXMLDOMDocument2_Release(schema2);
- IXMLDOMDocument2_Release(schema3);
- IXMLDOMDocument2_Release(schema4);
- IXMLDOMDocument2_Release(schema5);
- }
-
bstr = (void*)0xdeadbeef;
/* error if index is out of range */
hr = IXMLDOMSchemaCollection_get_namespaceURI(cache1, 3, &bstr);
- EXPECT_HR(hr, E_FAIL);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(bstr == (void*)0xdeadbeef, "got %p\n", bstr);
/* error if return pointer is NULL */
- ole_expect(IXMLDOMSchemaCollection_get_namespaceURI(cache1, 0, NULL), E_POINTER);
+ hr = IXMLDOMSchemaCollection_get_namespaceURI(cache1, 0, NULL);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
/* pointer is checked first */
- ole_expect(IXMLDOMSchemaCollection_get_namespaceURI(cache1, 3, NULL), E_POINTER);
+ hr = IXMLDOMSchemaCollection_get_namespaceURI(cache1, 3, NULL);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
schema1 = NULL;
/* no error if ns uri does not exist */
- ole_check(IXMLDOMSchemaCollection_get(cache1, _bstr_(xsd_schema1_uri), (IXMLDOMNode**)&schema1));
+ hr = IXMLDOMSchemaCollection_get(cache1, _bstr_(xsd_schema1_uri), (IXMLDOMNode**)&schema1);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!schema1, "expected NULL\n");
/* a NULL bstr corresponds to no-uri ns */
- ole_check(IXMLDOMSchemaCollection_get(cache1, NULL, (IXMLDOMNode**)&schema1));
+ hr = IXMLDOMSchemaCollection_get(cache1, NULL, (IXMLDOMNode**)&schema1);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!schema1, "expected NULL\n");
/* error if return pointer is NULL */
- ole_expect(IXMLDOMSchemaCollection_get(cache1, _bstr_(xdr_schema1_uri), NULL), E_POINTER);
+ hr = IXMLDOMSchemaCollection_get(cache1, _bstr_(xdr_schema1_uri), NULL);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
for (i = 0; i < 3; ++i)
{
bstr = NULL;
- ole_check(IXMLDOMSchemaCollection_get_namespaceURI(cache1, i, &bstr));
+ hr = IXMLDOMSchemaCollection_get_namespaceURI(cache1, i, &bstr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(bstr != NULL && *bstr, "expected non-empty string\n");
-#if __REACTOS__
- if (bstr != NULL && *bstr)
- {
- content[i] = bstr;
- for (j = 0; j < i; ++j)
- ok(wcscmp(content[j], bstr), "got duplicate entry\n");
- }
-#else
content[i] = bstr;
for (j = 0; j < i; ++j)
- ok(winetest_strcmpW(content[j], bstr), "got duplicate entry\n");
-#endif
-
+ ok(wcscmp(content[j], bstr), "got duplicate entry\n");
}
for (i = 0; i < 3; ++i)
@@ -1007,206 +1028,17 @@ static void test_collection_content(void)
content[i] = NULL;
}
- if (cache2)
- {
- for (i = 0; i < 5; ++i)
- {
- bstr = NULL;
- ole_check(IXMLDOMSchemaCollection_get_namespaceURI(cache2, i, &bstr));
- ok(bstr != NULL && *bstr, "expected non-empty string\n");
-
-#if __REACTOS__
- if (bstr != NULL && *bstr)
- {
- for (j = 0; j < i; ++j)
- ok(wcscmp(content[j], bstr), "got duplicate entry\n");
- }
-#else
- for (j = 0; j < i; ++j)
- ok(winetest_strcmpW(content[j], bstr), "got duplicate entry\n");
-#endif
- content[i] = bstr;
- }
-
- for (i = 0; i < 5; ++i)
- {
- SysFreeString(content[i]);
- content[i] = NULL;
- }
- }
-
IXMLDOMSchemaCollection_Release(cache1);
- if (cache2) IXMLDOMSchemaCollection_Release(cache2);
-
free_bstrs();
}
-static HRESULT validate_regex_document(IXMLDOMDocument2 *doc, IXMLDOMDocument2 *schema, IXMLDOMSchemaCollection* cache,
- const WCHAR *regex, const WCHAR *input)
-{
- static const WCHAR regex_doc[] =
-L""
-""
-"%s";
-
- static const WCHAR regex_schema[] =
-L""
-""
-" "
-" "
-" "
-" "
-" "
-" "
-" "
-"";
-
- WCHAR buffer[1024];
- IXMLDOMParseError* err;
- VARIANT v;
- VARIANT_BOOL b;
- BSTR namespace;
- BSTR bstr;
- HRESULT hr;
-
- VariantInit(&v);
-
-#ifdef __REACTOS__
- swprintf(buffer, regex_doc, input);
-#else
- swprintf(buffer, ARRAY_SIZE(buffer), regex_doc, input);
-#endif
- bstr = SysAllocString(buffer);
- ole_check(IXMLDOMDocument2_loadXML(doc, bstr, &b));
- ok(b == VARIANT_TRUE, "failed to load XML\n");
- SysFreeString(bstr);
-
-#ifdef __REACTOS__
- swprintf(buffer, regex_schema, regex);
-#else
- swprintf(buffer, ARRAY_SIZE(buffer), regex_schema, regex);
-#endif
- bstr = SysAllocString(buffer);
- ole_check(IXMLDOMDocument2_loadXML(schema, bstr, &b));
- ok(b == VARIANT_TRUE, "failed to load XML\n");
- SysFreeString(bstr);
-
- /* add the schema to the cache */
- V_VT(&v) = VT_DISPATCH;
- V_DISPATCH(&v) = NULL;
- ole_check(IXMLDOMDocument2_QueryInterface(schema, &IID_IDispatch, (void**)&V_DISPATCH(&v)));
- ok(V_DISPATCH(&v) != NULL, "failed to get IDispatch interface\n");
- namespace = alloc_str_from_narrow("urn:test");
- hr = IXMLDOMSchemaCollection_add(cache, namespace, v);
- SysFreeString(namespace);
- VariantClear(&v);
- if (FAILED(hr))
- return hr;
-
- /* associate the cache to the doc */
- V_VT(&v) = VT_DISPATCH;
- V_DISPATCH(&v) = NULL;
- ole_check(IXMLDOMSchemaCollection_QueryInterface(cache, &IID_IDispatch, (void**)&V_DISPATCH(&v)));
- ok(V_DISPATCH(&v) != NULL, "failed to get IDispatch interface\n");
- ole_check(IXMLDOMDocument2_putref_schemas(doc, v));
- VariantClear(&v);
-
- /* validate the doc
- * only declared elements in the declared order
- * this is fine */
- err = NULL;
- bstr = NULL;
- hr = IXMLDOMDocument2_validate(doc, &err);
- ok(err != NULL, "domdoc_validate() should always set err\n");
- if (IXMLDOMParseError_get_reason(err, &bstr) != S_FALSE)
- trace("got error: %s\n", wine_dbgstr_w(bstr));
- SysFreeString(bstr);
- IXMLDOMParseError_Release(err);
-
- return hr;
-}
-
-static void test_regex(void)
-{
- struct regex_test {
- const WCHAR *regex;
- const WCHAR *input;
- };
-
- struct regex_test tests[] = {
- { L"\\!", L"!" },
- { L"\\\"", L"\"" },
- { L"\\#", L"#" },
- { L"\\$", L"$" },
- { L"\\%", L"%" },
- { L"\\,", L"," },
- { L"\\/", L"/" },
- { L"\\:", L":" },
- { L"\\;", L";" },
- { L"\\=", L"=" },
- { L"\\>", L">" },
- { L"\\@", L"@" },
- { L"\\`", L"`" },
- { L"\\~", L"~" },
- { L"\\uCAFE", L"\xCAFE" },
- /* non-BMP character in surrogate pairs: */
- { L"\\uD83D\\uDE00", L"\xD83D\xDE00" },
- /* "x{,2}" is non-standard and only works on libxml2 <= v2.9.10 */
- { L"x{0,2}", L"x" }
- };
-
- int i;
-
- for (i = 0; i < ARRAY_SIZE(tests); i++)
- {
- IXMLDOMDocument2 *doc40, *doc60;
- IXMLDOMDocument2 *schema40, *schema60;
- IXMLDOMSchemaCollection *cache40, *cache60;
-
- doc40 = create_document_version(40, &IID_IXMLDOMDocument2);
- doc60 = create_document_version(60, &IID_IXMLDOMDocument2);
- schema40 = create_document_version(40, &IID_IXMLDOMDocument2);
- schema60 = create_document_version(60, &IID_IXMLDOMDocument2);
- cache40 = create_cache_version(40, &IID_IXMLDOMSchemaCollection);
- cache60 = create_cache_version(60, &IID_IXMLDOMSchemaCollection);
-
- if (doc60 && schema60 && cache60)
- {
- HRESULT hr = validate_regex_document(doc60, schema60, cache60, tests[i].regex, tests[i].input);
- ok(hr == S_OK, "got 0x%08x for for version 60 regex %s input %s\n",
- hr, wine_dbgstr_w(tests[i].regex), wine_dbgstr_w(tests[i].input));
- if (doc40 && schema40 && cache40)
- {
- hr = validate_regex_document(doc40, schema40, cache40, tests[i].regex, tests[i].input);
- ok(hr == S_OK, "got 0x%08x version 40 regex %s input %s\n",
- hr, wine_dbgstr_w(tests[i].regex), wine_dbgstr_w(tests[i].input));
- }
- }
- else
- ok(0, "out of memory\n");
-
- if (doc40)
- IXMLDOMDocument2_Release(doc40);
- if (doc60)
- IXMLDOMDocument2_Release(doc60);
- if (schema40)
- IXMLDOMDocument2_Release(schema40);
- if (schema60)
- IXMLDOMDocument2_Release(schema60);
- if (cache40)
- IXMLDOMSchemaCollection_Release(cache40);
- if (cache60)
- IXMLDOMSchemaCollection_Release(cache60);
- }
-}
-
static void test_XDR_schemas(void)
{
IXMLDOMDocument2 *doc, *schema;
IXMLDOMSchemaCollection* cache;
IXMLDOMParseError* err;
VARIANT_BOOL b;
+ HRESULT hr;
VARIANT v;
BSTR bstr;
@@ -1225,26 +1057,32 @@ static void test_XDR_schemas(void)
VariantInit(&v);
- ole_check(IXMLDOMDocument2_loadXML(doc, _bstr_(szOpenSeqXML1), &b));
+ hr = IXMLDOMDocument2_loadXML(doc, _bstr_(szOpenSeqXML1), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
- ole_check(IXMLDOMDocument2_loadXML(schema, _bstr_(szOpenSeqXDR), &b));
+ hr = IXMLDOMDocument2_loadXML(schema, _bstr_(szOpenSeqXDR), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
/* load the schema */
V_VT(&v) = VT_DISPATCH;
V_DISPATCH(&v) = NULL;
- ole_check(IXMLDOMDocument2_QueryInterface(schema, &IID_IDispatch, (void**)&V_DISPATCH(&v)));
+ hr = IXMLDOMDocument2_QueryInterface(schema, &IID_IDispatch, (void**)&V_DISPATCH(&v));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_DISPATCH(&v) != NULL, "failed to get IDispatch interface\n");
- ole_check(IXMLDOMSchemaCollection_add(cache, _bstr_(""), v));
+ hr = IXMLDOMSchemaCollection_add(cache, _bstr_(L""), v);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
VariantClear(&v);
/* associate the cache to the doc */
V_VT(&v) = VT_DISPATCH;
V_DISPATCH(&v) = NULL;
- ole_check(IXMLDOMSchemaCollection_QueryInterface(cache, &IID_IDispatch, (void**)&V_DISPATCH(&v)));
+ hr = IXMLDOMSchemaCollection_QueryInterface(cache, &IID_IDispatch, (void**)&V_DISPATCH(&v));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_DISPATCH(&v) != NULL, "failed to get IDispatch interface\n");
- ole_check(IXMLDOMDocument2_putref_schemas(doc, v));
+ hr = IXMLDOMDocument2_putref_schemas(doc, v);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
VariantClear(&v);
/* validate the doc
@@ -1252,9 +1090,11 @@ static void test_XDR_schemas(void)
* this is fine */
err = NULL;
bstr = NULL;
- ole_check(IXMLDOMDocument2_validate(doc, &err));
+ hr = IXMLDOMDocument2_validate(doc, &err);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(err != NULL, "domdoc_validate() should always set err\n");
- ole_expect(IXMLDOMParseError_get_reason(err, &bstr), S_FALSE);
+ hr = IXMLDOMParseError_get_reason(err, &bstr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(IXMLDOMParseError_get_reason(err, &bstr) == S_FALSE, "got error: %s\n", wine_dbgstr_w(bstr));
SysFreeString(bstr);
IXMLDOMParseError_Release(err);
@@ -1262,15 +1102,18 @@ static void test_XDR_schemas(void)
/* load the next doc */
IXMLDOMDocument2_Release(doc);
doc = create_document(&IID_IXMLDOMDocument2);
- ole_check(IXMLDOMDocument2_loadXML(doc, _bstr_(szOpenSeqXML2), &b));
+ hr = IXMLDOMDocument2_loadXML(doc, _bstr_(szOpenSeqXML2), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
/* associate the cache to the doc */
V_VT(&v) = VT_DISPATCH;
V_DISPATCH(&v) = NULL;
- ole_check(IXMLDOMSchemaCollection_QueryInterface(cache, &IID_IDispatch, (void**)&V_DISPATCH(&v)));
+ hr = IXMLDOMSchemaCollection_QueryInterface(cache, &IID_IDispatch, (void**)&V_DISPATCH(&v));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_DISPATCH(&v) != NULL, "failed to get IDispatch interface\n");
- ole_check(IXMLDOMDocument2_putref_schemas(doc, v));
+ hr = IXMLDOMDocument2_putref_schemas(doc, v);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
VariantClear(&v);
/* validate the doc
@@ -1278,9 +1121,11 @@ static void test_XDR_schemas(void)
* this is fine */
err = NULL;
bstr = NULL;
- ole_check(IXMLDOMDocument2_validate(doc, &err));
+ hr = IXMLDOMDocument2_validate(doc, &err);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(err != NULL, "domdoc_validate() should always set err\n");
- ole_expect(IXMLDOMParseError_get_reason(err, &bstr), S_FALSE);
+ hr = IXMLDOMParseError_get_reason(err, &bstr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(IXMLDOMParseError_get_reason(err, &bstr) == S_FALSE, "got error: %s\n", wine_dbgstr_w(bstr));
SysFreeString(bstr);
IXMLDOMParseError_Release(err);
@@ -1288,22 +1133,26 @@ static void test_XDR_schemas(void)
/* load the next doc */
IXMLDOMDocument2_Release(doc);
doc = create_document(&IID_IXMLDOMDocument2);
- ole_check(IXMLDOMDocument2_loadXML(doc, _bstr_(szOpenSeqXML3), &b));
+ hr = IXMLDOMDocument2_loadXML(doc, _bstr_(szOpenSeqXML3), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
/* associate the cache to the doc */
V_VT(&v) = VT_DISPATCH;
V_DISPATCH(&v) = NULL;
- ole_check(IXMLDOMSchemaCollection_QueryInterface(cache, &IID_IDispatch, (void**)&V_DISPATCH(&v)));
+ hr = IXMLDOMSchemaCollection_QueryInterface(cache, &IID_IDispatch, (void**)&V_DISPATCH(&v));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_DISPATCH(&v) != NULL, "failed to get IDispatch interface\n");
- ole_check(IXMLDOMDocument2_putref_schemas(doc, v));
+ hr = IXMLDOMDocument2_putref_schemas(doc, v);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
VariantClear(&v);
/* validate the doc
* fails, extra elements are only allowed at the end */
err = NULL;
bstr = NULL;
- ole_expect(IXMLDOMDocument2_validate(doc, &err), S_FALSE);
+ hr = IXMLDOMDocument2_validate(doc, &err);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(err != NULL, "domdoc_validate() should always set err\n");
todo_wine ok(IXMLDOMParseError_get_reason(err, &bstr) == S_OK, "got error: %s\n", wine_dbgstr_w(bstr));
SysFreeString(bstr);
@@ -1312,22 +1161,26 @@ static void test_XDR_schemas(void)
/* load the next doc */
IXMLDOMDocument2_Release(doc);
doc = create_document(&IID_IXMLDOMDocument2);
- ole_check(IXMLDOMDocument2_loadXML(doc, _bstr_(szOpenSeqXML4), &b));
+ hr = IXMLDOMDocument2_loadXML(doc, _bstr_(szOpenSeqXML4), &b);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
/* associate the cache to the doc */
V_VT(&v) = VT_DISPATCH;
V_DISPATCH(&v) = NULL;
- ole_check(IXMLDOMSchemaCollection_QueryInterface(cache, &IID_IDispatch, (void**)&V_DISPATCH(&v)));
+ hr = IXMLDOMSchemaCollection_QueryInterface(cache, &IID_IDispatch, (void**)&V_DISPATCH(&v));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_DISPATCH(&v) != NULL, "failed to get IDispatch interface\n");
- ole_check(IXMLDOMDocument2_putref_schemas(doc, v));
+ hr = IXMLDOMDocument2_putref_schemas(doc, v);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
VariantClear(&v);
/* validate the doc
* fails, undeclared elements are not allowed */
err = NULL;
bstr = NULL;
- ole_expect(IXMLDOMDocument2_validate(doc, &err), S_FALSE);
+ hr = IXMLDOMDocument2_validate(doc, &err);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(err != NULL, "domdoc_validate() should always set err\n");
todo_wine ok(IXMLDOMParseError_get_reason(err, &bstr) == S_OK, "got error: %s\n", wine_dbgstr_w(bstr));
SysFreeString(bstr);
@@ -1341,41 +1194,41 @@ static void test_XDR_schemas(void)
}
typedef struct {
- const char *query;
+ const WCHAR *query;
enum VARENUM type_schema;
- const char *typename;
+ const WCHAR *typename;
BOOL todo;
} xdr_datatypes;
static const xdr_datatypes xdr_datatypes_data[] = {
- { "//Property[Name!text()='testBase64']/Value/base64Data", VT_ARRAY|VT_UI1, "bin.base64" },
- { "//Property[Name!text()='testHex']/Value/hexData", VT_ARRAY|VT_UI1, "bin.hex" },
- { "//Property[Name!text()='testBool']/Value/boolData", VT_BOOL, "boolean" },
- { "//Property[Name!text()='testChar']/Value/charData", VT_I4, "char", TRUE },
- { "//Property[Name!text()='testDate']/Value/dateData", VT_DATE, "date" },
- { "//Property[Name!text()='testDateTime']/Value/dateTimeData", VT_DATE, "dateTime" },
- { "//Property[Name!text()='testDateTimeTz']/Value/dateTimeTzData", VT_DATE, "dateTime.tz" },
- { "//Property[Name!text()='testFixed']/Value/fixedData", VT_CY, "fixed.14.4" },
- { "//Property[Name!text()='testFloat']/Value/floatData", VT_R8, "float" },
- { "//Property[Name!text()='testI1']/Value/i1Data", VT_I1, "i1" },
- { "//Property[Name!text()='testI2']/Value/i2Data", VT_I2, "i2" },
- { "//Property[Name!text()='testI4']/Value/i4Data", VT_I4, "i4" },
- { "//Property[Name!text()='testI8']/Value/i8Data", VT_NULL, "i8", TRUE },
- { "//Property[Name!text()='testInt']/Value/intData", VT_I4, "int" },
- { "//Property[Name!text()='testNmtoken']/Value/nmtokData", VT_BSTR, NULL },
- { "//Property[Name!text()='testNmtokens']/Value/nmtoksData", VT_BSTR, NULL },
- { "//Property[Name!text()='testNumber']/Value/numData", VT_BSTR, "number" },
- { "//Property[Name!text()='testR4']/Value/r4Data", VT_R4, "r4" },
- { "//Property[Name!text()='testR8']/Value/r8Data", VT_R8, "r8" },
- { "//Property[Name!text()='testString']/Value/stringData", VT_BSTR, NULL },
- { "//Property[Name!text()='testTime']/Value/timeData", VT_DATE, "time" },
- { "//Property[Name!text()='testTimeTz']/Value/timeTzData", VT_DATE, "time.tz" },
- { "//Property[Name!text()='testU1']/Value/u1Data", VT_UI1, "ui1" },
- { "//Property[Name!text()='testU2']/Value/u2Data", VT_UI2, "ui2" },
- { "//Property[Name!text()='testU4']/Value/u4Data", VT_UI4, "ui4" },
- { "//Property[Name!text()='testU8']/Value/u8Data", VT_NULL, "ui8", TRUE },
- { "//Property[Name!text()='testURI']/Value/uriData", VT_BSTR, "uri" },
- { "//Property[Name!text()='testUUID']/Value/uuidData", VT_BSTR, "uuid" },
+ { L"//Property[Name!text()='testBase64']/Value/base64Data", VT_ARRAY|VT_UI1, L"bin.base64" },
+ { L"//Property[Name!text()='testHex']/Value/hexData", VT_ARRAY|VT_UI1, L"bin.hex" },
+ { L"//Property[Name!text()='testBool']/Value/boolData", VT_BOOL, L"boolean" },
+ { L"//Property[Name!text()='testChar']/Value/charData", VT_I4, L"char", TRUE },
+ { L"//Property[Name!text()='testDate']/Value/dateData", VT_DATE, L"date" },
+ { L"//Property[Name!text()='testDateTime']/Value/dateTimeData", VT_DATE, L"dateTime" },
+ { L"//Property[Name!text()='testDateTimeTz']/Value/dateTimeTzData", VT_DATE, L"dateTime.tz" },
+ { L"//Property[Name!text()='testFixed']/Value/fixedData", VT_CY, L"fixed.14.4" },
+ { L"//Property[Name!text()='testFloat']/Value/floatData", VT_R8, L"float" },
+ { L"//Property[Name!text()='testI1']/Value/i1Data", VT_I1, L"i1" },
+ { L"//Property[Name!text()='testI2']/Value/i2Data", VT_I2, L"i2" },
+ { L"//Property[Name!text()='testI4']/Value/i4Data", VT_I4, L"i4" },
+ { L"//Property[Name!text()='testI8']/Value/i8Data", VT_NULL, L"i8", TRUE },
+ { L"//Property[Name!text()='testInt']/Value/intData", VT_I4, L"int" },
+ { L"//Property[Name!text()='testNmtoken']/Value/nmtokData", VT_BSTR, NULL },
+ { L"//Property[Name!text()='testNmtokens']/Value/nmtoksData", VT_BSTR, NULL },
+ { L"//Property[Name!text()='testNumber']/Value/numData", VT_BSTR, L"number" },
+ { L"//Property[Name!text()='testR4']/Value/r4Data", VT_R4, L"r4" },
+ { L"//Property[Name!text()='testR8']/Value/r8Data", VT_R8, L"r8" },
+ { L"//Property[Name!text()='testString']/Value/stringData", VT_BSTR, NULL },
+ { L"//Property[Name!text()='testTime']/Value/timeData", VT_DATE, L"time" },
+ { L"//Property[Name!text()='testTimeTz']/Value/timeTzData", VT_DATE, L"time.tz" },
+ { L"//Property[Name!text()='testU1']/Value/u1Data", VT_UI1, L"ui1" },
+ { L"//Property[Name!text()='testU2']/Value/u2Data", VT_UI2, L"ui2" },
+ { L"//Property[Name!text()='testU4']/Value/u4Data", VT_UI4, L"ui4" },
+ { L"//Property[Name!text()='testU8']/Value/u8Data", VT_NULL, L"ui8", TRUE },
+ { L"//Property[Name!text()='testURI']/Value/uriData", VT_BSTR, L"uri" },
+ { L"//Property[Name!text()='testUUID']/Value/uuidData", VT_BSTR, L"uuid" },
{ NULL }
};
@@ -1408,53 +1261,53 @@ static void test_XDR_datatypes(void)
}
hr = IXMLDOMDocument2_loadXML(doc, _bstr_(szDatatypeXML), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
hr = IXMLDOMDocument2_loadXML(doc2, _bstr_(szDatatypeXML), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
hr = IXMLDOMDocument2_loadXML(schema, _bstr_(szDatatypeXDR), &b);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
hr = IXMLDOMDocument2_validate(doc, &err);
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(err != NULL, "domdoc_validate() should always set err\n");
hr = IXMLDOMParseError_get_errorCode(err, &l);
- EXPECT_HR(hr, S_OK);
- ok(l == E_XML_NODTD, "got %08x\n", l);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(l == E_XML_NODTD, "Unexpected error code %#lx.\n", l);
IXMLDOMParseError_Release(err);
err = NULL;
hr = IXMLDOMDocument2_validate(doc2, &err);
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(err != NULL, "domdoc_validate() should always set err\n");
hr = IXMLDOMParseError_get_errorCode(err, &l);
- EXPECT_HR(hr, S_OK);
- ok(l == E_XML_NODTD, "got %08x\n", l);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(l == E_XML_NODTD, "Unexpected error code %#lx.\n", l);
IXMLDOMParseError_Release(err);
/* now load the schema */
V_VT(&v) = VT_DISPATCH;
V_DISPATCH(&v) = NULL;
hr = IXMLDOMDocument2_QueryInterface(schema, &IID_IDispatch, (void**)&V_DISPATCH(&v));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_DISPATCH(&v) != NULL, "failed to get IDispatch interface\n");
- hr = IXMLDOMSchemaCollection_add(cache, _bstr_("urn:x-schema:datatype-test-xdr"), v);
- EXPECT_HR(hr, S_OK);
+ hr = IXMLDOMSchemaCollection_add(cache, _bstr_(L"urn:x-schema:datatype-test-xdr"), v);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
VariantClear(&v);
/* associate the cache to the doc */
V_VT(&v) = VT_DISPATCH;
V_DISPATCH(&v) = NULL;
hr = IXMLDOMSchemaCollection_QueryInterface(cache, &IID_IDispatch, (void**)&V_DISPATCH(&v));
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_DISPATCH(&v) != NULL, "failed to get IDispatch interface\n");
hr = IXMLDOMDocument2_putref_schemas(doc2, v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
VariantClear(&v);
/* validate the doc */
@@ -1462,13 +1315,13 @@ static void test_XDR_datatypes(void)
l = 0;
bstr = NULL;
hr = IXMLDOMDocument2_validate(doc2, &err);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(err != NULL, "domdoc_validate() should always set err\n");
hr = IXMLDOMParseError_get_errorCode(err, &l);
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
hr = IXMLDOMParseError_get_reason(err, &bstr);
- EXPECT_HR(hr, S_FALSE);
- ok(l == 0, "got %08x : %s\n", l, wine_dbgstr_w(bstr));
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ ok(l == 0, "Unexpected value %lx : %s\n", l, wine_dbgstr_w(bstr));
SysFreeString(bstr);
IXMLDOMParseError_Release(err);
@@ -1480,20 +1333,20 @@ static void test_XDR_datatypes(void)
/* check data types without the schema */
hr = IXMLDOMDocument2_selectSingleNode(doc, _bstr_(ptr->query), &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(node != NULL, "expected node\n");
V_VT(&type) = VT_EMPTY;
V_BSTR(&type) = (void*)-1;
hr = IXMLDOMNode_get_dataType(node, &type);
- EXPECT_HR(hr, S_FALSE);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&type) == VT_NULL, "got type %i\n", V_VT(&type));
/* when returning VT_NULL, the pointer is set to NULL */
ok(V_BSTR(&type) == NULL, "got %p\n", V_BSTR(&type));
VariantClear(&type);
hr = IXMLDOMNode_get_nodeTypedValue(node, &type);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&type) == VT_BSTR, "got variant type %i\n", V_VT(&v));
VariantClear(&type);
IXMLDOMNode_Release(node);
@@ -1501,30 +1354,30 @@ static void test_XDR_datatypes(void)
/* check the data with schema */
node = NULL;
hr = IXMLDOMDocument2_selectSingleNode(doc2, _bstr_(ptr->query), &node);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(node != NULL, "expected node\n");
V_VT(&type) = VT_EMPTY;
hr = IXMLDOMNode_get_dataType(node, &type);
if (ptr->typename)
{
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&type) == VT_BSTR, "got type %i\n", V_VT(&type));
ok(!lstrcmpW(V_BSTR(&type), _bstr_(ptr->typename)), "got %s\n", wine_dbgstr_w(V_BSTR(&type)));
}
else
{
- EXPECT_HR(hr, S_FALSE);
- ok(V_VT(&type) == VT_NULL, "%s: got type %i\n", ptr->query, V_VT(&type));
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&type) == VT_NULL, "%s: got type %i\n", wine_dbgstr_w(ptr->query), V_VT(&type));
}
VariantClear(&type);
VariantClear(&v);
hr = IXMLDOMNode_get_nodeTypedValue(node, &v);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine_if(ptr->todo)
- ok(V_VT(&v) == ptr->type_schema, "%s: got variant type %i\n", ptr->query, V_VT(&v));
+ ok(V_VT(&v) == ptr->type_schema, "%s: got variant type %i\n", wine_dbgstr_w(ptr->query), V_VT(&v));
switch (ptr->type_schema)
{
@@ -1538,13 +1391,13 @@ static void test_XDR_datatypes(void)
ok(V_I2(&v) == 420, "got %i\n", V_I2(&v));
break;
case VT_I4:
- if (!strcmp(ptr->typename, "int"))
- ok(V_I4(&v) == 42, "got %i\n", V_I4(&v));
- else if (!strcmp(ptr->typename, "char"))
+ if (!wcscmp(ptr->typename, L"int"))
+ ok(V_I4(&v) == 42, "got %ld\n", V_I4(&v));
+ else if (!wcscmp(ptr->typename, L"char"))
todo_wine
- ok(V_I4(&v) == 'u', "got %x\n", V_I4(&v));
+ ok(V_I4(&v) == 'u', "got %lx\n", V_I4(&v));
else
- ok(V_I4(&v) == -420000000, "got %i\n", V_I4(&v));
+ ok(V_I4(&v) == -420000000, "got %ld\n", V_I4(&v));
break;
case VT_I8:
expect_int64(V_I8(&v), -4200000000, 10);
@@ -1553,7 +1406,7 @@ static void test_XDR_datatypes(void)
ok(V_R4(&v) == (float)3.14159265, "got %f\n", V_R4(&v));
break;
case VT_R8:
- if (!strcmp(ptr->typename, "float"))
+ if (!wcscmp(ptr->typename, L"float"))
ok(V_R8(&v) == 3.14159, "got %f\n", V_R8(&v));
else
todo_wine
@@ -1566,7 +1419,7 @@ static void test_XDR_datatypes(void)
ok(V_UI2(&v) == 0xFFFF, "got %04x\n", V_UI2(&v));
break;
case VT_UI4:
- ok(V_UI4(&v) == 0xFFFFFFFF, "got %08x\n", V_UI4(&v));
+ ok(V_UI4(&v) == 0xFFFFFFFF, "got %#lx\n", V_UI4(&v));
break;
case VT_UI8:
expect_uint64(V_UI8(&v), 0xFFFFFFFFFFFFFFFF, 16);
@@ -1590,26 +1443,6 @@ static void test_XDR_datatypes(void)
free_bstrs();
}
-static void test_validate_on_load(void)
-{
- IXMLDOMSchemaCollection2 *cache;
- VARIANT_BOOL b;
- HRESULT hr;
-
- cache = create_cache_version(40, &IID_IXMLDOMSchemaCollection2);
- if (!cache) return;
-
- hr = IXMLDOMSchemaCollection2_get_validateOnLoad(cache, NULL);
- EXPECT_HR(hr, E_POINTER);
-
- b = VARIANT_FALSE;
- hr = IXMLDOMSchemaCollection2_get_validateOnLoad(cache, &b);
- EXPECT_HR(hr, S_OK);
- ok(b == VARIANT_TRUE, "got %d\n", b);
-
- IXMLDOMSchemaCollection2_Release(cache);
-}
-
static void test_obj_dispex(IUnknown *obj)
{
DISPID dispid = DISPID_SAX_XMLREADER_GETFEATURE;
@@ -1621,42 +1454,42 @@ static void test_obj_dispex(IUnknown *obj)
BSTR name;
hr = IUnknown_QueryInterface(obj, &IID_IDispatchEx, (void**)&dispex);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
if (FAILED(hr)) return;
ticnt = 0;
hr = IDispatchEx_GetTypeInfoCount(dispex, &ticnt);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(ticnt == 1, "ticnt=%u\n", ticnt);
name = SysAllocString(L"*");
hr = IDispatchEx_DeleteMemberByName(dispex, name, fdexNameCaseSensitive);
- EXPECT_HR(hr, E_NOTIMPL);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
SysFreeString(name);
hr = IDispatchEx_DeleteMemberByDispID(dispex, dispid);
- EXPECT_HR(hr, E_NOTIMPL);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
props = 0;
hr = IDispatchEx_GetMemberProperties(dispex, dispid, grfdexPropCanAll, &props);
- EXPECT_HR(hr, E_NOTIMPL);
- ok(props == 0, "expected 0 got %d\n", props);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
+ ok(props == 0, "expected 0 got %ld\n", props);
hr = IDispatchEx_GetMemberName(dispex, dispid, &name);
- EXPECT_HR(hr, E_NOTIMPL);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
if (SUCCEEDED(hr)) SysFreeString(name);
hr = IDispatchEx_GetNextDispID(dispex, fdexEnumDefault, DISPID_XMLDOM_SCHEMACOLLECTION_ADD, &dispid);
- EXPECT_HR(hr, E_NOTIMPL);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
unk = (IUnknown*)0xdeadbeef;
hr = IDispatchEx_GetNameSpaceParent(dispex, &unk);
- EXPECT_HR(hr, E_NOTIMPL);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
ok(unk == (IUnknown*)0xdeadbeef, "got %p\n", unk);
name = SysAllocString(L"testprop");
hr = IDispatchEx_GetDispID(dispex, name, fdexNameEnsure, &dispid);
- ok(hr == DISP_E_UNKNOWNNAME, "got 0x%08x\n", hr);
+ ok(hr == DISP_E_UNKNOWNNAME, "Unexpected hr %#lx.\n", hr);
SysFreeString(name);
IDispatchEx_Release(dispex);
@@ -1675,12 +1508,12 @@ static void test_dispex(void)
if (!cache) return;
hr = IXMLDOMSchemaCollection_QueryInterface(cache, &IID_IUnknown, (void**)&unk);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
test_obj_dispex(unk);
IUnknown_Release(unk);
hr = IXMLDOMSchemaCollection_QueryInterface(cache, &IID_IDispatchEx, (void**)&dispex);
- ok(hr == S_OK, "got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&arg) = VT_I4;
V_I4(&arg) = 0;
@@ -1692,159 +1525,12 @@ static void test_dispex(void)
V_VT(&ret) = VT_EMPTY;
V_DISPATCH(&ret) = (void*)0x1;
hr = IDispatchEx_Invoke(dispex, DISPID_VALUE, &IID_NULL, 0, DISPATCH_METHOD, &dispparams, &ret, NULL, NULL);
- ok(hr == DISP_E_MEMBERNOTFOUND, "got 0x%08x\n", hr);
+ ok(hr == DISP_E_MEMBERNOTFOUND, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&ret) == VT_EMPTY, "got %d\n", V_VT(&ret));
ok(V_DISPATCH(&ret) == (void*)0x1, "got %p\n", V_DISPATCH(&ret));
IDispatchEx_Release(dispex);
IXMLDOMSchemaCollection_Release(cache);
-
- cache = create_cache_version(60, &IID_IXMLDOMSchemaCollection);
- if (cache)
- {
- test_obj_dispex((IUnknown*)cache);
- IXMLDOMSchemaCollection_Release(cache);
- }
-}
-
-static void test_get(void)
-{
- IXMLDOMSchemaCollection2 *cache;
- IXMLDOMNode *node;
- HRESULT hr;
-
- cache = create_cache_version(60, &IID_IXMLDOMSchemaCollection2);
- if (!cache) return;
-
- hr = IXMLDOMSchemaCollection2_get(cache, NULL, NULL);
- ok(hr == E_NOTIMPL || hr == E_POINTER /* win8 */, "got %08x\n", hr);
-
- hr = IXMLDOMSchemaCollection2_get(cache, _bstr_("uri"), &node);
- EXPECT_HR(hr, E_NOTIMPL);
-
- IXMLDOMSchemaCollection2_Release(cache);
-
- cache = create_cache_version(40, &IID_IXMLDOMSchemaCollection2);
- if (!cache) return;
-
- hr = IXMLDOMSchemaCollection2_get(cache, NULL, NULL);
- EXPECT_HR(hr, E_POINTER);
-
- hr = IXMLDOMSchemaCollection2_get(cache, _bstr_("uri"), &node);
- EXPECT_HR(hr, S_OK);
-
- IXMLDOMSchemaCollection2_Release(cache);
- free_bstrs();
-}
-
-static void test_remove(void)
-{
- IXMLDOMSchemaCollection2 *cache;
- IXMLDOMDocument *doc;
- VARIANT_BOOL b;
- HRESULT hr;
- VARIANT v;
- LONG len;
-
- cache = create_cache_version(60, &IID_IXMLDOMSchemaCollection2);
- if (!cache) return;
-
- doc = create_document_version(60, &IID_IXMLDOMDocument);
- ok(doc != NULL, "got %p\n", doc);
-
- hr = IXMLDOMDocument_loadXML(doc, _bstr_(xsd_schema1_xml), &b);
- EXPECT_HR(hr, S_OK);
-
- V_VT(&v) = VT_DISPATCH;
- V_DISPATCH(&v) = (IDispatch*)doc;
- hr = IXMLDOMSchemaCollection2_add(cache, _bstr_(xsd_schema1_uri), v);
- EXPECT_HR(hr, S_OK);
-
- len = -1;
- hr = IXMLDOMSchemaCollection2_get_length(cache, &len);
- EXPECT_HR(hr, S_OK);
- ok(len == 1, "got %d\n", len);
-
- /* ::remove() is a stub for version 6 */
- hr = IXMLDOMSchemaCollection2_remove(cache, NULL);
- EXPECT_HR(hr, E_NOTIMPL);
-
- hr = IXMLDOMSchemaCollection2_remove(cache, _bstr_("invaliduri"));
- EXPECT_HR(hr, E_NOTIMPL);
-
- hr = IXMLDOMSchemaCollection2_remove(cache, _bstr_(xsd_schema1_uri));
- EXPECT_HR(hr, E_NOTIMPL);
-
- len = -1;
- hr = IXMLDOMSchemaCollection2_get_length(cache, &len);
- EXPECT_HR(hr, S_OK);
- ok(len == 1, "got %d\n", len);
-
- IXMLDOMDocument_Release(doc);
- IXMLDOMSchemaCollection2_Release(cache);
- free_bstrs();
-
- /* ::remove() works for version 4 */
- cache = create_cache_version(40, &IID_IXMLDOMSchemaCollection2);
- if (!cache) return;
-
- doc = create_document_version(40, &IID_IXMLDOMDocument);
- ok(doc != NULL, "got %p\n", doc);
-
- hr = IXMLDOMDocument_loadXML(doc, _bstr_(xsd_schema1_xml), &b);
- EXPECT_HR(hr, S_OK);
-
- V_VT(&v) = VT_DISPATCH;
- V_DISPATCH(&v) = (IDispatch*)doc;
- hr = IXMLDOMSchemaCollection2_add(cache, _bstr_(xsd_schema1_uri), v);
- EXPECT_HR(hr, S_OK);
-
- len = -1;
- hr = IXMLDOMSchemaCollection2_get_length(cache, &len);
- EXPECT_HR(hr, S_OK);
- ok(len == 1, "got %d\n", len);
-
- hr = IXMLDOMSchemaCollection2_remove(cache, NULL);
- EXPECT_HR(hr, S_OK);
-
- hr = IXMLDOMSchemaCollection2_remove(cache, _bstr_("invaliduri"));
- EXPECT_HR(hr, S_OK);
-
- len = -1;
- hr = IXMLDOMSchemaCollection2_get_length(cache, &len);
- EXPECT_HR(hr, S_OK);
- ok(len == 1, "got %d\n", len);
-
- hr = IXMLDOMSchemaCollection2_remove(cache, _bstr_(xsd_schema1_uri));
- EXPECT_HR(hr, S_OK);
-
- len = -1;
- hr = IXMLDOMSchemaCollection2_get_length(cache, &len);
- EXPECT_HR(hr, S_OK);
- ok(len == 0, "got %d\n", len);
-
- IXMLDOMDocument_Release(doc);
- IXMLDOMSchemaCollection2_Release(cache);
-
- 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)
@@ -1858,14 +1544,9 @@ START_TEST(schema)
test_collection_refs();
test_length();
test_collection_content();
- test_regex();
test_XDR_schemas();
test_XDR_datatypes();
- test_validate_on_load();
test_dispex();
- test_get();
- test_remove();
- test_ifaces();
CoUninitialize();
}
diff --git a/modules/rostests/winetests/msxml3/xmldoc.c b/modules/rostests/winetests/msxml3/xmldoc.c
index 359297f592f..484be6a86c1 100644
--- a/modules/rostests/winetests/msxml3/xmldoc.c
+++ b/modules/rostests/winetests/msxml3/xmldoc.c
@@ -29,9 +29,6 @@
#include "wine/test.h"
-#define EXPECT_HR(hr,hr_exp) \
- ok(hr == hr_exp, "got 0x%08x, expected 0x%08x\n", hr, hr_exp)
-
/* Deprecated Error Code */
#define XML_E_INVALIDATROOTLEVEL 0xc00ce556
@@ -70,10 +67,10 @@ static void create_stream_on_file(IStream **stream, LPCSTR path)
ptr = GlobalLock(hglobal);
ReadFile(hfile, ptr, file_size, &read, NULL);
- ok(file_size == read, "Expected to read the whole file, read %d\n", read);
+ ok(file_size == read, "Expected to read the whole file, read %ld.\n", read);
hr = CreateStreamOnHGlobal(hglobal, TRUE, stream);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(*stream != NULL, "Expected non-NULL stream\n");
CloseHandle(hfile);
@@ -95,51 +92,43 @@ static void test_xmldoc(void)
HRESULT hr;
BSTR name;
- static const WCHAR szBankAccount[] = {'B','A','N','K','A','C','C','O','U','N','T',0};
- static const WCHAR szNumber[] = {'N','U','M','B','E','R',0};
- static const WCHAR szNumVal[] = {'1','2','3','4',0};
- static const WCHAR szName[] = {'N','A','M','E',0};
- static const WCHAR szNameVal[] = {'C','a','p','t','a','i','n',' ','A','h','a','b',0};
- static const WCHAR szVersion[] = {'1','.','0',0};
- static const WCHAR rootW[] = {'r','o','o','t',0};
-
hr = CoCreateInstance(&CLSID_XMLDocument, NULL, CLSCTX_INPROC_SERVER,
&IID_IXMLDocument, (void**)&doc);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* IDispatch */
hr = IXMLDocument_QueryInterface(doc, &IID_IDispatch, (void**)&disp);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* just to make sure we're on right type data */
hr = IDispatch_GetTypeInfo(disp, 0, 0, &ti);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
name = NULL;
hr = ITypeInfo_GetDocumentation(ti, DISPID_XMLDOCUMENT_ROOT, &name, NULL, NULL, NULL);
- EXPECT_HR(hr, S_OK);
- ok(!lstrcmpW(name, rootW), "got name %s\n", wine_dbgstr_w(name));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(name, L"root"), "got name %s\n", wine_dbgstr_w(name));
SysFreeString(name);
ITypeInfo_Release(ti);
IDispatch_Release(disp);
hr = IXMLDocument_QueryInterface(doc, &IID_IXMLDOMDocument, (void**)&disp);
- EXPECT_HR(hr, E_NOINTERFACE);
+ ok(hr == E_NOINTERFACE, "Unexpected hr %#lx.\n", hr);
create_xml_file("bank.xml");
GetFullPathNameA("bank.xml", MAX_PATH, path, NULL);
create_stream_on_file(&stream, path);
hr = IXMLDocument_QueryInterface(doc, &IID_IPersistStreamInit, (void**)&psi);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(psi != NULL, "Expected non-NULL psi\n");
hr = IXMLDocument_get_root(doc, &element);
- ok(hr == E_FAIL, "Expected E_FAIL, got %08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(element == NULL, "Expected NULL element\n");
hr = IPersistStreamInit_Load(psi, stream);
- ok(hr == S_OK || hr == XML_E_INVALIDATROOTLEVEL, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK || hr == XML_E_INVALIDATROOTLEVEL, "Unexpected hr %#lx.\n", hr);
if(hr == XML_E_INVALIDATROOTLEVEL)
goto cleanup;
@@ -147,94 +136,94 @@ static void test_xmldoc(void)
/* version field */
hr = IXMLDocument_get_version(doc, NULL);
- ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
name = NULL;
hr = IXMLDocument_get_version(doc, &name);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(!lstrcmpW(name, szVersion), "Expected 1.0, got %s\n", wine_dbgstr_w(name));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(name, L"1.0"), "Expected 1.0, got %s\n", wine_dbgstr_w(name));
SysFreeString(name);
/* doctype */
hr = IXMLDocument_get_doctype(doc, NULL);
- ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IXMLDocument_get_doctype(doc, &name);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(!lstrcmpW(name, szBankAccount), "Expected BANKACCOUNT, got %s\n", wine_dbgstr_w(name));
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(name, L"BANKACCOUNT"), "Expected BANKACCOUNT, got %s\n", wine_dbgstr_w(name));
SysFreeString(name);
hr = IXMLDocument_get_root(doc, &element);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(element != NULL, "Expected non-NULL element\n");
/* ::root() returns new instance each time */
hr = IXMLDocument_get_root(doc, &child);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(child != NULL, "Expected non-NULL element\n");
ok(child != element, "Expected new element instance\n");
IXMLElement_Release(child);
hr = IXMLElement_get_type(element, &type);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(type == XMLELEMTYPE_ELEMENT, "Expected XMLELEMTYPE_ELEMENT, got %d\n", type);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(type == XMLELEMTYPE_ELEMENT, "Unexpected type %ld.\n", type);
hr = IXMLElement_get_tagName(element, &name);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(!lstrcmpW(name, szBankAccount), "Expected BANKACCOUNT\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(name, L"BANKACCOUNT"), "Expected BANKACCOUNT\n");
SysFreeString(name);
hr = IXMLElement_get_children(element, &collection);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(collection != NULL, "Expected non-NULL collection\n");
hr = IXMLElementCollection_get_length(collection, &num_child);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(num_child == 2, "Expected 2, got %d\n", num_child);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(num_child == 2, "Unexpected length %ld.\n", num_child);
V_VT(&vIndex) = VT_I4;
V_I4(&vIndex) = 0;
V_VT(&vName) = VT_ERROR;
V_ERROR(&vName) = DISP_E_PARAMNOTFOUND;
hr = IXMLElementCollection_item(collection, vIndex, vName, (IDispatch **)&child);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(child != NULL, "Expected non-NULL child\n");
hr = IXMLElement_get_type(child, &type);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(type == XMLELEMTYPE_ELEMENT, "Expected XMLELEMTYPE_ELEMENT, got %d\n", type);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(type == XMLELEMTYPE_ELEMENT, "Unexpected type %ld.\n", type);
hr = IXMLElement_get_tagName(child, &name);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(!lstrcmpW(name, szNumber), "Expected NUMBER\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(name, L"NUMBER"), "Expected NUMBER\n");
SysFreeString(name);
hr = IXMLElement_get_children(child, &inner);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(inner != NULL, "Expected non-NULL inner\n");
hr = IXMLElementCollection_get_length(inner, &num_child);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(num_child == 1, "Expected 1, got %d\n", num_child);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(num_child == 1, "Unexpected length %ld.\n", num_child);
hr = IXMLElementCollection_item(inner, vIndex, vName, (IDispatch **)&value);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(value != NULL, "Expected non-NULL value\n");
hr = IXMLElement_get_type(value, &type);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(type == XMLELEMTYPE_TEXT, "Expected XMLELEMTYPE_TEXT, got %d\n", type);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(type == XMLELEMTYPE_TEXT, "Unexpected type %ld.\n", type);
hr = IXMLElement_get_text(value, &name);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(!lstrcmpW(name, szNumVal), "Expected '1234'\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(name, L"1234"), "Expected '1234'\n");
SysFreeString(name);
IXMLElementCollection_Release(inner);
inner = (IXMLElementCollection *)0xdeadbeef;
hr = IXMLElement_get_children(value, &inner);
- ok(hr == 1, "Expected 1, got %08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(inner == NULL, "Expected NULL inner, got %p\n", inner);
IXMLElement_Release(value);
@@ -244,45 +233,45 @@ static void test_xmldoc(void)
V_I4(&vIndex) = 1;
hr = IXMLElementCollection_item(collection, vIndex, vName, (IDispatch **)&child);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(child != NULL, "Expected non-NULL child\n");
hr = IXMLElement_get_type(child, &type);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(type == XMLELEMTYPE_ELEMENT, "Expected XMLELEMTYPE_ELEMENT, got %d\n", type);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(type == XMLELEMTYPE_ELEMENT, "Unexpected type %ld.\n", type);
hr = IXMLElement_get_tagName(child, &name);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(!lstrcmpW(name, szName), "Expected NAME\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(name, L"NAME"), "Expected NAME\n");
SysFreeString(name);
hr = IXMLElement_get_children(child, &inner);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(inner != NULL, "Expected non-NULL inner\n");
hr = IXMLElementCollection_get_length(inner, &num_child);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(num_child == 1, "Expected 1, got %d\n", num_child);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(num_child == 1, "Unexpected length %ld.\n", num_child);
V_I4(&vIndex) = 0;
hr = IXMLElementCollection_item(inner, vIndex, vName, (IDispatch **)&value);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(value != NULL, "Expected non-NULL value\n");
hr = IXMLElement_get_type(value, &type);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(type == XMLELEMTYPE_TEXT, "Expected XMLELEMTYPE_TEXT, got %d\n", type);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(type == XMLELEMTYPE_TEXT, "Unexpected type %ld.\n", type);
hr = IXMLElement_get_text(value, &name);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(!lstrcmpW(name, szNameVal), "Expected 'Captain Ahab'\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(name, L"Captain Ahab"), "Expected 'Captain Ahab'\n");
SysFreeString(name);
IXMLElementCollection_Release(inner);
inner = (IXMLElementCollection *)0xdeadbeef;
hr = IXMLElement_get_children(value, &inner);
- ok(hr == 1, "Expected 1, got %08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(inner == NULL, "Expected NULL inner, got %p\n", inner);
IXMLElement_Release(value);
@@ -307,14 +296,14 @@ static void test_createElement(void)
hr = CoCreateInstance(&CLSID_XMLDocument, NULL, CLSCTX_INPROC_SERVER,
&IID_IXMLDocument, (LPVOID*)&doc);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* invalid vType type */
V_VT(&vType) = VT_NULL;
V_VT(&vName) = VT_NULL;
element = (IXMLElement *)0xdeadbeef;
hr = IXMLDocument_createElement(doc, vType, vName, &element);
- ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(element == NULL, "Expected NULL element\n");
/* invalid vType value */
@@ -329,17 +318,16 @@ static void test_createElement(void)
if (element != NULL)
{
hr = IXMLElement_get_type(element, &type);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* SP7 returns an XMLELEMTYPE_ELEMENT */
- ok(type == XMLELEMTYPE_OTHER || type == XMLELEMTYPE_ELEMENT,
- "Expected XMLELEMTYPE_OTHER || XMLELEMTYPE_ELEMENT, got %d\n", type);
+ ok(type == XMLELEMTYPE_OTHER || type == XMLELEMTYPE_ELEMENT, "Unexpected type %ld.\n", type);
IXMLElement_Release(element);
}
}
else
{
- ok(hr == E_NOTIMPL, "Expected E_NOTIMPL, got %08x\n", hr);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
ok(element == NULL, "Expected NULL element\n");
}
@@ -348,12 +336,12 @@ static void test_createElement(void)
V_I4(&vType) = XMLELEMTYPE_ELEMENT;
V_VT(&vName) = VT_I4;
hr = IXMLDocument_createElement(doc, vType, vName, &element);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(element != NULL, "Expected non-NULL element\n");
hr = IXMLElement_get_type(element, &type);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(type == XMLELEMTYPE_ELEMENT, "Expected XMLELEMTYPE_ELEMENT, got %d\n", type);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(type == XMLELEMTYPE_ELEMENT, "Unexpected type %ld.\n", type);
IXMLElement_Release(element);
@@ -362,24 +350,24 @@ static void test_createElement(void)
V_I4(&vType) = XMLELEMTYPE_ELEMENT;
V_VT(&vName) = VT_I4;
hr = IXMLDocument_createElement(doc, vType, vName, NULL);
- ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
root = (IXMLElement *)0xdeadbeef;
hr = IXMLDocument_get_root(doc, &root);
- ok(hr == E_FAIL, "Expected E_FAIL, got %08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(root == NULL, "Expected NULL root\n");
V_VT(&vType) = VT_I4;
V_I4(&vType) = XMLELEMTYPE_ELEMENT;
V_VT(&vName) = VT_NULL;
hr = IXMLDocument_createElement(doc, vType, vName, &element);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(element != NULL, "Expected non-NULL element\n");
/* createElement does not set the new element as root */
root = (IXMLElement *)0xdeadbeef;
hr = IXMLDocument_get_root(doc, &root);
- ok(hr == E_FAIL, "Expected E_FAIL, got %08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(root == NULL, "Expected NULL root\n");
IXMLElement_Release(element);
@@ -398,31 +386,30 @@ static void test_persiststreaminit(void)
CHAR path[MAX_PATH];
CLSID id;
BSTR str;
- static const WCHAR testW[] = {'t','e','s','t',0};
hr = CoCreateInstance(&CLSID_XMLDocument, NULL, CLSCTX_INPROC_SERVER,
&IID_IXMLDocument, (LPVOID*)&doc);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLDocument_QueryInterface(doc, &IID_IPersistStreamInit, (LPVOID *)&psi);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(psi != NULL, "Expected non-NULL psi\n");
/* null arguments */
hr = IPersistStreamInit_GetSizeMax(psi, NULL);
- ok(hr == E_NOTIMPL, "Expected E_NOTIMPL, got %08x\n", hr);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
hr = IPersistStreamInit_Load(psi, NULL);
- ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IPersistStreamInit_Save(psi, NULL, FALSE);
- todo_wine ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %08x\n", hr);
+ todo_wine ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IPersistStreamInit_GetClassID(psi, NULL);
- ok(hr == E_POINTER, "Expected E_POINTER, got %08x\n", hr);
+ ok(hr == E_POINTER, "Unexpected hr %#lx.\n", hr);
hr = IPersistStreamInit_IsDirty(psi);
- todo_wine ok(hr == S_FALSE, "Expected S_FALSE, got %08x\n", hr);
+ todo_wine ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
create_xml_file("bank.xml");
GetFullPathNameA("bank.xml", MAX_PATH, path, NULL);
@@ -431,73 +418,73 @@ static void test_persiststreaminit(void)
/* GetSizeMax not implemented */
size.QuadPart = 0;
hr = IPersistStreamInit_GetSizeMax(psi, &size);
- ok(hr == E_NOTIMPL, "Expected E_NOTIMPL, got %08x\n", hr);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
ok(size.QuadPart == 0, "Expected 0\n");
hr = IPersistStreamInit_Load(psi, stream);
IStream_Release(stream);
- ok(hr == S_OK || hr == XML_E_INVALIDATROOTLEVEL, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK || hr == XML_E_INVALIDATROOTLEVEL, "Unexpected hr %#lx.\n", hr);
if(hr == XML_E_INVALIDATROOTLEVEL)
goto cleanup;
hr = IPersistStreamInit_IsDirty(psi);
- todo_wine ok(hr == S_FALSE, "Expected S_FALSE, got %08x\n", hr);
+ todo_wine ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
/* try to save document */
stream = NULL;
hr = CreateStreamOnHGlobal(NULL, TRUE, &stream);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IPersistStreamInit_Save(psi, stream, FALSE);
- todo_wine ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ todo_wine ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
stat.cbSize.QuadPart = 0;
hr = IStream_Stat(stream, &stat, 0);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine ok(stat.cbSize.QuadPart > 0, "Expected >0\n");
IStream_Release(stream);
- str = SysAllocString(testW);
+ str = SysAllocString(L"test");
hr = IXMLDocument_get_root(doc, &element);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLElement_put_text(element, str);
- ok(hr == E_NOTIMPL, "Expected E_NOTIMPL, got %08x\n", hr);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
IXMLElement_Release(element);
SysFreeString(str);
hr = IPersistStreamInit_IsDirty(psi);
- todo_wine ok(hr == S_FALSE, "Expected S_FALSE, got %08x\n", hr);
+ todo_wine ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
create_stream_on_file(&stream, path);
hr = IPersistStreamInit_Load(psi, stream);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
IStream_Release(stream);
hr = IPersistStreamInit_IsDirty(psi);
- todo_wine ok(hr == S_FALSE, "Expected S_FALSE, got %08x\n", hr);
+ todo_wine ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
/* reset internal stream */
hr = IPersistStreamInit_InitNew(psi);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IPersistStreamInit_IsDirty(psi);
- todo_wine ok(hr == S_FALSE, "Expected S_FALSE, got %08x\n", hr);
+ todo_wine ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
stream = NULL;
hr = CreateStreamOnHGlobal(NULL, TRUE, &stream);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IPersistStreamInit_Save(psi, stream, FALSE);
- todo_wine ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ todo_wine ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
stat.cbSize.QuadPart = 0;
hr = IStream_Stat(stream, &stat, 0);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine ok(stat.cbSize.QuadPart > 0, "Expected >0\n");
IStream_Release(stream);
memset(&id, 0, sizeof(id));
hr = IPersistStreamInit_GetClassID(psi, &id);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(IsEqualCLSID(&id, &CLSID_XMLDocument), "Expected CLSID_XMLDocument\n");
cleanup:
@@ -529,91 +516,91 @@ static void test_xmlelem_children(void)
IXMLElement *element = NULL, *child = NULL, *child2 = NULL;
IXMLElementCollection *collection = NULL;
VARIANT vType, vName, vIndex;
- LONG length;
+ LONG length, refcount;
HRESULT hr;
hr = CoCreateInstance(&CLSID_XMLDocument, NULL, CLSCTX_INPROC_SERVER,
&IID_IXMLDocument, (LPVOID*)&doc);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&vType) = VT_I4;
V_I4(&vType) = XMLELEMTYPE_ELEMENT;
V_VT(&vName) = VT_NULL;
hr = IXMLDocument_createElement(doc, vType, vName, &element);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(element != NULL, "Expected non-NULL element\n");
V_VT(&vType) = VT_I4;
V_I4(&vType) = XMLELEMTYPE_TEXT;
V_VT(&vName) = VT_NULL;
hr = IXMLDocument_createElement(doc, vType, vName, &child);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(child != NULL, "Expected non-NULL child\n");
V_VT(&vType) = VT_I4;
V_I4(&vType) = XMLELEMTYPE_TEXT;
V_VT(&vName) = VT_NULL;
hr = IXMLDocument_createElement(doc, vType, vName, &child2);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(child2 != NULL, "Expected non-NULL child\n");
hr = IXMLElement_addChild(element, child, 0, -1);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLElement_get_children(element, &collection);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(collection != NULL, "Expected non-NULL collection\n");
length = 0;
hr = IXMLElementCollection_get_length(collection, &length);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(length == 1, "Expected 1, got %08x\n", length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 1, "Unexpected length %ld.\n", length);
/* remove/add child and check what happens with collection */
hr = IXMLElement_removeChild(element, child);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
length = -1;
hr = IXMLElementCollection_get_length(collection, &length);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(length == 0, "Expected 0, got %08x\n", length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!length, "Unexpected length %ld.\n", length);
IXMLElementCollection_Release(collection);
- hr = IXMLElement_AddRef(child);
- ok(hr == 2, "Expected 2, got %08x\n", hr);
+ refcount = IXMLElement_AddRef(child);
+ ok(refcount == 2, "Unexpected refcount %ld.\n", refcount);
IXMLElement_Release(child);
hr = IXMLElement_addChild(element, child, 0, -1);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- hr = IXMLElement_AddRef(child);
- ok(hr == 2, "Expected 2, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ refcount = IXMLElement_AddRef(child);
+ ok(refcount == 2, "Unexpected refcount %ld.\n", refcount);
IXMLElement_Release(child);
hr = IXMLElement_addChild(element, child2, 0, -1);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLElement_get_children(element, &collection);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(collection != NULL, "Expected non-NULL collection\n");
- hr = IXMLElement_AddRef(child);
- ok(hr == 2, "Expected 2, got %08x\n", hr);
+ refcount = IXMLElement_AddRef(child);
+ ok(refcount == 2, "Unexpected refcount %ld.\n", refcount);
IXMLElement_Release(child);
length = 0;
hr = IXMLElementCollection_get_length(collection, &length);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(length == 2, "Expected 2, got %08x\n", length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 2, "Unexpected length %ld.\n", length);
IXMLElement_Release(child2);
length = 0;
hr = IXMLElementCollection_get_length(collection, &length);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(length == 2, "Expected 2, got %08x\n", length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 2, "Unexpected length %ld.\n", length);
V_VT(&vIndex) = VT_I4;
V_I4(&vIndex) = 1;
hr = IXMLElementCollection_item(collection, vIndex, vName, (IDispatch **)&child2);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(child2 != NULL, "Expected not NULL child\n");
IXMLElementCollection_Release(collection);
IXMLElement_Release(child2);
@@ -623,20 +610,20 @@ static void test_xmlelem_children(void)
V_I4(&vType) = XMLELEMTYPE_TEXT;
V_VT(&vName) = VT_NULL;
hr = IXMLDocument_createElement(doc, vType, vName, &child2);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(child2 != NULL, "Expected non-NULL child\n");
hr = IXMLElement_addChild(child, child2, 0, -1);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLElement_removeChild(element, child2);
- ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IXMLElement_removeChild(child, child2);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLElement_removeChild(child, NULL);
- ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
IXMLElement_Release(element);
IXMLElement_Release(child);
@@ -656,140 +643,173 @@ static void test_xmlelem_collection(void)
WCHAR path[MAX_PATH];
LONG length, type;
ULONG num_vars;
- VARIANT var, dummy, vIndex, vName;
+ VARIANT var[4], dummy, vIndex, vName;
BSTR url, str;
- static const CHAR szBankXML[] = "bank.xml";
- static const WCHAR szNumber[] = {'N','U','M','B','E','R',0};
- static const WCHAR szName[] = {'N','A','M','E',0};
hr = CoCreateInstance(&CLSID_XMLDocument, NULL, CLSCTX_INPROC_SERVER,
&IID_IXMLDocument, (LPVOID*)&doc);
- ok(hr == S_OK, "Expected S_OK, got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- create_xml_file(szBankXML);
- GetFullPathNameA(szBankXML, MAX_PATH, pathA, NULL);
+ create_xml_file("bank.xml");
+ GetFullPathNameA("bank.xml", MAX_PATH, pathA, NULL);
MultiByteToWideChar(CP_ACP, 0, pathA, -1, path, MAX_PATH);
url = SysAllocString(path);
hr = IXMLDocument_put_URL(doc, url);
- ok(hr == S_OK, "Expected S_OK, got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
SysFreeString(url);
if(hr != S_OK)
goto cleanup;
hr = IXMLDocument_get_root(doc, &element);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(element != NULL, "Expected non-NULL element\n");
hr = IXMLElement_get_children(element, &collection);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(collection != NULL, "Expected non-NULL collection\n");
hr = IXMLElementCollection_get_length(collection, NULL);
- ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IXMLElementCollection_get_length(collection, &length);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(length == 2, "Expected 2, got %d\n", length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 2, "Unexpected count %ld.\n", length);
/* IXMLElementCollection:put_length does nothing */
hr = IXMLElementCollection_put_length(collection, -1);
- ok(hr == E_FAIL, "Expected E_FAIL, got %08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
hr = IXMLElementCollection_put_length(collection, 0);
- ok(hr == E_FAIL, "Expected E_FAIL, got %08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
hr = IXMLElementCollection_put_length(collection, 1);
- ok(hr == E_FAIL, "Expected E_FAIL, got %08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
hr = IXMLElementCollection_put_length(collection, 2);
- ok(hr == E_FAIL, "Expected E_FAIL, got %08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
hr = IXMLElementCollection_put_length(collection, 3);
- ok(hr == E_FAIL, "Expected E_FAIL, got %08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
hr = IXMLElementCollection_put_length(collection, 50);
- ok(hr == E_FAIL, "Expected E_FAIL, got %08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
/* make sure the length hasn't changed */
hr = IXMLElementCollection_get_length(collection, &length);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(length == 2, "Expected 2, got %d\n", length);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(length == 2, "Unexpected count %ld.\n", length);
/* IXMLElementCollection implements IEnumVARIANT */
hr = IXMLElementCollection_QueryInterface(collection, &IID_IEnumVARIANT, (LPVOID *)&enumVar);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(enumVar != NULL, "Expected non-NULL enumVar\n");
IEnumVARIANT_Release(enumVar);
hr = IXMLElementCollection_get__newEnum(collection, &unk);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(unk != NULL, "Expected non-NULL unk\n");
enumVar = (void *)0xdeadbeef;
hr = IUnknown_QueryInterface(unk, &IID_IXMLElementCollection, (LPVOID *)&enumVar);
- ok(hr == E_NOINTERFACE, "Expected E_NOINTERFACE, got %08x\n", hr);
+ ok(hr == E_NOINTERFACE, "Unexpected hr %#lx.\n", hr);
ok(enumVar == NULL || broken(enumVar == (void *)0xdeadbeef) /* XP */, "Expected NULL, got %p\n", enumVar);
hr = IUnknown_QueryInterface(unk, &IID_IEnumVARIANT, (LPVOID *)&enumVar);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(enumVar != NULL, "Expected non-NULL enumVar\n");
IUnknown_Release(unk);
/* 1234 */
- hr = IEnumVARIANT_Next(enumVar, 1, &var, &num_vars);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(V_VT(&var) == VT_DISPATCH, "Expected VT_DISPATCH, got %d\n", V_VT(&var));
- ok(num_vars == 1, "Expected 1, got %d\n", num_vars);
+ hr = IEnumVARIANT_Next(enumVar, 1, &var[0], &num_vars);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&var[0]) == VT_DISPATCH, "Expected VT_DISPATCH, got %d\n", V_VT(&var[0]));
+ ok(num_vars == 1, "Unexpected count %ld.\n", num_vars);
- hr = IDispatch_QueryInterface(V_DISPATCH(&var), &IID_IXMLElement, (LPVOID *)&child);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ hr = IDispatch_QueryInterface(V_DISPATCH(&var[0]), &IID_IXMLElement, (LPVOID *)&child);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(child != NULL, "Expected non-NULL child\n");
- VariantClear(&var);
+ VariantClear(&var[0]);
hr = IXMLElement_get_type(child, &type);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(type == XMLELEMTYPE_ELEMENT, "Expected XMLELEMTYPE_ELEMENT, got %d\n", type);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(type == XMLELEMTYPE_ELEMENT, "Unexpected type %ld.\n", type);
hr = IXMLElement_get_tagName(child, &str);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(!lstrcmpW(str, szNumber), "Expected NUMBER\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"NUMBER"), "Expected NUMBER\n");
SysFreeString(str);
IXMLElement_Release(child);
/* Captain Ahab */
- hr = IEnumVARIANT_Next(enumVar, 1, &var, &num_vars);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(V_VT(&var) == VT_DISPATCH, "Expected VT_DISPATCH, got %d\n", V_VT(&var));
- ok(num_vars == 1, "Expected 1, got %d\n", num_vars);
+ hr = IEnumVARIANT_Next(enumVar, 1, &var[0], &num_vars);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&var[0]) == VT_DISPATCH, "Expected VT_DISPATCH, got %d\n", V_VT(&var[0]));
+ ok(num_vars == 1, "Unexpected count %ld.\n", num_vars);
+
+ VariantClear(&var[0]);
/* try advance further, no children left */
V_VT(&dummy) = VT_I4;
hr = IEnumVARIANT_Next(enumVar, 1, &dummy, &num_vars);
- ok(hr == S_FALSE, "Expected S_FALSE, got %08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dummy) == VT_EMPTY, "Expected 0, got %d\n", V_VT(&dummy));
- ok(num_vars == 0, "Expected 0, got %d\n", num_vars);
+ ok(!num_vars, "Unexpected count %ld.\n", num_vars);
V_VT(&dummy) = VT_I4;
hr = IEnumVARIANT_Next(enumVar, 1, &dummy, NULL);
- ok(hr == S_FALSE, "Expected S_FALSE, got %08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&dummy) == VT_EMPTY, "Expected 0, got %d\n", V_VT(&dummy));
- hr = IDispatch_QueryInterface(V_DISPATCH(&var), &IID_IXMLElement, (LPVOID *)&child);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ hr = IEnumVARIANT_Reset(enumVar);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ /* retrieve multiple elements */
+ hr = IEnumVARIANT_Next(enumVar, 2, var, &num_vars);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&var[0]) == VT_DISPATCH, "Expected VT_DISPATCH, got %d\n", V_VT(&var[0]));
+ ok(V_VT(&var[1]) == VT_DISPATCH, "Expected VT_DISPATCH, got %d\n", V_VT(&var[1]));
+ ok(num_vars == 2, "Unexpected count %ld.\n", num_vars);
+
+ V_VT(&dummy) = VT_I4;
+ hr = IEnumVARIANT_Next(enumVar, 1, &dummy, &num_vars);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&dummy) == VT_EMPTY, "Expected 0, got %d\n", V_VT(&dummy));
+ ok(!num_vars, "Unexpected count %ld.\n", num_vars);
+
+ hr = IEnumVARIANT_Reset(enumVar);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+
+ VariantClear(&var[1]);
+ VariantClear(&var[0]);
+
+ memset( var, 0xcc, sizeof(var));
+
+ /* request more elements than available */
+ hr = IEnumVARIANT_Next(enumVar, 4, var, &num_vars);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
+ ok(V_VT(&var[0]) == VT_DISPATCH, "Expected VT_DISPATCH, got %d\n", V_VT(&var[0]));
+ ok(V_VT(&var[1]) == VT_DISPATCH, "Expected VT_DISPATCH, got %d\n", V_VT(&var[1]));
+ ok(V_VT(&var[2]) == VT_EMPTY, "Expected 0, got %d\n", V_VT(&var[2]));
+ ok(V_VT(&var[3]) == 0xcccc, "Expected invalid, got %x\n", V_VT(&var[3]));
+ ok(num_vars == 2, "Unexpected count %ld.\n", num_vars);
+
+ hr = IDispatch_QueryInterface(V_DISPATCH(&var[1]), &IID_IXMLElement, (LPVOID *)&child);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(child != NULL, "Expected non-NULL child\n");
- VariantClear(&var);
+ VariantClear(&var[1]);
+ VariantClear(&var[0]);
hr = IXMLElement_get_type(child, &type);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(type == XMLELEMTYPE_ELEMENT, "Expected XMLELEMTYPE_ELEMENT, got %d\n", type);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(type == XMLELEMTYPE_ELEMENT, "Unexpected type %ld.\n", type);
hr = IXMLElement_get_tagName(child, &str);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(!lstrcmpW(str, szName), "Expected NAME\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"NAME"), "Expected NAME\n");
SysFreeString(str);
IXMLElement_Release(child);
@@ -799,16 +819,16 @@ static void test_xmlelem_collection(void)
V_VT(&vName) = VT_ERROR;
V_ERROR(&vName) = DISP_E_PARAMNOTFOUND;
hr = IXMLElementCollection_item(collection, vIndex, vName, (IDispatch **)&child);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(child != NULL, "Expected non-NULL child\n");
hr = IXMLElement_get_type(child, &type);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(type == XMLELEMTYPE_ELEMENT, "Expected XMLELEMTYPE_ELEMENT, got %d\n", type);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(type == XMLELEMTYPE_ELEMENT, "Unexpected type %ld.\n", type);
hr = IXMLElement_get_tagName(child, &str);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(!lstrcmpW(str, szNumber), "Expected NUMBER\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"NUMBER"), "Expected NUMBER\n");
SysFreeString(str);
IXMLElement_Release(child);
@@ -818,28 +838,28 @@ static void test_xmlelem_collection(void)
V_VT(&vName) = VT_ERROR;
V_ERROR(&vName) = DISP_E_PARAMNOTFOUND;
hr = IXMLElementCollection_item(collection, vIndex, vName, (IDispatch **)&child);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(child != NULL, "Expected non-NULL child\n");
hr = IXMLElement_get_type(child, &type);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(type == XMLELEMTYPE_ELEMENT, "Expected XMLELEMTYPE_ELEMENT, got %d\n", type);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(type == XMLELEMTYPE_ELEMENT, "Unexpected type %ld.\n", type);
hr = IXMLElement_get_tagName(child, &str);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(!lstrcmpW(str, szName), "Expected NAME\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"NAME"), "Expected NAME\n");
SysFreeString(str);
IXMLElement_Release(child);
V_I4(&vIndex) = 100;
hr = IXMLElementCollection_item(collection, vIndex, vName, (IDispatch **)&child);
- ok(hr == E_FAIL, "Expected E_FAIL, got %08x\n", hr);
+ ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr);
ok(child == NULL, "Expected NULL child\n");
V_I4(&vIndex) = -1;
child = (IXMLElement *)0xdeadbeef;
hr = IXMLElementCollection_item(collection, vIndex, vName, (IDispatch **)&child);
- ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
ok(child == NULL, "Expected NULL child\n");
IEnumVARIANT_Release(enumVar);
@@ -864,98 +884,91 @@ static void test_xmlelem(void)
IDispatch *disp;
ITypeInfo *ti;
- static const WCHAR propName[] = {'p','r','o','p',0};
- static const WCHAR propVal[] = {'v','a','l',0};
- static const WCHAR nextVal[] = {'n','e','x','t',0};
- static const WCHAR noexist[] = {'n','o','e','x','i','s','t',0};
- static const WCHAR crazyCase1[] = {'C','R','a','z','Y','c','A','S','E',0};
- static const WCHAR crazyCase2[] = {'C','R','A','Z','Y','C','A','S','E',0};
-
hr = CoCreateInstance(&CLSID_XMLDocument, NULL, CLSCTX_INPROC_SERVER,
&IID_IXMLDocument, (LPVOID*)&doc);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
V_VT(&vType) = VT_I4;
V_I4(&vType) = XMLELEMTYPE_ELEMENT;
V_VT(&vName) = VT_NULL;
hr = IXMLDocument_createElement(doc, vType, vName, &element);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(element != NULL, "Expected non-NULL element\n");
/* test for IDispatch */
disp = NULL;
hr = IXMLElement_QueryInterface(element, &IID_IDispatch, (void**)&disp);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IDispatch_GetTypeInfo(disp, 0, 0, &ti);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
name = NULL;
hr = ITypeInfo_GetDocumentation(ti, DISPID_XMLELEMENT_TAGNAME, &name, NULL, NULL, NULL);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
SysFreeString(name);
ITypeInfo_Release(ti);
IDispatch_Release(disp);
hr = IXMLElement_get_tagName(element, &str);
- EXPECT_HR(hr, S_OK);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(!str, "Expected empty tag name, got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
parent = (IXMLElement *)0xdeadbeef;
hr = IXMLElement_get_parent(element, &parent);
- ok(hr == 1, "Expected 1, got %08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(parent == NULL, "Expected NULL parent\n");
- str = SysAllocString(noexist);
+ str = SysAllocString(L"noexist");
hr = IXMLElement_getAttribute(element, str, &vValue);
- ok(hr == S_FALSE, "Expected S_FALSE, got %08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&vValue) == VT_EMPTY, "Expected VT_EMPTY, got %d\n", V_VT(&vValue));
ok(V_BSTR(&vValue) == NULL, "Expected null value\n");
VariantClear(&vValue);
SysFreeString(str);
- str = SysAllocString(crazyCase1);
- val = SysAllocString(propVal);
+ str = SysAllocString(L"CRazYcASE");
+ val = SysAllocString(L"val");
V_VT(&vValue) = VT_BSTR;
V_BSTR(&vValue) = val;
hr = IXMLElement_setAttribute(element, str, vValue);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
SysFreeString(str);
SysFreeString(val);
- str = SysAllocString(crazyCase2);
+ str = SysAllocString(L"CRAZYCASE");
hr = IXMLElement_getAttribute(element, str, &vValue);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&vValue) == VT_BSTR, "Expected VT_BSTR, got %d\n", V_VT(&vValue));
- ok(!lstrcmpW(V_BSTR(&vValue), propVal), "Expected 'val'\n");
+ ok(!lstrcmpW(V_BSTR(&vValue), L"val"), "Expected 'val'\n");
VariantClear(&vValue);
SysFreeString(str);
- str = SysAllocString(propName);
- val = SysAllocString(propVal);
+ str = SysAllocString(L"prop");
+ val = SysAllocString(L"val");
V_VT(&vValue) = VT_BSTR;
V_BSTR(&vValue) = val;
hr = IXMLElement_setAttribute(element, str, vValue);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
SysFreeString(val);
hr = IXMLElement_getAttribute(element, str, &vValue);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&vValue) == VT_BSTR, "Expected VT_BSTR, got %d\n", V_VT(&vValue));
- ok(!lstrcmpW(V_BSTR(&vValue), propVal), "Expected 'val'\n");
+ ok(!lstrcmpW(V_BSTR(&vValue), L"val"), "Expected 'val'\n");
VariantClear(&vValue);
hr = IXMLElement_removeAttribute(element, str);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
/* remove now nonexistent attribute */
hr = IXMLElement_removeAttribute(element, str);
- ok(hr == S_FALSE, "Expected S_FALSE, got %08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
hr = IXMLElement_getAttribute(element, str, &vValue);
- ok(hr == 1, "Expected 1, got %08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(V_VT(&vValue) == VT_EMPTY, "Expected VT_EMPTY, got %d\n", V_VT(&vValue));
ok(V_BSTR(&vValue) == NULL, "Expected null value\n");
SysFreeString(str);
@@ -963,93 +976,93 @@ static void test_xmlelem(void)
children = (IXMLElementCollection *)0xdeadbeef;
hr = IXMLElement_get_children(element, &children);
- ok(hr == 1, "Expected 1, got %08x\n", hr);
+ ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr);
ok(children == NULL, "Expected NULL collection\n");
hr = IXMLElement_get_type(element, &type);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(type == XMLELEMTYPE_ELEMENT, "Expected XMLELEMTYPE_ELEMENT, got %d\n", type);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(type == XMLELEMTYPE_ELEMENT, "Unexpected type %ld.\n", type);
hr = IXMLElement_get_text(element, &str);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(lstrlenW(str) == 0, "Expected empty text\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(str && !*str, "Expected empty text\n");
SysFreeString(str);
/* put_text with an ELEMENT */
- str = SysAllocString(propVal);
+ str = SysAllocString(L"val");
hr = IXMLElement_put_text(element, str);
- ok(hr == E_NOTIMPL, "Expected E_NOTIMPL, got %08x\n", hr);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
SysFreeString(str);
V_VT(&vType) = VT_I4;
V_I4(&vType) = XMLELEMTYPE_TEXT;
V_VT(&vName) = VT_NULL;
hr = IXMLDocument_createElement(doc, vType, vName, &child);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(child != NULL, "Expected non-NULL child\n");
hr = IXMLElement_addChild(element, child, 0, -1);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
- str = SysAllocString(propVal);
+ str = SysAllocString(L"val");
hr = IXMLElement_put_text(child, str);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
SysFreeString(str);
parent = (IXMLElement *)0xdeadbeef;
hr = IXMLElement_get_parent(child, &parent);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(parent != element, "Expected parent != element\n");
hr = IXMLElement_get_type(parent, &type);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(type == XMLELEMTYPE_ELEMENT, "Expected XMLELEMTYPE_ELEMENT, got %d\n", type);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(type == XMLELEMTYPE_ELEMENT, "Unexpected type %ld.\n", type);
children = (IXMLElementCollection *)0xdeadbeef;
hr = IXMLElement_get_children(element, &children);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(children != NULL, "Expected non-NULL collection\n");
hr = IXMLElementCollection_get_length(children, &num_child);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(num_child == 1, "Expected 1, got %d\n", num_child);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(num_child == 1, "Unexpected length %ld.\n", num_child);
V_VT(&vIndex) = VT_I4;
V_I4(&vIndex) = 0;
V_VT(&vName) = VT_ERROR;
V_ERROR(&vName) = DISP_E_PARAMNOTFOUND;
hr = IXMLElementCollection_item(children, vIndex, vName, (IDispatch **)&child2);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(child2 != NULL, "Expected non-NULL child\n");
hr = IXMLElement_get_type(child2, &type);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(type == XMLELEMTYPE_TEXT, "Expected XMLELEMTYPE_TEXT, got %d\n", type);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(type == XMLELEMTYPE_TEXT, "Unexpected type %ld.\n", type);
hr = IXMLElement_get_text(element, &str);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(!lstrcmpW(str, propVal), "Expected 'val'\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"val"), "Expected 'val'\n");
SysFreeString(str);
hr = IXMLElement_get_text(child2, &str);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(!lstrcmpW(str, propVal), "Expected 'val'\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"val"), "Expected 'val'\n");
SysFreeString(str);
/* try put_text on ELEMENT again, now that it has a text child */
- str = SysAllocString(nextVal);
+ str = SysAllocString(L"next");
hr = IXMLElement_put_text(element, str);
- ok(hr == E_NOTIMPL, "Expected E_NOTIMPL, got %08x\n", hr);
+ ok(hr == E_NOTIMPL, "Unexpected hr %#lx.\n", hr);
SysFreeString(str);
- str = SysAllocString(nextVal);
+ str = SysAllocString(L"next");
hr = IXMLElement_put_text(child2, str);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
SysFreeString(str);
hr = IXMLElement_get_text(element, &str);
- ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
- ok(!lstrcmpW(str, nextVal), "Expected 'val'\n");
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ ok(!lstrcmpW(str, L"next"), "Expected 'val'\n");
SysFreeString(str);
IXMLElement_Release(child2);
diff --git a/modules/rostests/winetests/msxml3/xmlparser.c b/modules/rostests/winetests/msxml3/xmlparser.c
index 32514e3e0e9..9ca61d6218a 100644
--- a/modules/rostests/winetests/msxml3/xmlparser.c
+++ b/modules/rostests/winetests/msxml3/xmlparser.c
@@ -108,44 +108,44 @@ static void create_test(void)
hr = CoCreateInstance(&CLSID_XMLParser30, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLParser, (void**)&parser);
if (FAILED(hr))
{
- win_skip("IXMLParser is not available (0x%08x)\n", hr);
+ win_skip("IXMLParser is not available, hr %#lx.\n", hr);
return;
}
flags = IXMLParser_GetFlags(parser);
- ok(flags == 0, "Expected 0 got %d\n", flags);
+ ok(!flags, "Unexpected flags %#lx.\n", flags);
hr = IXMLParser_SetFlags(parser, XMLFLAG_SAX);
- ok(hr == S_OK, "Expected S_OK got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
flags = IXMLParser_GetFlags(parser);
- ok(flags == XMLFLAG_SAX, "Expected 0 got %d\n", flags);
+ ok(flags == XMLFLAG_SAX, "Unexpected flags %ld.\n", flags);
hr = IXMLParser_GetFactory(parser, NULL);
- ok(hr == E_INVALIDARG, "Expected S_OK got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IXMLParser_GetFactory(parser, &nodefactory);
- ok(hr == S_OK, "Expected S_OK got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(nodefactory == NULL, "expected NULL\n");
hr = IXMLParser_SetFactory(parser, &thenodefactory);
- ok(hr == S_OK, "Expected S_OK got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLParser_GetFactory(parser, &nodefactory);
- ok(hr == S_OK, "Expected S_OK got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(nodefactory == &thenodefactory, "expected NULL\n");
hr = IXMLParser_SetInput(parser, NULL);
- ok(hr == E_INVALIDARG, "Expected S_OK got 0x%08x\n", hr);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IXMLParser_SetFactory(parser, NULL);
- ok(hr == S_OK, "Expected S_OK got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLParser_SetFlags(parser, 0);
- ok(hr == S_OK, "Expected S_OK got 0x%08x\n", hr);
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
hr = IXMLParser_GetParserState(parser);
- ok(hr == XMLPARSER_IDLE, "got 0x%08x\n", hr);
+ ok(hr == XMLPARSER_IDLE, "Unexpected hr %#lx.\n", hr);
IXMLParser_Release(parser);
}
diff --git a/modules/rostests/winetests/msxml3/xmlview.c b/modules/rostests/winetests/msxml3/xmlview.c
index 53eefcb7e00..5eb8e777eb4 100644
--- a/modules/rostests/winetests/msxml3/xmlview.c
+++ b/modules/rostests/winetests/msxml3/xmlview.c
@@ -121,14 +121,15 @@ static HRESULT WINAPI HTMLEvents_Invoke(IDispatch *iface, DISPID dispIdMember, R
LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult,
EXCEPINFO *pExcepInfo, UINT *puArgErr)
{
- if(dispIdMember == DISPID_HTMLDOCUMENTEVENTS2_ONREADYSTATECHANGE) {
- static const WCHAR completeW[] = {'c','o','m','p','l','e','t','e',0};
+ if (dispIdMember == DISPID_HTMLDOCUMENTEVENTS2_ONREADYSTATECHANGE)
+ {
+ static const WCHAR completeW[] = L"complete";
HRESULT hr;
BSTR state;
hr = IHTMLDocument2_get_readyState(html_doc, &state);
- ok(hr == S_OK, "got 0x%08x\n", hr);
- if(!memcmp(state, completeW, sizeof(completeW)))
+ ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
+ if (!memcmp(state, completeW, sizeof(completeW)))
loaded = TRUE;
SysFreeString(state);
}
@@ -160,28 +161,28 @@ static void test_QueryInterface(void)
win_skip("Failed to create XMLView instance\n");
return;
}
- ok(hres == S_OK, "CoCreateInstance returned %x, expected S_OK\n", hres);
+ ok(hres == S_OK, "Unexpected hr %#lx.\n", hres);
hres = IUnknown_QueryInterface(xmlview, &IID_IPersistMoniker, (void**)&unk);
- ok(hres == S_OK, "QueryInterface(IID_IPersistMoniker) returned %x, expected S_OK\n", hres);
+ ok(hres == S_OK, "Unexpected hr %#lx.\n", hres);
IUnknown_Release(unk);
hres = IUnknown_QueryInterface(xmlview, &IID_IPersistHistory, (void**)&unk);
- ok(hres == S_OK, "QueryInterface(IID_IPersistHistory) returned %x, expected S_OK\n", hres);
+ ok(hres == S_OK, "Unexpected hr %#lx.\n", hres);
IUnknown_Release(unk);
hres = IUnknown_QueryInterface(xmlview, &IID_IOleCommandTarget, (void**)&unk);
- ok(hres == S_OK, "QueryInterface(IID_IOleCommandTarget) returned %x, expected S_OK\n", hres);
+ ok(hres == S_OK, "Unexpected hr %#lx.\n", hres);
IUnknown_Release(unk);
hres = IUnknown_QueryInterface(xmlview, &IID_IOleObject, (void**)&unk);
- ok(hres == S_OK, "QueryInterface(IID_IOleObject) returned %x, expected S_OK\n", hres);
+ ok(hres == S_OK, "Unexpected hr %#lx.\n", hres);
IUnknown_Release(unk);
hres = IUnknown_QueryInterface(xmlview, &IID_IHTMLDocument, (void**)&htmldoc);
- ok(hres == S_OK, "QueryInterface(IID_IHTMLDocument) returned %x, expected S_OK\n", hres);
+ ok(hres == S_OK, "Unexpected hr %#lx.\n", hres);
hres = IHTMLDocument_QueryInterface(htmldoc, &IID_IUnknown, (void**)&unk);
- ok(hres == S_OK, "QueryInterface(IID_IUnknown) returned %x, expected S_OK\n", hres);
+ ok(hres == S_OK, "Unexpected hr %#lx.\n", hres);
ok(unk == xmlview, "Aggregation is not working as expected\n");
IUnknown_Release(unk);
IHTMLDocument_Release(htmldoc);
@@ -191,9 +192,6 @@ static void test_QueryInterface(void)
static void test_Load(void)
{
- static const WCHAR xmlview_xmlW[] = {'/','x','m','l','/','x','m','l','v','i','e','w','.','x','m','l',0};
- static const WCHAR res[] = {'r','e','s',':','/','/',0};
-
WCHAR buf[1024];
IPersistMoniker *pers_mon;
IConnectionPointContainer *cpc;
@@ -205,9 +203,9 @@ static void test_Load(void)
MSG msg;
BSTR source;
- lstrcpyW(buf, res);
- GetModuleFileNameW(NULL, buf+lstrlenW(buf), ARRAY_SIZE(buf)-ARRAY_SIZE(res));
- lstrcatW(buf, xmlview_xmlW);
+ lstrcpyW(buf, L"res://");
+ GetModuleFileNameW(NULL, buf+lstrlenW(buf), ARRAY_SIZE(buf)-ARRAY_SIZE(L"res://"));
+ lstrcatW(buf, L"/xml/xmlview.xml");
if(!pCreateURLMoniker) {
win_skip("CreateURLMoniker not available\n");
@@ -220,26 +218,26 @@ static void test_Load(void)
win_skip("Failed to create XMLView instance\n");
return;
}
- ok(hres == S_OK, "CoCreateInstance returned %x, expected S_OK\n", hres);
+ ok(hres == S_OK, "Unexpected hr %#lx.\n", hres);
hres = IPersistMoniker_QueryInterface(pers_mon, &IID_IHTMLDocument2, (void**)&html_doc);
- ok(hres == S_OK, "QueryInterface(HTMLDocument2) returned %x, expected S_OK\n", hres);
+ ok(hres == S_OK, "Unexpected hr %#lx.\n", hres);
hres = IPersistMoniker_QueryInterface(pers_mon, &IID_IConnectionPointContainer, (void**)&cpc);
- ok(hres == S_OK, "QueryInterface(IConnectionPointContainer) returned %x, expected S_OK\n", hres);
+ ok(hres == S_OK, "Unexpected hr %#lx.\n", hres);
hres = IConnectionPointContainer_FindConnectionPoint(cpc, &IID_IDispatch, &cp);
- ok(hres == S_OK, "FindConnectionPoint returned %x, expected S_OK\n", hres);
+ ok(hres == S_OK, "Unexpected hr %#lx.\n", hres);
hres = IConnectionPoint_Advise(cp, (IUnknown*)&HTMLEvents, NULL);
- ok(hres == S_OK, "Advise returned %x, expected S_OK\n", hres);
+ ok(hres == S_OK, "Unexpected hr %#lx.\n", hres);
IConnectionPoint_Release(cp);
IConnectionPointContainer_Release(cpc);
hres = CreateBindCtx(0, &bctx);
- ok(hres == S_OK, "CreateBindCtx returned %x, expected S_OK\n", hres);
+ ok(hres == S_OK, "Unexpected hr %#lx.\n", hres);
hres = pCreateURLMoniker(NULL, buf, &mon);
- ok(hres == S_OK, "CreateUrlMoniker returned %x, expected S_OK\n", hres);
+ ok(hres == S_OK, "Unexpected hr %#lx.\n", hres);
loaded = FALSE;
hres = IPersistMoniker_Load(pers_mon, TRUE, mon, bctx, 0);
- ok(hres == S_OK, "Load returned %x, expected S_OK\n", hres);
+ ok(hres == S_OK, "Unexpected hr %#lx.\n", hres);
IBindCtx_Release(bctx);
IMoniker_Release(mon);
@@ -249,9 +247,9 @@ static void test_Load(void)
}
hres = IHTMLDocument2_get_body(html_doc, &elem);
- ok(hres == S_OK, "get_body returned %x, expected S_OK\n", hres);
+ ok(hres == S_OK, "Unexpected hr %#lx.\n", hres);
hres = IHTMLElement_get_outerHTML(elem, &source);
- ok(hres == S_OK, "get_outerHTML returned %x, expected S_OK\n", hres);
+ ok(hres == S_OK, "Unexpected hr %#lx.\n", hres);
ok(!html_src_compare(source, xmlview_html), "Incorrect HTML source: %s\n", wine_dbgstr_w(source));
IHTMLElement_Release(elem);
SysFreeString(source);