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;
}
case 3000029:
case 3000030:
case 3000031:
+ case 3000032:
/* TODO */
return S_OK;
}
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;
}
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;
}
test_readyState(NULL);
return S_OK;
case OLECMDID_UPDATETRAVELENTRY_DATARECOVERY:
+ case OLECMDID_PAGEAVAILABLE:
case 6058:
return E_FAIL; /* FIXME */
default:
}
if(IsEqualGUID(&CGID_ShellDocView, pguidCmdGroup)) {
- if(nCmdID != 63 && (!is_refresh || nCmdID != 37))
- test_readyState(NULL);
ok(nCmdexecopt == 0, "nCmdexecopts=%08x\n", nCmdexecopt);
switch(nCmdID) {
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)
if(pvaIn)
ok(V_VT(pvaOut) == VT_EMPTY, "V_VT(pvaOut)=%d\n", V_VT(pvaOut));
+ test_readyState(NULL);
return E_NOTIMPL;
case 103:
ok(pvaIn == NULL, "pvaIn != NULL\n");
ok(pvaOut == NULL, "pvaOut != NULL\n");
+ test_readyState(NULL);
return E_NOTIMPL;
case 105:
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:
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:
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:
{
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;
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);
switch(load_state) {
case LD_DOLOAD:
case LD_NO:
- if(!nav_url)
+ if(!nav_url && !editmode)
ok(!elem, "elem != NULL\n");
default:
break;
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);
SET_EXPECT(CountEntries);
SET_EXPECT(Exec_HTTPEQUIV_DONE);
}
- SET_EXPECT(SetStatusText);
if(nav_url || support_wbapp) {
SET_EXPECT(UpdateUI);
SET_EXPECT(Exec_UPDATECOMMANDS);
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)) {
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;
}
}
+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)
{
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);
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);
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);
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);
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 */
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);
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;
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;
}
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;
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);
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;
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);
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);
}
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);
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);
}
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);