Jacek Caban : mshtml: Added IWindowForBindingUI tests.

Alexandre Julliard julliard at winehq.org
Wed May 30 13:18:53 CDT 2012


Module: wine
Branch: master
Commit: 5665730a32f3803c96a40aa570a7d25a7aa905a1
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=5665730a32f3803c96a40aa570a7d25a7aa905a1

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed May 30 15:49:54 2012 +0200

mshtml: Added IWindowForBindingUI tests.

---

 dlls/mshtml/tests/htmldoc.c |   73 ++++++++++++++++++++++++++++++++++---------
 1 files changed, 58 insertions(+), 15 deletions(-)

diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c
index 838e2ae..3a35abf 100644
--- a/dlls/mshtml/tests/htmldoc.c
+++ b/dlls/mshtml/tests/htmldoc.c
@@ -94,7 +94,7 @@ DEFINE_GUID(SID_SContainerDispatch,0xb722be00,0x4e68,0x101b,0xa2,0xbc,0x00,0xaa,
 
 
 static IOleDocumentView *view = NULL;
-static HWND container_hwnd = NULL, hwnd = NULL, last_hwnd = NULL;
+static HWND container_hwnd = NULL, doc_hwnd = NULL, last_hwnd = NULL;
 
 DEFINE_EXPECT(LockContainer);
 DEFINE_EXPECT(SetActiveObject);
@@ -346,7 +346,7 @@ static void test_timer(DWORD flags)
     if(flags & EXPECT_SETTITLE)
         SET_EXPECT(Exec_SETTITLE);
 
-    while(!*b && GetMessage(&msg, hwnd, 0, 0)) {
+    while(!*b && GetMessage(&msg, doc_hwnd, 0, 0)) {
         TranslateMessage(&msg);
         DispatchMessage(&msg);
     }
@@ -1295,6 +1295,45 @@ static HRESULT WINAPI Moniker_BindToObject(IMoniker *iface, IBindCtx *pcb, IMoni
     return E_NOTIMPL;
 }
 
+static void test_binding_ui(IUnknown *unk)
+{
+    IWindowForBindingUI *binding_ui;
+    IServiceProvider *serv_prov;
+    HWND binding_hwnd;
+    HRESULT hres;
+
+    hres = IUnknown_QueryInterface(unk, &IID_IServiceProvider, (void**)&serv_prov);
+    ok(hres == S_OK, "Could not get IServiceProvider: %08x\n", hres);
+
+    hres = IServiceProvider_QueryService(serv_prov, &IID_IWindowForBindingUI, &IID_IWindowForBindingUI,
+            (void**)&binding_ui);
+    ok(hres == S_OK, "Could not get IWindowForBindingUI: %08x\n", hres);
+
+    hres = IWindowForBindingUI_GetWindow(binding_ui, &IID_IHttpSecurity, &binding_hwnd);
+    ok(hres == S_OK, "GetWindow(IID_IHttpSecurity) failed: %08x\n", hres);
+    if(doc_hwnd)
+        ok(binding_hwnd == doc_hwnd, "binding_hwnd != doc_hwnd\n");
+    else
+        todo_wine ok(binding_hwnd != NULL, "binding_hwnd == NULL\n");
+
+    hres = IWindowForBindingUI_GetWindow(binding_ui, &IID_IAuthenticate, &binding_hwnd);
+    ok(hres == S_OK, "GetWindow(IID_IHttpSecurity) failed: %08x\n", hres);
+    if(doc_hwnd)
+        ok(binding_hwnd == doc_hwnd, "binding_hwnd != doc_hwnd\n");
+    else
+        todo_wine ok(binding_hwnd != NULL, "binding_hwnd == NULL\n");
+
+    hres = IWindowForBindingUI_GetWindow(binding_ui, &IID_IWindowForBindingUI, &binding_hwnd);
+    ok(hres == S_OK, "GetWindow(IID_IHttpSecurity) failed: %08x\n", hres);
+    if(doc_hwnd)
+        ok(binding_hwnd == doc_hwnd, "binding_hwnd != doc_hwnd\n");
+    else
+        todo_wine ok(binding_hwnd != NULL, "binding_hwnd == NULL\n");
+
+    IWindowForBindingUI_Release(binding_ui);
+    IServiceProvider_Release(serv_prov);
+}
+
 static void continue_binding(IBindStatusCallback *callback)
 {
     FORMATETC formatetc = {0xc02d, NULL, 1, -1, TYMED_ISTREAM};
@@ -1303,6 +1342,8 @@ static void continue_binding(IBindStatusCallback *callback)
 
     static const WCHAR wszTextHtml[] = {'t','e','x','t','/','h','t','m','l',0};
 
+    test_binding_ui((IUnknown*)callback);
+
     if(report_mime) {
         hres = IBindStatusCallback_OnProgress(callback, 0, 0, BINDSTATUS_MIMETYPEAVAILABLE,
                 wszTextHtml);
@@ -2162,6 +2203,7 @@ static HRESULT WINAPI DocumentSite_ActivateMe(IOleDocumentSite *iface, IOleDocum
             ok(hres == S_OK, "Could not get IOleInPlaceActiveObject: %08x\n", hres);
 
             if(activeobj) {
+                HWND hwnd = (void*)0xdeadbeef;
                 hres = IOleInPlaceActiveObject_GetWindow(activeobj, &hwnd);
                 ok(hres == E_FAIL, "GetWindow returned %08x, expected E_FAIL\n", hres);
                 ok(hwnd == NULL, "hwnd=%p, expected NULL\n", hwnd);
@@ -2201,11 +2243,11 @@ static HRESULT WINAPI DocumentSite_ActivateMe(IOleDocumentSite *iface, IOleDocum
                 CHECK_CALLED(ShowUI);
 
                 if(activeobj) {
-                    hres = IOleInPlaceActiveObject_GetWindow(activeobj, &hwnd);
+                    hres = IOleInPlaceActiveObject_GetWindow(activeobj, &doc_hwnd);
                     ok(hres == S_OK, "GetWindow failed: %08x\n", hres);
-                    ok(hwnd != NULL, "hwnd == NULL\n");
+                    ok(doc_hwnd != NULL, "hwnd == NULL\n");
                     if(last_hwnd)
-                        ok(hwnd == last_hwnd, "hwnd != last_hwnd\n");
+                        ok(doc_hwnd == last_hwnd, "hwnd != last_hwnd\n");
                 }
 
                 hres = IOleDocumentView_UIActivate(view, TRUE);
@@ -2214,7 +2256,7 @@ static HRESULT WINAPI DocumentSite_ActivateMe(IOleDocumentSite *iface, IOleDocum
                 if(activeobj) {
                     hres = IOleInPlaceActiveObject_GetWindow(activeobj, &tmp_hwnd);
                     ok(hres == S_OK, "GetWindow failed: %08x\n", hres);
-                    ok(tmp_hwnd == hwnd, "tmp_hwnd=%p, expected %p\n", tmp_hwnd, hwnd);
+                    ok(tmp_hwnd == doc_hwnd, "tmp_hwnd=%p, expected %p\n", tmp_hwnd, doc_hwnd);
                 }
             }
 
@@ -2253,11 +2295,11 @@ static HRESULT WINAPI DocumentSite_ActivateMe(IOleDocumentSite *iface, IOleDocum
                 CHECK_CALLED(Exec_SETPROGRESSPOS);
 
                 if(activeobj) {
-                    hres = IOleInPlaceActiveObject_GetWindow(activeobj, &hwnd);
+                    hres = IOleInPlaceActiveObject_GetWindow(activeobj, &doc_hwnd);
                     ok(hres == S_OK, "GetWindow failed: %08x\n", hres);
-                    ok(hwnd != NULL, "hwnd == NULL\n");
+                    ok(doc_hwnd != NULL, "doc_hwnd == NULL\n");
                     if(last_hwnd)
-                        ok(hwnd == last_hwnd, "hwnd != last_hwnd\n");
+                        ok(doc_hwnd == last_hwnd, "doc_hwnd != last_hwnd\n");
                 }
             }
 
@@ -6154,7 +6196,7 @@ static void test_Activate(IHTMLDocument2 *doc, DWORD flags)
     GUID guid;
     HRESULT hres;
 
-    last_hwnd = hwnd;
+    last_hwnd = doc_hwnd;
 
     if(view)
         IOleDocumentView_Release(view);
@@ -6219,10 +6261,10 @@ static void test_Window(IHTMLDocument2 *doc, BOOL expect_success)
 
     if(expect_success) {
         ok(hres == S_OK, "GetWindow failed: %08x\n", hres);
-        ok(tmp_hwnd == hwnd, "tmp_hwnd=%p, expected %p\n", tmp_hwnd, hwnd);
+        ok(tmp_hwnd == doc_hwnd, "tmp_hwnd=%p, expected %p\n", tmp_hwnd, doc_hwnd);
     }else {
         ok(hres == E_FAIL, "GetWindow returned %08x, expected E_FAIL\n", hres);
-        ok(IsWindow(hwnd), "hwnd is destroyed\n");
+        ok(IsWindow(doc_hwnd), "hwnd is destroyed\n");
     }
 
     IOleInPlaceActiveObject_Release(activeobject);
@@ -6574,7 +6616,7 @@ static void test_QueryInterface(IHTMLDocument2 *doc)
 
 static void init_test(enum load_state_t ls) {
     doc_unk = NULL;
-    hwnd = last_hwnd = NULL;
+    doc_hwnd = last_hwnd = NULL;
     set_clientsite = FALSE;
     load_from_stream = FALSE;
     call_UIActivate = CallUIActivate_None;
@@ -6686,9 +6728,9 @@ static void test_HTMLDocument(BOOL do_load, BOOL mime)
         IOleDocumentView_Release(view);
     view = NULL;
 
-    ok(IsWindow(hwnd), "hwnd is destroyed\n");
+    ok(IsWindow(doc_hwnd), "hwnd is destroyed\n");
     release_document(doc);
-    ok(!IsWindow(hwnd), "hwnd is not destroyed\n");
+    ok(!IsWindow(doc_hwnd), "hwnd is not destroyed\n");
 }
 
 static void test_HTMLDocument_hlink(DWORD status)
@@ -6820,6 +6862,7 @@ static void test_HTMLDocument_http(BOOL with_wbapp)
     test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
     test_GetCurMoniker((IUnknown*)doc, http_mon, NULL);
     test_travellog(doc);
+    test_binding_ui((IUnknown*)doc);
 
     nav_url = nav_serv_url = "http://www.winehq.org/"; /* for valid prev nav_url */
     if(support_wbapp) {




More information about the wine-cvs mailing list