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;
}
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;
}
}
if(IsEqualGUID(&CGID_ShellDocView, pguidCmdGroup)) {
- if(nCmdID != 63 && nCmdID != 178 && (!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 144: /* TODO */
case 178:
case 179:
+ case 180:
+ case 181:
+ case 182:
+ case 183:
return E_NOTIMPL;
default:
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);
SET_EXPECT(CountEntries);
SET_EXPECT(Exec_HTTPEQUIV_DONE);
}
- SET_EXPECT(SetStatusText);
if(nav_url || support_wbapp) {
SET_EXPECT(UpdateUI);
SET_EXPECT(Exec_UPDATECOMMANDS);
}
}
+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)
{
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);
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);
}
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);