Module: wine Branch: master Commit: e4492f75695591a2301de6ea56317dfe0686905f URL: http://source.winehq.org/git/wine.git/?a=commit;h=e4492f75695591a2301de6ea56...
Author: Jacek Caban jacek@codeweavers.com Date: Thu Aug 16 15:43:19 2012 +0200
mshtml: Added more IHTMLObjectElement tests.
---
dlls/mshtml/tests/activex.c | 55 +++++++++++++++++++++++++++++++++++++++++- 1 files changed, 53 insertions(+), 2 deletions(-)
diff --git a/dlls/mshtml/tests/activex.c b/dlls/mshtml/tests/activex.c index 02b9d01..ebd2057 100644 --- a/dlls/mshtml/tests/activex.c +++ b/dlls/mshtml/tests/activex.c @@ -90,6 +90,7 @@ DEFINE_EXPECT(QI_ITestActiveX); DEFINE_EXPECT(wrapped_AddRef); DEFINE_EXPECT(wrapped_Release); DEFINE_EXPECT(wrapped_func); +DEFINE_EXPECT(OnAmbientPropertyChange_UNKNOWN);
#define DISPID_SCRIPTPROP 1000
@@ -305,8 +306,15 @@ static HRESULT WINAPI OleControl_OnMnemonic(IOleControl *iface, MSG *mMsg)
static HRESULT WINAPI OleControl_OnAmbientPropertyChange(IOleControl *iface, DISPID dispID) { - ok(0, "unexpected call\n"); - return E_NOTIMPL; + switch(dispID) { + case DISPID_UNKNOWN: + CHECK_EXPECT(OnAmbientPropertyChange_UNKNOWN); + break; + default: + ok(0, "unexpected call %d\n", dispID); + } + + return S_OK; }
static HRESULT WINAPI OleControl_FreezeEvents(IOleControl *iface, BOOL bFreeze) @@ -1389,6 +1397,7 @@ static void test_object_elem(IHTMLDocument2 *doc) IDispatchEx *dispex; IHTMLElement *elem; IDispatch *disp; + VARIANT v; BSTR str; HRESULT hres;
@@ -1420,6 +1429,48 @@ static void test_object_elem(IHTMLDocument2 *doc)
test_iface_wrapping(objelem);
+ hres = IHTMLObjectElement_get_width(objelem, &v); + ok(hres == S_OK, "get_width failed: %08x\n", hres); + ok(V_VT(&v) == VT_BSTR, "V_VT(width) = %d\n", V_VT(&v)); + ok(!strcmp_wa(V_BSTR(&v), "300"), "V_BSTR(width) = %s\n", wine_dbgstr_w(V_BSTR(&v))); + VariantClear(&v); + + hres = IHTMLObjectElement_get_height(objelem, &v); + ok(hres == S_OK, "get_height failed: %08x\n", hres); + ok(V_VT(&v) == VT_BSTR, "V_VT(height) = %d\n", V_VT(&v)); + ok(!strcmp_wa(V_BSTR(&v), "200"), "V_BSTR(height) = %s\n", wine_dbgstr_w(V_BSTR(&v))); + VariantClear(&v); + + V_VT(&v) = VT_I4; + V_I4(&v) = 400; + SET_EXPECT(OnAmbientPropertyChange_UNKNOWN); + SET_EXPECT(Invoke_ENABLED); + hres = IHTMLObjectElement_put_width(objelem, v); + ok(hres == S_OK, "put_width failed: %08x\n", hres); + CHECK_CALLED(OnAmbientPropertyChange_UNKNOWN); + CHECK_CALLED(Invoke_ENABLED); + + hres = IHTMLObjectElement_get_width(objelem, &v); + ok(hres == S_OK, "get_width failed: %08x\n", hres); + ok(V_VT(&v) == VT_BSTR, "V_VT(width) = %d\n", V_VT(&v)); + ok(!strcmp_wa(V_BSTR(&v), "400"), "V_BSTR(width) = %s\n", wine_dbgstr_w(V_BSTR(&v))); + VariantClear(&v); + + V_VT(&v) = VT_I4; + V_I4(&v) = 250; + SET_EXPECT(OnAmbientPropertyChange_UNKNOWN); + SET_EXPECT(Invoke_ENABLED); + hres = IHTMLObjectElement_put_height(objelem, v); + ok(hres == S_OK, "put_height failed: %08x\n", hres); + CHECK_CALLED(OnAmbientPropertyChange_UNKNOWN); + CHECK_CALLED(Invoke_ENABLED); + + hres = IHTMLObjectElement_get_height(objelem, &v); + ok(hres == S_OK, "get_height failed: %08x\n", hres); + ok(V_VT(&v) == VT_BSTR, "V_VT(height) = %d\n", V_VT(&v)); + ok(!strcmp_wa(V_BSTR(&v), "250"), "V_BSTR(height) = %s\n", wine_dbgstr_w(V_BSTR(&v))); + VariantClear(&v); + IHTMLObjectElement_Release(objelem); }