Jacek Caban : mshtml: Added refresh tests.

Alexandre Julliard julliard at winehq.org
Mon Nov 12 14:14:40 CST 2012


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Nov 12 12:58:54 2012 +0100

mshtml: Added refresh tests.

---

 dlls/mshtml/tests/htmldoc.c |   79 +++++++++++++++++++++++++++++++++++--------
 1 files changed, 65 insertions(+), 14 deletions(-)

diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c
index faa8ba7..1669943 100644
--- a/dlls/mshtml/tests/htmldoc.c
+++ b/dlls/mshtml/tests/htmldoc.c
@@ -132,6 +132,7 @@ DEFINE_EXPECT(Exec_ShellDocView_103);
 DEFINE_EXPECT(Exec_ShellDocView_105);
 DEFINE_EXPECT(Exec_ShellDocView_138);
 DEFINE_EXPECT(Exec_ShellDocView_140);
+DEFINE_EXPECT(Exec_DocHostCommandHandler_2300);
 DEFINE_EXPECT(Exec_UPDATECOMMANDS);
 DEFINE_EXPECT(Exec_SETTITLE);
 DEFINE_EXPECT(Exec_HTTPEQUIV);
@@ -203,7 +204,7 @@ static BOOL set_clientsite, container_locked;
 static BOOL readystate_set_loading = FALSE, readystate_set_interactive = FALSE, load_from_stream;
 static BOOL editmode = FALSE, ignore_external_qi;
 static BOOL inplace_deactivated, open_call;
-static BOOL complete, loading_js, loading_hash;
+static BOOL complete, loading_js, loading_hash, is_refresh;
 static DWORD status_code = HTTP_STATUS_OK;
 static BOOL asynchronous_binding = FALSE;
 static BOOL support_wbapp, allow_new_window;
