[MSHTML_WINETEST]
[reactos.git] / rostests / winetests / mshtml / htmldoc.c
index ffa2234..1ca1878 100644 (file)
@@ -872,7 +872,13 @@ static IHlinkFrame HlinkFrame = { &HlinkFrameVtbl };
 
 static HRESULT WINAPI NewWindowManager_QueryInterface(INewWindowManager *iface, REFIID riid, void **ppv)
 {
-    ok(0, "unexpected call\n");
+    if(IsEqualGUID(&IID_IUnknown, riid) || IsEqualGUID(riid, &IID_INewWindowManager)) {
+        *ppv = iface;
+        return S_OK;
+    }
+
+    trace("NewWindowManager_QueryInterface %s\n", wine_dbgstr_guid(riid));
+    *ppv = NULL;
     return E_NOINTERFACE;
 }
 
@@ -978,6 +984,7 @@ static HRESULT WINAPI PropertyNotifySink_OnChanged(IPropertyNotifySink *iface, D
     case 3000029:
     case 3000030:
     case 3000031:
+    case 3000032:
         /* TODO */
         return S_OK;
     }
@@ -2613,6 +2620,12 @@ static HRESULT WINAPI DocHostUIHandler_TranslateUrl(IDocHostUIHandler2 *iface, D
     ok(ppchURLOut != NULL, "ppchURLOut == NULL\n");
     ok(!*ppchURLOut, "*ppchURLOut = %p\n", *ppchURLOut);
 
+    /* Not related to hash navigation, just return NULL and S_OK in some cases. */
+    if(loading_hash) {
+        *ppchURLOut = NULL;
+        return S_OK;
+    }
+
     return S_FALSE;
 }
 
@@ -2632,7 +2645,7 @@ static HRESULT WINAPI DocHostUIHandler_GetOverrideKeyPath(IDocHostUIHandler2 *if
     ok(pchKey != NULL, "pchKey = NULL\n");
     if(pchKey)
         ok(!*pchKey, "*pchKey=%p, expected NULL\n", *pchKey);
-    ok(!dw, "dw=%d, xepected 0\n", dw);
+    ok(!dw, "dw=%d, expected 0\n", dw);
     return S_OK;
 }
 
@@ -2855,6 +2868,7 @@ static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID
             test_readyState(NULL);
             return S_OK;
         case OLECMDID_UPDATETRAVELENTRY_DATARECOVERY:
+        case OLECMDID_PAGEAVAILABLE:
         case 6058:
             return E_FAIL; /* FIXME */
         default:
