Jacek Caban : mshtml: Added IHTMLDocument2::put_designMode tests.

Alexandre Julliard julliard at winehq.org
Tue Apr 23 13:52:23 CDT 2013


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Apr 23 12:58:28 2013 +0200

mshtml: Added IHTMLDocument2::put_designMode tests.

---

 dlls/mshtml/tests/htmldoc.c |   93 +++++++++++++++++++++++++++++++++++++------
 1 files changed, 80 insertions(+), 13 deletions(-)

diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c
index de003f1..f1fa06e 100644
--- a/dlls/mshtml/tests/htmldoc.c
+++ b/dlls/mshtml/tests/htmldoc.c
@@ -157,6 +157,7 @@ DEFINE_EXPECT(OnFrameWindowActivate);
 DEFINE_EXPECT(OnChanged_READYSTATE);
 DEFINE_EXPECT(OnChanged_1005);
 DEFINE_EXPECT(OnChanged_1012);
+DEFINE_EXPECT(OnChanged_1014);
 DEFINE_EXPECT(GetDisplayName);
 DEFINE_EXPECT(BindToStorage);
 DEFINE_EXPECT(IsSystemMoniker);
@@ -945,6 +946,9 @@ static HRESULT WINAPI PropertyNotifySink_OnChanged(IPropertyNotifySink *iface, D
     case 1012:
         CHECK_EXPECT2(OnChanged_1012);
         return S_OK;
+    case 1014:
+        CHECK_EXPECT2(OnChanged_1014);
+        return S_OK;
     case 1030:
     case 3000022:
     case 3000023:
@@ -5311,6 +5315,7 @@ static void test_Load(IPersistMoniker *persist, IMoniker *mon)
 #define DWL_EXPECT_HISTUPDATE  0x0080
 #define DWL_FROM_HISTORY       0x0100
 #define DWL_REFRESH            0x0200
+#define DWL_EX_GETHOSTINFO     0x0400
 
 static void test_download(DWORD flags)
 {
@@ -5333,7 +5338,7 @@ static void test_download(DWORD flags)
     }
     if(flags & (DWL_VERBDONE|DWL_HTTP))
         SET_EXPECT(Exec_SETPROGRESSMAX);
-    if((flags & DWL_VERBDONE) && !load_from_stream && !is_js)
+    if(flags & DWL_EX_GETHOSTINFO)
         SET_EXPECT(GetHostInfo);
     SET_EXPECT(SetStatusText);
     if(!(flags & DWL_EMPTY))
@@ -5419,7 +5424,7 @@ static void test_download(DWORD flags)
         CHECK_CALLED(Exec_SETPROGRESSMAX);
     if(flags & DWL_HTTP)
         SET_CALLED(Exec_SETPROGRESSMAX);
-    if((flags & DWL_VERBDONE) && !load_from_stream && !is_js) {
+    if(flags &  DWL_EX_GETHOSTINFO) {
         if(nav_url)
             todo_wine CHECK_CALLED(GetHostInfo);
         else
@@ -5697,7 +5702,7 @@ static void test_put_href(IHTMLDocument2 *doc, BOOL use_replace, const char *hre
 
         if(is_js)
             ignore_external_qi = TRUE;
-        test_download(DWL_VERBDONE | (is_js ? DWL_JAVASCRIPT : DWL_ONREADY_LOADING) | dwl_flags);
+        test_download(DWL_VERBDONE | (is_js ? DWL_JAVASCRIPT : DWL_ONREADY_LOADING|DWL_EX_GETHOSTINFO) | dwl_flags);
         if(is_js)
             ignore_external_qi = FALSE;
 
@@ -5749,7 +5754,7 @@ static void test_load_history(IHTMLDocument2 *doc)
     load_state = LD_LOADING;
     test_timer(EXPECT_UPDATEUI|EXPECT_SETTITLE);
 
-    test_download(DWL_VERBDONE|DWL_HTTP|DWL_EXPECT_HISTUPDATE|DWL_ONREADY_LOADING|DWL_FROM_HISTORY);
+    test_download(DWL_VERBDONE|DWL_HTTP|DWL_EXPECT_HISTUPDATE|DWL_ONREADY_LOADING|DWL_FROM_HISTORY|DWL_EX_GETHOSTINFO);
 
     IPersistHistory_Release(per_hist);
     IStream_Release(history_stream);
@@ -5777,7 +5782,7 @@ static void test_refresh(IHTMLDocument2 *doc)
 
     IOleCommandTarget_Release(cmdtrg);
 
-    test_download(DWL_VERBDONE|DWL_HTTP|DWL_ONREADY_LOADING|DWL_REFRESH);
+    test_download(DWL_VERBDONE|DWL_HTTP|DWL_ONREADY_LOADING|DWL_REFRESH|DWL_EX_GETHOSTINFO);
 }
 
 static void test_open_window(IHTMLDocument2 *doc, BOOL do_block)
@@ -7498,7 +7503,7 @@ static void test_edit_uiactivate(IOleObject *oleobj)
     IOleDocumentView_Release(docview);
 }
 
-static void test_editing_mode(BOOL do_load)
+static void test_editing_mode(BOOL do_load, BOOL use_design_mode)
 {
     IHTMLDocument2 *doc;
     IUnknown *unk;
@@ -7506,7 +7511,7 @@ static void test_editing_mode(BOOL do_load)
     DWORD conn;
     HRESULT hres;
 
-    trace("Testing HTMLDocument (edit%s)...\n", do_load ? " load" : "");
+    trace("Testing HTMLDocument (edit%s%s)...\n", do_load ? " load" : "", use_design_mode ? " using designMode" : "");
 
     init_test(do_load ? LD_DOLOAD : LD_NO);
     call_UIActivate = CallUIActivate_AfterShow;
@@ -7531,13 +7536,74 @@ static void test_editing_mode(BOOL do_load)
     if(do_load)
         test_Persist(doc, &Moniker);
     stream_read = protocol_read = 0;
-    test_exec_editmode(unk, do_load);
-    test_UIDeactivate();
-    call_UIActivate = CallUIActivate_None;
+
+    if(!use_design_mode) {
+        test_exec_editmode(unk, do_load);
+        test_UIDeactivate();
+        call_UIActivate = CallUIActivate_None;
+    }else {
+        BSTR on;
+
+        SET_EXPECT(Exec_SETTITLE);
+        test_download(DWL_VERBDONE|DWL_CSS|DWL_TRYCSS);
+        CLEAR_CALLED(Exec_SETTITLE);
+
+        editmode = TRUE;
+        load_state = LD_DOLOAD;
+        readystate_set_loading = TRUE;
+
+        SET_EXPECT(OnChanged_1005);
+        SET_EXPECT(ActiveElementChanged);
+        SET_EXPECT(GetClassID);
+        SET_EXPECT(SetStatusText);
+        SET_EXPECT(Exec_ShellDocView_37);
+        SET_EXPECT(GetHostInfo);
+        SET_EXPECT(GetDisplayName);
+        SET_EXPECT(Invoke_AMBIENT_SILENT);
+        SET_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
+        SET_EXPECT(OnChanged_READYSTATE);
+        SET_EXPECT(Invoke_OnReadyStateChange_Loading);
+        SET_EXPECT(IsSystemMoniker);
+        SET_EXPECT(Exec_ShellDocView_84);
+        SET_EXPECT(BindToStorage);
+        SET_EXPECT(InPlaceUIWindow_SetActiveObject);
+        SET_EXPECT(HideUI);
+        SET_EXPECT(ShowUI);
+        SET_EXPECT(InPlaceFrame_SetBorderSpace);
+        SET_EXPECT(OnChanged_1014);
+
+        on = a2bstr("On");
+        hres = IHTMLDocument2_put_designMode(doc, on);
+        SysFreeString(on);
+        ok(hres == S_OK, "put_designMode failed: %08x\n", hres);
+
+        todo_wine CHECK_CALLED(OnChanged_1005);
+        todo_wine CHECK_CALLED(ActiveElementChanged);
+        CHECK_CALLED(GetClassID);
+        CHECK_CALLED(SetStatusText);
+        CHECK_CALLED(Exec_ShellDocView_37);
+        CHECK_CALLED(GetHostInfo);
+        CHECK_CALLED(GetDisplayName);
+        CHECK_CALLED(Invoke_AMBIENT_SILENT);
+        CHECK_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
+        CHECK_CALLED(OnChanged_READYSTATE);
+        CHECK_CALLED(Invoke_OnReadyStateChange_Loading);
+        CLEAR_CALLED(IsSystemMoniker); /* IE7 */
+        CHECK_CALLED_BROKEN(Exec_ShellDocView_84);
+        CHECK_CALLED(BindToStorage);
+        CHECK_CALLED(InPlaceUIWindow_SetActiveObject);
+        CHECK_CALLED(HideUI);
+        CHECK_CALLED(ShowUI);
+        CHECK_CALLED(InPlaceFrame_SetBorderSpace);
+        CHECK_CALLED(OnChanged_1014);
+
+        test_timer(EXPECT_UPDATEUI|EXPECT_SETTITLE);
+    }
+
     IOleObject_Release(oleobj);
 
     test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
-    test_download(DWL_VERBDONE | (do_load ? DWL_CSS|DWL_TRYCSS : 0));
+    test_download(DWL_VERBDONE | DWL_EX_GETHOSTINFO | (do_load ? DWL_CSS|DWL_TRYCSS : 0));
 
     SET_EXPECT(SetStatusText); /* ignore race in native mshtml */
     test_timer(EXPECT_UPDATEUI);
@@ -7856,8 +7922,9 @@ START_TEST(htmldoc)
     test_HTMLDocument(TRUE, TRUE);
     test_HTMLDocument_StreamLoad();
     test_HTMLDocument_StreamInitNew();
-    test_editing_mode(FALSE);
-    test_editing_mode(TRUE);
+    test_editing_mode(FALSE, FALSE);
+    test_editing_mode(TRUE, FALSE);
+    test_editing_mode(TRUE, TRUE);
     test_HTMLDocument_http(FALSE);
     test_HTMLDocument_http(TRUE);
     test_UIActivate(FALSE, FALSE, FALSE);




More information about the wine-cvs mailing list