Jacek Caban : mshtml: Added navigator's IDispatchEx test.
Alexandre Julliard
julliard at winehq.org
Tue Apr 22 06:46:54 CDT 2008
Module: wine
Branch: master
Commit: 7c63087a5c99c144567095ef65326350fcbd9b92
URL: http://source.winehq.org/git/wine.git/?a=commit;h=7c63087a5c99c144567095ef65326350fcbd9b92
Author: Jacek Caban <jacek at codeweavers.com>
Date: Mon Apr 21 18:12:10 2008 +0200
mshtml: Added navigator's IDispatchEx test.
---
dlls/mshtml/tests/dom.c | 37 +++++++++++++++++++++++++++++++++++++
1 files changed, 37 insertions(+), 0 deletions(-)
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 5e2acde..90ccd4d 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -30,6 +30,7 @@
#include "mshtmcid.h"
#include "mshtmhst.h"
#include "docobj.h"
+#include "dispex.h"
static const char doc_blank[] = "<html></html>";
static const char doc_str1[] = "<html><body>test</body></html>";
@@ -268,6 +269,41 @@ static void _test_ifaces(unsigned line, IUnknown *iface, REFIID *iids)
}
}
+#define test_disp(u,id) _test_disp(__LINE__,u,id)
+static void _test_disp(unsigned line, IUnknown *unk, const IID *diid)
+{
+ IDispatchEx *dispex;
+ ITypeInfo *typeinfo;
+ UINT ticnt;
+ 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);
+
+ hres = IDispatchEx_GetTypeInfo(dispex, 0, 0, &typeinfo);
+ ok_(__FILE__,line) (hres == S_OK, "GetTypeInfo failed: %08x\n", hres);
+
+ if(SUCCEEDED(hres)) {
+ TYPEATTR *type_attr;
+
+ hres = ITypeInfo_GetTypeAttr(typeinfo, &type_attr);
+ ok_(__FILE__,line) (hres == S_OK, "GetTypeAttr failed: %08x\n", hres);
+ ok_(__FILE__,line) (IsEqualGUID(&type_attr->guid, diid), "unexpected guid %s\n", dbgstr_guid(&type_attr->guid));
+
+ ITypeInfo_ReleaseTypeAttr(typeinfo, type_attr);
+ ITypeInfo_Release(typeinfo);
+ }
+
+ IDispatchEx_Release(dispex);
+}
+
#define test_node_name(u,n) _test_node_name(__LINE__,u,n)
static void _test_node_name(unsigned line, IUnknown *unk, const char *exname)
{
@@ -1050,6 +1086,7 @@ static void test_navigator(IHTMLDocument2 *doc)
hres = IHTMLWindow2_get_navigator(window, &navigator);
ok(hres == S_OK, "get_navigator failed: %08x\n", hres);
ok(navigator != NULL, "navigator == NULL\n");
+ test_disp((IUnknown*)navigator, &IID_IOmNavigator);
hres = IHTMLWindow2_get_navigator(window, &navigator2);
ok(hres == S_OK, "get_navigator failed: %08x\n", hres);
More information about the wine-cvs
mailing list