@@ -2864,8 +2878,6 @@ static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID
     }
 
     if(IsEqualGUID(&CGID_ShellDocView, pguidCmdGroup)) {
-        if(nCmdID != 63 && (!is_refresh || nCmdID != 37))
-            test_readyState(NULL);
         ok(nCmdexecopt == 0, "nCmdexecopts=%08x\n", nCmdexecopt);
 
         switch(nCmdID) {
@@ -2879,6 +2891,8 @@ static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID
                 test_readyState(NULL);
                 load_state = LD_LOADING;
             }else {
+                if(!is_refresh)
+                    test_readyState(NULL);
                 if(nav_url)
                     test_GetCurMoniker(doc_unk, NULL, nav_serv_url, FALSE);
                 else if(load_from_stream)
@@ -2942,6 +2956,7 @@ static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID
             if(pvaIn)
                 ok(V_VT(pvaOut) == VT_EMPTY, "V_VT(pvaOut)=%d\n", V_VT(pvaOut));
 
+            test_readyState(NULL);
             return E_NOTIMPL;
 
         case 103:
@@ -2950,6 +2965,7 @@ static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID
             ok(pvaIn == NULL, "pvaIn != NULL\n");
             ok(pvaOut == NULL, "pvaOut != NULL\n");
 
+            test_readyState(NULL);
             return E_NOTIMPL;
 
         case 105:
@@ -2958,12 +2974,14 @@ static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID
             ok(pvaIn != NULL, "pvaIn == NULL\n");
             ok(pvaOut == NULL, "pvaOut != NULL\n");
 
+            test_readyState(NULL);
             return E_NOTIMPL;
 
         case 138:
             CHECK_EXPECT2(Exec_ShellDocView_138);
             ok(!pvaIn, "pvaIn != NULL\n");
             ok(!pvaOut, "pvaOut != NULL\n");
+            test_readyState(NULL);
             return S_OK;
 
         case 140:
@@ -2972,17 +2990,27 @@ static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID
             ok(pvaIn == NULL, "pvaIn != NULL\n");
             ok(pvaOut == NULL, "pvaOut != NULL\n");
 
+            test_readyState(NULL);
             return E_NOTIMPL;
 
         case 83:
+        case 101:
         case 102:
+        case 132:
+        case 133:
         case 134: /* TODO */
         case 135:
         case 136: /* TODO */
+        case 137:
         case 139: /* TODO */
         case 143: /* TODO */
         case 144: /* TODO */
         case 178:
+        case 179:
+        case 180:
+        case 181:
+        case 182:
+        case 183:
             return E_NOTIMPL;
 
         default:
@@ -3162,7 +3190,9 @@ static HRESULT WINAPI Dispatch_Invoke(IDispatch *iface, DISPID dispIdMember, REF
     ok(puArgErr != NULL, "puArgErr == NULL\n");
     ok(V_VT(pVarResult) == 0, "V_VT(pVarResult)=%d, expected 0\n", V_VT(pVarResult));
     ok(wFlags == DISPATCH_PROPERTYGET, "wFlags=%08x, expected DISPATCH_PROPERTYGET\n", wFlags);
-    test_readyState(NULL);
+
+    if(dispIdMember != DISPID_AMBIENT_SILENT && dispIdMember != DISPID_AMBIENT_OFFLINEIFNOTCONNECTED)
+        test_readyState(NULL);
 
     switch(dispIdMember) {
     case DISPID_AMBIENT_USERMODE:
@@ -3290,13 +3320,15 @@ static HRESULT WINAPI TravelLog_QueryInterface(ITravelLog *iface, REFIID riid, v
 {
     static const IID IID_IIETravelLog2 = {0xb67cefd2,0xe3f1,0x478a,{0x9b,0xfa,0xd8,0x93,0x70,0x37,0x5e,0x94}};
     static const IID IID_unk_travellog = {0x6afc8b7f,0xbc17,0x4a95,{0x90,0x2f,0x6f,0x5c,0xb5,0x54,0xc3,0xd8}};
+    static const IID IID_unk_travellog2 = {0xf6d02767,0x9c80,0x428d,{0xb9,0x74,0x3f,0x17,0x29,0x45,0x3f,0xdb}};
 
     if(IsEqualGUID(&IID_IUnknown, riid) || IsEqualGUID(&IID_ITravelLog, riid)) {
         *ppv = iface;
         return S_OK;
     }
 
-    if(!IsEqualGUID(&IID_IIETravelLog2, riid) && !IsEqualGUID(&IID_unk_travellog, riid))
+    if(!IsEqualGUID(&IID_IIETravelLog2, riid) && !IsEqualGUID(&IID_unk_travellog, riid)
+       && !IsEqualGUID(&IID_unk_travellog2, riid))
         ok(0, "unexpected call %s\n", wine_dbgstr_guid(riid));
 
     *ppv = NULL;
@@ -3430,12 +3462,13 @@ static HRESULT  WINAPI DocObjectService_FireBeforeNavigate2(IDocObjectService *i
 
     ok(!pDispatch, "pDispatch = %p\n", pDispatch);
     ok(!strcmp_wa(lpszUrl, nav_url), "lpszUrl = %s, expected %s\n", wine_dbgstr_w(lpszUrl), nav_url);
-    ok(dwFlags == 0x40 || !dwFlags || dwFlags == 0x50, "dwFlags = %x\n", dwFlags);
+    ok(dwFlags == 0x140 /* IE11*/ || dwFlags == 0x40 || !dwFlags || dwFlags == 0x50, "dwFlags = %x\n", dwFlags);
     ok(!lpszFrameName, "lpszFrameName = %s\n", wine_dbgstr_w(lpszFrameName));
     if(!testing_submit) {
         ok(!pPostData, "pPostData = %p\n", pPostData);
         ok(!cbPostData, "cbPostData = %d\n", cbPostData);
-        ok(!lpszHeaders, "lpszHeaders = %s\n", wine_dbgstr_w(lpszHeaders));
+        ok(!lpszHeaders || !strcmp_wa(lpszHeaders, "Referer: http://test.winehq.org/tests/winehq_snapshot/\r\n"),
+           "lpszHeaders = %s\n", wine_dbgstr_w(lpszHeaders));
     }else {
         ok(cbPostData == 9, "cbPostData = %d\n", cbPostData);
         ok(!memcmp(pPostData, "cmd=TEST", cbPostData), "pPostData = %p\n", pPostData);
@@ -5291,7 +5324,7 @@ static void test_doscroll(IUnknown *unk)
     switch(load_state) {
     case LD_DOLOAD:
     case LD_NO:
-        if(!nav_url)
+        if(!nav_url && !editmode)
             ok(!elem, "elem != NULL\n");
     default:
         break;
@@ -5453,8 +5486,29 @@ static void test_ConnectionPoint(IConnectionPointContainer *container, REFIID ri
         hres = IConnectionPoint_Advise(cp, (IUnknown*)&PropertyNotifySink, NULL);
         ok(hres == S_OK, "Advise failed: %08x\n", hres);
     } else if(IsEqualGUID(&IID_IDispatch, riid)) {
+        IEnumConnections *enum_conn;
+        CONNECTDATA conn_data;
+        ULONG fetched;
+
         hres = IConnectionPoint_Advise(cp, (IUnknown*)&EventDispatch, &cookie);
         ok(hres == S_OK, "Advise failed: %08x\n", hres);
+
+        hres = IConnectionPoint_EnumConnections(cp, &enum_conn);
+        ok(hres == S_OK, "EnumConnections failed: %08x\n", hres);
+
+        fetched = 0;
+        hres = IEnumConnections_Next(enum_conn, 1, &conn_data, &fetched);
+        ok(hres == S_OK, "Next failed: %08x\n", hres);
+        ok(conn_data.pUnk == (IUnknown*)&EventDispatch, "conn_data.pUnk == EventDispatch\n");
+        ok(conn_data.dwCookie == cookie, "conn_data.dwCookie != cookie\n");
+        IUnknown_Release(conn_data.pUnk);
+
+        fetched = 0xdeadbeef;
+        hres = IEnumConnections_Next(enum_conn, 1, &conn_data, &fetched);
+        ok(hres == S_FALSE, "Next failed: %08x\n", hres);
+        ok(!fetched, "fetched = %d\n", fetched);
+
+        IEnumConnections_Release(enum_conn);
     }
 
     IConnectionPoint_Release(cp);
@@ -5698,7 +5752,6 @@ static void test_download(DWORD flags)
             SET_EXPECT(CountEntries);
         SET_EXPECT(Exec_HTTPEQUIV_DONE);
     }
-    SET_EXPECT(SetStatusText);
     if(nav_url || support_wbapp) {
         SET_EXPECT(UpdateUI);
         SET_EXPECT(Exec_UPDATECOMMANDS);
@@ -5722,6 +5775,8 @@ static void test_download(DWORD flags)
         SET_EXPECT(NavigateWithBindCtx);
         SET_EXPECT(Exec_Explorer_38); /* todo_wine */
     }
+    if(editmode || is_refresh)
+        SET_EXPECT(Exec_ShellDocView_138);
     expect_status_text = (LPWSTR)0xdeadbeef; /* TODO */
 
     while(!*b && GetMessageW(&msg, NULL, 0, 0)) {
@@ -5844,6 +5899,8 @@ static void test_download(DWORD flags)
         CHECK_CALLED(NavigateWithBindCtx);
         todo_wine CHECK_NOT_CALLED(Exec_Explorer_38);
     }
+    if(editmode || is_refresh)
+        CLEAR_CALLED(Exec_ShellDocView_138); /* IE11 */
 
     if(!is_extern)
         load_state = LD_COMPLETE;
@@ -5890,6 +5947,56 @@ static void test_Persist(IHTMLDocument2 *doc, IMoniker *mon)
     }
 }
 
+static void test_put_hash(IHTMLDocument2 *doc, const char *new_hash)
+{
+    static char nav_url_buff[256];
+    IHTMLLocation *location;
+    BSTR str;
+    char *psharp;
+    HRESULT hres;
+
+    trace("put_hash, url = %s, new hash = %s\n", nav_url, new_hash);
+
+    location = NULL;
+    hres = IHTMLDocument2_get_location(doc, &location);
+    ok(hres == S_OK, "get_location failed: %08x\n", hres);
+    ok(location != NULL, "location == NULL\n");
+
+    SET_EXPECT(TranslateUrl);
+    SET_EXPECT(Exec_ShellDocView_67);
+    SET_EXPECT(FireBeforeNavigate2);
+    SET_EXPECT(FireDocumentComplete);
+    SET_EXPECT(FireNavigateComplete2);
+
+    /* Edit nav_url */
+    strcpy(nav_url_buff, nav_url);
+    psharp = strchr(nav_url_buff, '#');
+    if (psharp)
+        *psharp = '\0';
+    strcat(nav_url_buff, new_hash);
+    nav_url = nav_url_buff;
+
+    str = a2bstr(new_hash);
+    hres = IHTMLLocation_put_hash(location, str);
+    ok (hres == S_OK, "put_hash failed: %08x\n", hres);
+    SysFreeString(str);
+
+    CHECK_CALLED(TranslateUrl);
+    CHECK_CALLED_BROKEN(Exec_ShellDocView_67); /* Broken on Win7 and 8 */
+    CHECK_CALLED(FireBeforeNavigate2);
+    CHECK_CALLED(FireDocumentComplete);
+    CHECK_CALLED(FireNavigateComplete2);
+
+
+    /* Check the result */
+    hres = IHTMLLocation_get_hash(location, &str);
+    ok(hres == S_OK, "get_hash failed: %08x\n", hres);
+    ok(!strcmp_wa(str, new_hash), "expected %s, got %s\n", new_hash, wine_dbgstr_w(str));
+    SysFreeString(str);
+
+    IHTMLLocation_Release(location);
+}
+
 static void test_put_href(IHTMLDocument2 *doc, BOOL use_replace, const char *href, const char *new_nav_url, BOOL is_js,
         BOOL is_hash, DWORD dwl_flags)
 {
@@ -5949,7 +6056,7 @@ static void test_put_href(IHTMLDocument2 *doc, BOOL use_replace, const char *hre
         CHECK_CALLED(TranslateUrl);
         if(support_wbapp) {
             CHECK_CALLED(FireBeforeNavigate2);
-            CHECK_CALLED(Exec_ShellDocView_67);
+            CLEAR_CALLED(Exec_ShellDocView_67); /* Not called by IE11 */
             if(!is_hash) {
                 CHECK_CALLED(Invoke_AMBIENT_SILENT);
                 CHECK_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
@@ -6015,7 +6122,7 @@ static void test_put_href(IHTMLDocument2 *doc, BOOL use_replace, const char *hre
         ok(hres == S_OK, "SuperNavigate failed: %08x\n", hres);
 
         CHECK_CALLED(TranslateUrl);
-        CHECK_CALLED(Exec_ShellDocView_67);
+        CLEAR_CALLED(Exec_ShellDocView_67); /* Not called by IE11 */
         CHECK_CALLED(Invoke_AMBIENT_SILENT);
         CHECK_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
         CHECK_CALLED(Exec_ShellDocView_63);
@@ -6074,7 +6181,7 @@ static void test_load_history(IHTMLDocument2 *doc)
     ok(hres == S_OK, "Could not get IPersistHistory iface: %08x\n", hres);
 
     prev_url = nav_url;
-    nav_url = "http://test.winehq.org/tests/winehq_snapshot/#test";
+    nav_url = "http://test.winehq.org/tests/winehq_snapshot/#hash_test";
     nav_serv_url = "http://test.winehq.org/tests/winehq_snapshot/";
 
     SET_EXPECT(Exec_ShellDocView_138);
@@ -6086,8 +6193,8 @@ static void test_load_history(IHTMLDocument2 *doc)
     hres = IPersistHistory_LoadHistory(per_hist, history_stream, NULL);
     ok(hres == S_OK, "LoadHistory failed: %08x\n", hres);
 
-    CHECK_CALLED_BROKEN(Exec_ShellDocView_138);
-    CHECK_CALLED(Exec_ShellDocView_67);
+    CLEAR_CALLED(Exec_ShellDocView_138); /* Not called by IE11 */
+    CLEAR_CALLED(Exec_ShellDocView_67); /* Not called by IE11 */
     CHECK_CALLED(FireBeforeNavigate2);
     CHECK_CALLED(Invoke_AMBIENT_SILENT);
     CHECK_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
@@ -6255,7 +6362,7 @@ static void test_clear(IHTMLDocument2 *doc)
     ok(hres == S_OK, "clear failed: %08x\n", hres);
 }
 
-static const OLECMDF expect_cmds[OLECMDID_GETPRINTTEMPLATE+1] = {
+static const OLECMDF expect_cmds[] = {
     0,
     OLECMDF_SUPPORTED,                  /* OLECMDID_OPEN */
     OLECMDF_SUPPORTED,                  /* OLECMDID_NEW */
@@ -6310,7 +6417,7 @@ static void _test_QueryStatus(unsigned line, IUnknown *unk, REFIID cgid, ULONG c
         return;
 
     hres = IOleCommandTarget_QueryStatus(cmdtrg, cgid, 1, &olecmd, NULL);
-    ok(hres == S_OK, "QueryStatus(%u) failed: %08x\n", cmdid, hres);
+    ok(hres == cmdf ? S_OK : OLECMDERR_E_NOTSUPPORTED, "QueryStatus(%u) failed: %08x\n", cmdid, hres);
 
     IOleCommandTarget_Release(cmdtrg);
 
@@ -6343,7 +6450,7 @@ static void test_MSHTML_QueryStatus(IHTMLDocument2 *doc, DWORD cmdf)
 static void test_OleCommandTarget(IHTMLDocument2 *doc)
 {
     IOleCommandTarget *cmdtrg;
-    OLECMD cmds[OLECMDID_GETPRINTTEMPLATE];
+    OLECMD cmds[sizeof(expect_cmds)/sizeof(*expect_cmds)-1];
     int i;
     HRESULT hres;
 
@@ -6352,7 +6459,7 @@ static void test_OleCommandTarget(IHTMLDocument2 *doc)
     if(FAILED(hres))
         return;
 
-    for(i=0; i<OLECMDID_GETPRINTTEMPLATE; i++) {
+    for(i=0; i < sizeof(cmds)/sizeof(*cmds); i++) {
         cmds[i].cmdID = i+1;
         cmds[i].cmdf = 0xf0f0;
     }
@@ -6364,7 +6471,7 @@ static void test_OleCommandTarget(IHTMLDocument2 *doc)
     CHECK_CALLED(QueryStatus_OPEN);
     CHECK_CALLED(QueryStatus_NEW);
 
-    for(i=0; i<OLECMDID_GETPRINTTEMPLATE; i++) {
+    for(i=0; i < sizeof(cmds)/sizeof(*cmds); i++) {
         ok(cmds[i].cmdID == i+1, "cmds[%d].cmdID canged to %x\n", i, cmds[i].cmdID);
         if(i+1 == OLECMDID_FIND)
             continue;
@@ -6467,11 +6574,10 @@ static void test_exec_editmode(IUnknown *unk, BOOL loaded)
 
     editmode = TRUE;
 
-    if(loaded)
+    if(loaded) {
         load_state = LD_DOLOAD;
-
-    if(loaded)
         SET_EXPECT(GetClassID);
+    }
     SET_EXPECT(SetStatusText);
     SET_EXPECT(Exec_ShellDocView_37);
     SET_EXPECT(GetHostInfo);
@@ -6587,6 +6693,31 @@ static void test_exec_noargs(IUnknown *unk, DWORD cmdid)
     IOleCommandTarget_Release(cmdtrg);
 }
 
+static void test_exec_optical_zoom(IHTMLDocument2 *doc, int factor)
+{
+    IOleCommandTarget *cmdtrg;
+    VARIANT v;
+    HRESULT hres;
+
+    hres = IHTMLDocument2_QueryInterface(doc, &IID_IOleCommandTarget, (void**)&cmdtrg);
+    ok(hres == S_OK, "QueryInterface(IID_IOleCommandTarget) failed: %08x\n", hres);
+    if(FAILED(hres))
+        return;
+
+    V_VT(&v) = VT_I4;
+    V_I4(&v) = factor;
+
+    SET_EXPECT(GetOverrideKeyPath);
+    hres = IOleCommandTarget_Exec(cmdtrg, NULL, OLECMDID_OPTICAL_ZOOM,
+            OLECMDEXECOPT_DODEFAULT, &v, NULL);
+    ok(hres == S_OK || broken(hres == OLECMDERR_E_NOTSUPPORTED) /* IE6 */, "Exec failed: %08x\n", hres);
+    CLEAR_CALLED(GetOverrideKeyPath);
+
+    IOleCommandTarget_Release(cmdtrg);
+
+    test_QueryStatus((IUnknown*)doc, NULL, OLECMDID_OPTICAL_ZOOM, 0);
+}
+
 static void test_IsDirty(IHTMLDocument2 *doc, HRESULT exhres)
 {
     IPersistStreamInit *perinit;
@@ -7452,6 +7583,8 @@ static void test_HTMLDocument(BOOL do_load, BOOL mime)
     test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
     test_OleCommandTarget_fail(doc);
     test_OleCommandTarget(doc);
+    test_exec_optical_zoom(doc, 200);
+    test_exec_optical_zoom(doc, 100);
     test_OnAmbientPropertyChange(doc);
     test_Window(doc, TRUE);
     test_external(doc, TRUE);
@@ -7653,6 +7786,7 @@ static void test_HTMLDocument_http(BOOL with_wbapp)
     nav_url = nav_serv_url = "http://test.winehq.org/tests/winehq_snapshot/"; /* for valid prev nav_url */
     if(support_wbapp) {
         test_put_href(doc, FALSE, "#test", "http://test.winehq.org/tests/winehq_snapshot/#test", FALSE, TRUE, 0);
+        test_put_hash(doc, "#hash_test");
         test_travellog(doc);
         test_refresh(doc);
     }
@@ -7810,11 +7944,11 @@ static void test_submit(void)
 
     CHECK_CALLED(TranslateUrl);
     CHECK_CALLED(FireBeforeNavigate2);
-    CHECK_CALLED(Exec_ShellDocView_67);
+    CLEAR_CALLED(Exec_ShellDocView_67); /* Not called by IE11 */
     CHECK_CALLED(Invoke_AMBIENT_SILENT);
     CHECK_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
     CHECK_CALLED(Exec_ShellDocView_63);
-    todo_wine CHECK_CALLED(Exec_ShellDocView_84);
+    CLEAR_CALLED(Exec_ShellDocView_84); /* Not called by IE11 */
     CHECK_CALLED(CreateInstance);
     CHECK_CALLED(Start);
     CHECK_CALLED(Protocol_Read);
@@ -8429,8 +8563,12 @@ static void test_ServiceProvider(void)
     hres = IServiceProvider_QueryService(provider, &SID_SContainerDispatch, &IID_IUnknown, (void**)&unk);
     ok(hres == S_OK, "got 0x%08x\n", hres);
     ok(iface_cmp((IUnknown*)doc, unk), "got wrong pointer\n");
+    IUnknown_Release(unk);
 
+    hres = IServiceProvider_QueryService(provider, &SID_SHTMLEditServices, &IID_IHTMLEditServices, (void**)&unk);
+    ok(hres == S_OK, "QueryService(HTMLEditServices) failed: %08x\n", hres);
     IUnknown_Release(unk);
+
     IServiceProvider_Release(provider);
     release_document(doc);
 }
@@ -8458,22 +8596,11 @@ START_TEST(htmldoc)
     test_HTMLDocument(TRUE, TRUE);
     test_HTMLDocument_StreamLoad();
     test_HTMLDocument_StreamInitNew();
-    if (winetest_interactive)
-        test_editing_mode(FALSE, FALSE);
-    else
-        skip("Skipping test_editing_mode(FALSE, FALSE). ROSTESTS-113.\n");
+    test_editing_mode(FALSE, FALSE);
     test_editing_mode(TRUE, FALSE);
     test_editing_mode(TRUE, TRUE);
-    if (winetest_interactive)
-    {
-        test_HTMLDocument_http(FALSE);
-        test_HTMLDocument_http(TRUE);
-    }
-    else
-    {
-        skip("Skipping test_HTMLDocument_http(FALSE). ROSTESTS-113.\n");
-        skip("Skipping test_HTMLDocument_http(TRUE). ROSTESTS-113.\n");
-    }
+    test_HTMLDocument_http(FALSE);
+    test_HTMLDocument_http(TRUE);
 
     test_submit();
     test_UIActivate(FALSE, FALSE, FALSE);