@@ -931,7 +932,7 @@ static HRESULT WINAPI PropertyNotifySink_OnChanged(IPropertyNotifySink *iface, D
             test_readyState(NULL);
         return S_OK;
     case 1005:
-        CHECK_EXPECT(OnChanged_1005);
+        CHECK_EXPECT2(OnChanged_1005);
         if(!editmode)
             test_readyState(NULL);
         readystate_set_interactive = (load_state != LD_INTERACTIVE);
@@ -2728,7 +2729,8 @@ static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID
         DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
 {
     if((!pguidCmdGroup || !IsEqualGUID(pguidCmdGroup, &CGID_Explorer))
-        && (!pguidCmdGroup || !IsEqualGUID(&CGID_ShellDocView, pguidCmdGroup) || nCmdID != 63))
+       && (!pguidCmdGroup || !IsEqualGUID(&CGID_ShellDocView, pguidCmdGroup)
+           || (nCmdID != 63 && (!is_refresh || nCmdID != 37))))
         test_readyState(NULL);
 
     if(!pguidCmdGroup) {
@@ -2824,12 +2826,20 @@ static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID
         case 37:
             CHECK_EXPECT2(Exec_ShellDocView_37);
 
-            if(nav_url)
-                test_GetCurMoniker(doc_unk, NULL, nav_serv_url);
-            else if(load_from_stream)
-                test_GetCurMoniker(doc_unk, NULL, "about:blank");
-            else if(!editmode)
-                test_GetCurMoniker(doc_unk, doc_mon, NULL);
+            if(is_refresh && load_state == LD_COMPLETE) {
+                load_state = LD_DOLOAD;
+                test_readyState(NULL);
+            }else if(is_refresh && load_state == LD_DOLOAD) {
+                test_readyState(NULL);
+                load_state = LD_LOADING;
+            }else {
+                if(nav_url)
+                    test_GetCurMoniker(doc_unk, NULL, nav_serv_url);
+                else if(load_from_stream)
+                    test_GetCurMoniker(doc_unk, NULL, "about:blank");
+                else if(!editmode)
+                    test_GetCurMoniker(doc_unk, doc_mon, NULL);
+            }
 
             ok(pvaOut == NULL, "pvaOut=%p, expected NULL\n", pvaOut);
             ok(pvaIn != NULL, "pvaIn == NULL\n");
@@ -3041,6 +3051,9 @@ static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID
         case OLECMDID_SHOWSCRIPTERROR:
             /* TODO */
             return S_OK;
+        case 2300:
+            CHECK_EXPECT(Exec_DocHostCommandHandler_2300);
+            return E_NOTIMPL;
         default:
             ok(0, "unexpected command %d\n", nCmdID);
             return E_FAIL;
@@ -3414,7 +3427,7 @@ static HRESULT  WINAPI DocObjectService_ActiveElementChanged(
         IDocObjectService* This,
         IHTMLElement *pHTMLElement)
 {
-    CHECK_EXPECT(ActiveElementChanged);
+    CHECK_EXPECT2(ActiveElementChanged);
     return E_NOTIMPL;
 }
 
@@ -5041,6 +5054,7 @@ static void test_Load(IPersistMoniker *persist, IMoniker *mon)
 #define DWL_ONREADY_LOADING    0x0040
 #define DWL_EXPECT_HISTUPDATE  0x0080
 #define DWL_FROM_HISTORY       0x0100
+#define DWL_REFRESH            0x0200
 
 static void test_download(DWORD flags)
 {
@@ -5050,12 +5064,17 @@ static void test_download(DWORD flags)
     MSG msg;
 
     b = is_js ? &called_Exec_SETDOWNLOADSTATE_0 : &called_Exec_HTTPEQUIV_DONE;
+    is_refresh = (flags & DWL_REFRESH) != 0;
 
     hwnd = FindWindowA("Internet Explorer_Hidden", NULL);
     ok(hwnd != NULL, "Could not find hidden window\n");
 
     test_readyState(NULL);
 
+    if(flags & DWL_REFRESH) {
+        SET_EXPECT(Invoke_AMBIENT_SILENT);
+        SET_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
+    }
     if(flags & (DWL_VERBDONE|DWL_HTTP))
         SET_EXPECT(Exec_SETPROGRESSMAX);
     if((flags & DWL_VERBDONE) && !load_from_stream && !is_js)
@@ -5121,7 +5140,7 @@ static void test_download(DWORD flags)
         SET_EXPECT(UpdateBackForwardState);
     }
     if(!is_js) {
-        if(!editmode) {
+        if(!editmode && !(flags & DWL_REFRESH)) {
             if(!(flags & DWL_EMPTY))
                 SET_EXPECT(FireNavigateComplete2);
             SET_EXPECT(FireDocumentComplete);
@@ -5136,6 +5155,10 @@ static void test_download(DWORD flags)
         DispatchMessage(&msg);
     }
 
+    if(flags & DWL_REFRESH) {
+        CHECK_CALLED(Invoke_AMBIENT_SILENT);
+        CHECK_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
+    }
     if(flags & DWL_VERBDONE)
         CHECK_CALLED(Exec_SETPROGRESSMAX);
     if(flags & DWL_HTTP)
@@ -5174,7 +5197,7 @@ static void test_download(DWORD flags)
     SET_CALLED(Frame_EnableModeless_TRUE); /* IE7 */
     SET_CALLED(EnableModeless_FALSE); /* IE7 */
     SET_CALLED(Frame_EnableModeless_FALSE); /* IE7 */
-    if(nav_url && !is_js)
+    if(nav_url && !is_js && !(flags & DWL_REFRESH))
         todo_wine CHECK_CALLED(Exec_ShellDocView_37);
     else if(flags & (DWL_CSS|DWL_HTTP))
         CLEAR_CALLED(Exec_ShellDocView_37); /* Called by IE9 */
@@ -5182,7 +5205,10 @@ static void test_download(DWORD flags)
         if(!(flags & DWL_FROM_HISTORY))
             todo_wine CHECK_CALLED(OnChanged_1012);
         todo_wine CHECK_CALLED(Exec_HTTPEQUIV);
-        todo_wine CHECK_CALLED(Exec_SETTITLE);
+        if(!(flags & DWL_REFRESH))
+            todo_wine CHECK_CALLED(Exec_SETTITLE);
+        else
+            CHECK_CALLED(Exec_SETTITLE);
     }
     if(!is_js) {
         CHECK_CALLED(OnChanged_1005);
@@ -5213,7 +5239,7 @@ static void test_download(DWORD flags)
         todo_wine CHECK_CALLED_BROKEN(UpdateBackForwardState);
     }
     if(!is_js) {
-        if(!editmode) {
+        if(!editmode && !(flags & DWL_REFRESH)) {
             if(!(flags & DWL_EMPTY)) {
                 if(support_wbapp)
                     CHECK_CALLED(FireNavigateComplete2);
@@ -5474,6 +5500,30 @@ static void test_load_history(IHTMLDocument2 *doc)
     history_stream = NULL;
 }
 
+static void test_refresh(IHTMLDocument2 *doc)
+{
+    IOleCommandTarget *cmdtrg;
+    VARIANT vin, vout;
+    HRESULT hres;
+
+    trace("Refresh...\n");
+
+    hres = IHTMLDocument2_QueryInterface(doc, &IID_IOleCommandTarget, (void**)&cmdtrg);
+    ok(hres == S_OK, "Could not get IOleCommandTarget iface: %08x\n", hres);
+
+    V_VT(&vin) = VT_EMPTY;
+    V_VT(&vout) = VT_EMPTY;
+    SET_EXPECT(Exec_DocHostCommandHandler_2300);
+    hres = IOleCommandTarget_Exec(cmdtrg, NULL, OLECMDID_REFRESH, OLECMDEXECOPT_PROMPTUSER, &vin, &vout);
+    ok(hres == S_OK, "Exec failed: %08x\n", hres);
+    ok(V_VT(&vout) == VT_EMPTY, "V_VT(vout) = %d\n", V_VT(&vout));
+    CHECK_CALLED(Exec_DocHostCommandHandler_2300);
+
+    IOleCommandTarget_Release(cmdtrg);
+
+    test_download(DWL_VERBDONE|DWL_HTTP|DWL_ONREADY_LOADING|DWL_REFRESH);
+}
+
 static void test_open_window(IHTMLDocument2 *doc, BOOL do_block)
 {
     IHTMLWindow2 *window, *new_window;
@@ -6950,6 +7000,7 @@ static void test_HTMLDocument_http(BOOL with_wbapp)
     if(support_wbapp) {
         test_put_href(doc, FALSE, "#test", "http://www.winehq.org/#test", FALSE, TRUE, 0);
         test_travellog(doc);
+        test_refresh(doc);
     }
     test_put_href(doc, FALSE, NULL, "javascript:external%20&&undefined", TRUE, FALSE, 0);
     test_put_href(doc, FALSE, NULL, "about:blank", FALSE, FALSE, support_wbapp ? DWL_EXPECT_HISTUPDATE : 0);




More information about the wine-cvs mailing list