Jacek Caban : shdocvw: Added more test and fixes.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Jul 25 05:09:45 CDT 2006
Module: wine
Branch: refs/heads/master
Commit: f06f3cf470a9c5077e985bfbb1c823a6eecc0dcd
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=f06f3cf470a9c5077e985bfbb1c823a6eecc0dcd
Author: Jacek Caban <jacek at codeweavers.com>
Date: Mon Jul 24 23:10:00 2006 +0200
shdocvw: Added more test and fixes.
---
dlls/shdocvw/tests/webbrowser.c | 117 +++++++++++++++++++++++++++++++++++++++
dlls/shdocvw/webbrowser.c | 6 +-
2 files changed, 120 insertions(+), 3 deletions(-)
diff --git a/dlls/shdocvw/tests/webbrowser.c b/dlls/shdocvw/tests/webbrowser.c
index 5763fe0..7fa58c0 100644
--- a/dlls/shdocvw/tests/webbrowser.c
+++ b/dlls/shdocvw/tests/webbrowser.c
@@ -693,6 +693,122 @@ static void test_ClassInfo(IUnknown *unk
IProvideClassInfo2_Release(class_info);
}
+static void test_ie_funcs(IUnknown *unk)
+{
+ IWebBrowser2 *wb;
+ VARIANT_BOOL b;
+ int i;
+ long hwnd;
+ HRESULT hres;
+
+ hres = IUnknown_QueryInterface(unk, &IID_IWebBrowser2, (void**)&wb);
+ ok(hres == S_OK, "Could not get IWebBrowser2 interface: %08lx\n", hres);
+ if(FAILED(hres))
+ return;
+
+ /* HWND */
+
+ hwnd = 0xdeadbeef;
+ hres = IWebBrowser2_get_HWND(wb, &hwnd);
+ ok(hres == E_FAIL, "get_HWND failed: %08lx, expected E_FAIL\n", hres);
+ ok(hwnd == 0, "unexpected hwnd %lx\n", hwnd);
+
+ /* MenuBar */
+
+ hres = IWebBrowser2_get_MenuBar(wb, &b);
+ ok(hres == S_OK, "get_MenuBar failed: %08lx\n", hres);
+ ok(b == VARIANT_TRUE, "b=%x\n", b);
+
+ hres = IWebBrowser2_put_MenuBar(wb, VARIANT_FALSE);
+ ok(hres == S_OK, "put_MenuBar failed: %08lx\n", hres);
+
+ hres = IWebBrowser2_get_MenuBar(wb, &b);
+ ok(hres == S_OK, "get_MenuBar failed: %08lx\n", hres);
+ ok(b == VARIANT_FALSE, "b=%x\n", b);
+
+ hres = IWebBrowser2_put_MenuBar(wb, 100);
+ ok(hres == S_OK, "put_MenuBar failed: %08lx\n", hres);
+
+ hres = IWebBrowser2_get_MenuBar(wb, &b);
+ ok(hres == S_OK, "get_MenuBar failed: %08lx\n", hres);
+ ok(b == VARIANT_TRUE, "b=%x\n", b);
+
+ /* AddressBar */
+
+ hres = IWebBrowser2_get_AddressBar(wb, &b);
+ ok(hres == S_OK, "get_AddressBar failed: %08lx\n", hres);
+ ok(b == VARIANT_TRUE, "b=%x\n", b);
+
+ hres = IWebBrowser2_put_AddressBar(wb, VARIANT_FALSE);
+ ok(hres == S_OK, "put_AddressBar failed: %08lx\n", hres);
+
+ hres = IWebBrowser2_get_AddressBar(wb, &b);
+ ok(hres == S_OK, "get_MenuBar failed: %08lx\n", hres);
+ ok(b == VARIANT_FALSE, "b=%x\n", b);
+
+ hres = IWebBrowser2_put_AddressBar(wb, 100);
+ ok(hres == S_OK, "put_AddressBar failed: %08lx\n", hres);
+
+ hres = IWebBrowser2_get_AddressBar(wb, &b);
+ ok(hres == S_OK, "get_AddressBar failed: %08lx\n", hres);
+ ok(b == VARIANT_TRUE, "b=%x\n", b);
+
+ hres = IWebBrowser2_put_AddressBar(wb, VARIANT_TRUE);
+ ok(hres == S_OK, "put_MenuBar failed: %08lx\n", hres);
+
+ /* StatusBar */
+
+ hres = IWebBrowser2_get_StatusBar(wb, &b);
+ ok(hres == S_OK, "get_StatusBar failed: %08lx\n", hres);
+ ok(b == VARIANT_TRUE, "b=%x\n", b);
+
+ hres = IWebBrowser2_put_StatusBar(wb, VARIANT_TRUE);
+ ok(hres == S_OK, "put_StatusBar failed: %08lx\n", hres);
+
+ hres = IWebBrowser2_get_StatusBar(wb, &b);
+ ok(hres == S_OK, "get_StatusBar failed: %08lx\n", hres);
+ ok(b == VARIANT_TRUE, "b=%x\n", b);
+
+ hres = IWebBrowser2_put_StatusBar(wb, VARIANT_FALSE);
+ ok(hres == S_OK, "put_StatusBar failed: %08lx\n", hres);
+
+ hres = IWebBrowser2_get_StatusBar(wb, &b);
+ ok(hres == S_OK, "get_StatusBar failed: %08lx\n", hres);
+ ok(b == VARIANT_FALSE, "b=%x\n", b);
+
+ hres = IWebBrowser2_put_StatusBar(wb, 100);
+ ok(hres == S_OK, "put_StatusBar failed: %08lx\n", hres);
+
+ hres = IWebBrowser2_get_StatusBar(wb, &b);
+ ok(hres == S_OK, "get_StatusBar failed: %08lx\n", hres);
+ ok(b == VARIANT_TRUE, "b=%x\n", b);
+
+ /* ToolBar */
+
+ hres = IWebBrowser2_get_ToolBar(wb, &i);
+ ok(hres == S_OK, "get_ToolBar failed: %08lx\n", hres);
+ ok(i == VARIANT_TRUE, "i=%x\n", i);
+
+ hres = IWebBrowser2_put_ToolBar(wb, VARIANT_FALSE);
+ ok(hres == S_OK, "put_ToolBar failed: %08lx\n", hres);
+
+ hres = IWebBrowser2_get_ToolBar(wb, &i);
+ ok(hres == S_OK, "get_ToolBar failed: %08lx\n", hres);
+ ok(i == VARIANT_FALSE, "b=%x\n", i);
+
+ hres = IWebBrowser2_put_ToolBar(wb, 100);
+ ok(hres == S_OK, "put_ToolBar failed: %08lx\n", hres);
+
+ hres = IWebBrowser2_get_ToolBar(wb, &i);
+ ok(hres == S_OK, "get_ToolBar failed: %08lx\n", hres);
+ ok(i == VARIANT_TRUE, "i=%x\n", i);
+
+ hres = IWebBrowser2_put_ToolBar(wb, VARIANT_TRUE);
+ ok(hres == S_OK, "put_ToolBar failed: %08lx\n", hres);
+
+ IWebBrowser2_Release(wb);
+}
+
static void test_WebBrowser(void)
{
IUnknown *unk = NULL;
@@ -709,6 +825,7 @@ static void test_WebBrowser(void)
test_ClientSite(unk, &ClientSite);
test_DoVerb(unk);
test_ClientSite(unk, NULL);
+ test_ie_funcs(unk);
ref = IUnknown_Release(unk);
ok(ref == 0, "ref=%ld, expected 0\n", ref);
diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c
index 7ab2ffc..2755bdd 100644
--- a/dlls/shdocvw/webbrowser.c
+++ b/dlls/shdocvw/webbrowser.c
@@ -541,7 +541,7 @@ static HRESULT WINAPI WebBrowser_put_Sta
TRACE("(%p)->(%x)\n", This, Value);
- This->status_bar = Value;
+ This->status_bar = Value ? VARIANT_TRUE : VARIANT_FALSE;
/* In opposition to InternetExplorer, all we should do here is
* inform the embedder about the status bar change. */
@@ -615,7 +615,7 @@ static HRESULT WINAPI WebBrowser_put_Men
TRACE("(%p)->(%x)\n", This, Value);
- This->menu_bar = Value;
+ This->menu_bar = Value ? VARIANT_TRUE : VARIANT_FALSE;
/* In opposition to InternetExplorer, all we should do here is
* inform the embedder about the menu bar change. */
@@ -815,7 +815,7 @@ static HRESULT WINAPI WebBrowser_put_Add
TRACE("(%p)->(%x)\n", This, Value);
- This->address_bar = Value;
+ This->address_bar = Value ? VARIANT_TRUE : VARIANT_FALSE;
/* In opposition to InternetExplorer, all we should do here is
* inform the embedder about the address bar change. */
More information about the wine-cvs
mailing list