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