Jacek Caban : msxml3: Added more IDispatchEx tests.
Alexandre Julliard
julliard at winehq.org
Sat Aug 29 11:36:57 CDT 2009
Module: wine
Branch: master
Commit: c4a9d1cfa2087ba3e9139bd20abfaa003835a704
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c4a9d1cfa2087ba3e9139bd20abfaa003835a704
Author: Jacek Caban <jacek at codeweavers.com>
Date: Sat Aug 29 15:04:27 2009 +0200
msxml3: Added more IDispatchEx tests.
---
dlls/msxml3/tests/domdoc.c | 90 +++++++++++++++++++++++++------------------
1 files changed, 52 insertions(+), 38 deletions(-)
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index 2d831dd..91e34f5 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -323,6 +323,55 @@ static void get_str_for_type(DOMNodeType type, char *buf)
}
}
+#define test_disp(u) _test_disp(__LINE__,u)
+static void _test_disp(unsigned line, IUnknown *unk)
+{
+ DISPID dispid = DISPID_XMLDOM_NODELIST_RESET;
+ IDispatchEx *dispex;
+ DWORD dwProps = 0;
+ BSTR sName;
+ UINT ticnt;
+ IUnknown *pUnk;
+ HRESULT hres;
+
+ hres = IUnknown_QueryInterface(unk, &IID_IDispatchEx, (void**)&dispex);
+ ok_(__FILE__,line) (hres == S_OK, "Could not get IDispatch: %08x\n", hres);
+ if(FAILED(hres))
+ return;
+
+ ticnt = 0xdeadbeef;
+ hres = IDispatchEx_GetTypeInfoCount(dispex, &ticnt);
+ ok_(__FILE__,line) (hres == S_OK, "GetTypeInfoCount failed: %08x\n", hres);
+ ok_(__FILE__,line) (ticnt == 1, "ticnt=%u\n", ticnt);
+
+ sName = SysAllocString( szstar );
+ hres = IDispatchEx_DeleteMemberByName(dispex, sName, fdexNameCaseSensitive);
+ ok(hres == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", hres);
+ SysFreeString( sName );
+
+ hres = IDispatchEx_DeleteMemberByDispID(dispex, dispid);
+ ok(hres == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", hres);
+
+ hres = IDispatchEx_GetMemberProperties(dispex, dispid, grfdexPropCanAll, &dwProps);
+ ok(hres == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", hres);
+ ok(dwProps == 0, "expected 0 got %d\n", dwProps);
+
+ hres = IDispatchEx_GetMemberName(dispex, dispid, &sName);
+ ok(hres == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", hres);
+ if(SUCCEEDED(hres))
+ SysFreeString(sName);
+
+ hres = IDispatchEx_GetNextDispID(dispex, fdexEnumDefault, DISPID_XMLDOM_NODELIST_RESET, &dispid);
+ ok(hres == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", hres);
+
+ hres = IDispatchEx_GetNameSpaceParent(dispex, &pUnk);
+ ok(hres == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", hres);
+ if(hres == S_OK && pUnk)
+ IUnknown_Release(pUnk);
+
+ IDispatchEx_Release(dispex);
+}
+
static int get_node_position(IXMLDOMNode *node)
{
HRESULT r;
@@ -457,6 +506,8 @@ static void test_domdoc( void )
if( r != S_OK )
return;
+ test_disp((IUnknown*)doc);
+
/* try some stupid things */
r = IXMLDOMDocument_loadXML( doc, NULL, NULL );
ok( r == S_FALSE, "loadXML failed\n");
@@ -1660,7 +1711,6 @@ static void test_getElementsByTagName(void)
VARIANT_BOOL b;
IXMLDOMDocument *doc;
IXMLDOMNodeList *node_list;
- IDispatchEx *dispex;
LONG len;
r = CoCreateInstance( &CLSID_DOMDocument, NULL,
@@ -1681,43 +1731,7 @@ static void test_getElementsByTagName(void)
ok( r == S_OK, "ret %08x\n", r );
ok( len == 6, "len %d\n", len );
- r = IXMLDOMNodeList_QueryInterface( node_list, &IID_IDispatchEx, (void**)&dispex );
- ok( r == S_OK, "rets %08x\n", r);
- if( r == S_OK )
- {
- DISPID dispid = DISPID_XMLDOM_NODELIST_RESET;
- DWORD dwProps = 0;
- BSTR sName;
- IUnknown *pUnk;
-
- sName = SysAllocString( szstar );
- r = IDispatchEx_DeleteMemberByName(dispex, sName, fdexNameCaseSensitive);
- ok(r == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", r);
- SysFreeString( sName );
-
- r = IDispatchEx_DeleteMemberByDispID(dispex, dispid);
- ok(r == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", r);
-
- r = IDispatchEx_GetMemberProperties(dispex, dispid, grfdexPropCanAll, &dwProps);
- ok(r == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", r);
- ok(dwProps == 0, "expected 0 got %d\n", dwProps);
-
- r = IDispatchEx_GetMemberName(dispex, dispid, &sName);
- ok(r == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", r);
- if( SUCCEEDED(r) )
- SysFreeString(sName);
-
- r = IDispatchEx_GetNextDispID(dispex, fdexEnumDefault, DISPID_XMLDOM_NODELIST_RESET, &dispid);
- ok(r == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", r);
-
- r = IDispatchEx_GetNameSpaceParent(dispex, &pUnk);
- ok(r == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", r);
- if(r == S_OK)
- IUnknown_Release(pUnk);
-
- IDispatchEx_Release( dispex );
- }
-
+ test_disp((IUnknown*)node_list);
IXMLDOMNodeList_Release( node_list );
SysFreeString( str );
More information about the wine-cvs
mailing list