mshtml: Added external MIME handling tests.

This commit is contained in:
Jacek Caban 2013-09-19 16:13:20 +02:00 committed by Alexandre Julliard
parent d36ffab315
commit 6e143e6c81
1 changed files with 294 additions and 65 deletions

View File

@ -126,6 +126,7 @@ DEFINE_EXPECT(Exec_HTTPEQUIV_DONE);
DEFINE_EXPECT(Exec_SETDOWNLOADSTATE_0);
DEFINE_EXPECT(Exec_SETDOWNLOADSTATE_1);
DEFINE_EXPECT(Exec_ShellDocView_37);
DEFINE_EXPECT(Exec_ShellDocView_62);
DEFINE_EXPECT(Exec_ShellDocView_63);
DEFINE_EXPECT(Exec_ShellDocView_67);
DEFINE_EXPECT(Exec_ShellDocView_84);
@ -141,6 +142,7 @@ DEFINE_EXPECT(Exec_MSHTML_PARSECOMPLETE);
DEFINE_EXPECT(Exec_Explorer_38);
DEFINE_EXPECT(Exec_Explorer_69);
DEFINE_EXPECT(Exec_DOCCANNAVIGATE);
DEFINE_EXPECT(Exec_DOCCANNAVIGATE_NULL);
DEFINE_EXPECT(Invoke_AMBIENT_USERMODE);
DEFINE_EXPECT(Invoke_AMBIENT_DLCONTROL);
DEFINE_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
@ -200,6 +202,7 @@ DEFINE_EXPECT(FindConnectionPoint);
DEFINE_EXPECT(EnumConnections);
DEFINE_EXPECT(EnumConnections_Next);
DEFINE_EXPECT(WindowClosing);
DEFINE_EXPECT(NavigateWithBindCtx);
static IUnknown *doc_unk;
static IMoniker *doc_mon;
@ -371,8 +374,8 @@ static void test_timer(DWORD flags)
static IMoniker Moniker;
#define test_GetCurMoniker(u,m,v) _test_GetCurMoniker(__LINE__,u,m,v)
static void _test_GetCurMoniker(unsigned line, IUnknown *unk, IMoniker *exmon, const char *exurl)
#define test_GetCurMoniker(u,m,v,t) _test_GetCurMoniker(__LINE__,u,m,v,t)
static void _test_GetCurMoniker(unsigned line, IUnknown *unk, IMoniker *exmon, const char *exurl, BOOL is_todo)
{
IHTMLDocument2 *doc;
IPersistMoniker *permon;
@ -429,7 +432,10 @@ static void _test_GetCurMoniker(unsigned line, IUnknown *unk, IMoniker *exmon, c
hres = IMoniker_GetDisplayName(mon, NULL, NULL, &url);
ok(hres == S_OK, "GetDisplayName failed: %08x\n", hres);
ok_(__FILE__,line)(!strcmp_wa(url, exurl), "unexpected url %s\n", wine_dbgstr_w(url));
if(is_todo)
todo_wine ok_(__FILE__,line)(!strcmp_wa(url, exurl), "unexpected url %s\n", wine_dbgstr_w(url));
else
ok_(__FILE__,line)(!strcmp_wa(url, exurl), "unexpected url %s\n", wine_dbgstr_w(url));
if(!*ptr)
ok_(__FILE__,line)(!lstrcmpW(url, doc_url), "url %s != doc_url %s\n", wine_dbgstr_w(url), wine_dbgstr_w(doc_url));
@ -2854,11 +2860,11 @@ static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID
load_state = LD_LOADING;
}else {
if(nav_url)
test_GetCurMoniker(doc_unk, NULL, nav_serv_url);
test_GetCurMoniker(doc_unk, NULL, nav_serv_url, FALSE);
else if(load_from_stream)
test_GetCurMoniker(doc_unk, NULL, "about:blank");
test_GetCurMoniker(doc_unk, NULL, "about:blank", FALSE);
else if(!editmode)
test_GetCurMoniker(doc_unk, doc_mon, NULL);
test_GetCurMoniker(doc_unk, doc_mon, NULL, FALSE);
}
ok(pvaOut == NULL, "pvaOut=%p, expected NULL\n", pvaOut);
@ -2869,6 +2875,12 @@ static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID
}
return S_OK;
case 62:
CHECK_EXPECT(Exec_ShellDocView_62);
ok(!pvaIn, "pvaIn != NULL\n");
ok(!pvaOut, "pvaOut != NULL\n");
return S_OK;
case 63: {
IHTMLPrivateWindow *priv_window;
HRESULT hres;
@ -2973,14 +2985,16 @@ static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID
if(IsEqualGUID(&CGID_DocHostCmdPriv, pguidCmdGroup)) {
switch(nCmdID) {
case DOCHOST_DOCCANNAVIGATE:
CHECK_EXPECT(Exec_DOCCANNAVIGATE);
if(pvaIn) {
CHECK_EXPECT(Exec_DOCCANNAVIGATE);
ok(V_VT(pvaIn) == VT_UNKNOWN, "V_VT(pvaIn) != VT_UNKNOWN\n");
/* FIXME: test V_UNKNOWN(pvaIn) == window */
}else {
CHECK_EXPECT(Exec_DOCCANNAVIGATE_NULL);
}
test_readyState(NULL);
ok(pvaIn != NULL, "pvaIn == NULL\n");
ok(pvaOut == NULL, "pvaOut != NULL\n");
ok(V_VT(pvaIn) == VT_UNKNOWN, "V_VT(pvaIn) != VT_UNKNOWN\n");
/* FIXME: test V_UNKNOWN(pvaIn) == window */
return S_OK;
case 1: {
SAFEARRAY *sa;
@ -4214,26 +4228,168 @@ static const IConnectionPointContainerVtbl ConnectionPointContainerVtbl = {
static IConnectionPointContainer ConnectionPointContainer = { &ConnectionPointContainerVtbl };
static HRESULT wb_qi(REFIID riid, void **ppv);
static HRESULT WINAPI WebBrowserPriv_QueryInterface(IWebBrowserPriv *iface, REFIID riid, void **ppv)
{
return wb_qi(riid, ppv);
}
static ULONG WINAPI WebBrowserPriv_AddRef(IWebBrowserPriv *iface)
{
return 2;
}
static ULONG WINAPI WebBrowserPriv_Release(IWebBrowserPriv *iface)
{
return 1;
}
static HRESULT WINAPI WebBrowserPriv_NavigateWithBindCtx(IWebBrowserPriv *iface, VARIANT *uri, VARIANT *flags,
VARIANT *target_frame, VARIANT *post_data, VARIANT *headers, IBindCtx *bind_ctx, LPOLESTR url_fragment)
{
trace("NavigateWithBindCtx\n");
CHECK_EXPECT(NavigateWithBindCtx);
ok(V_VT(uri) == VT_BSTR, "V_VT(uri) = %d\n", V_VT(uri));
ok(!strcmp_wa(V_BSTR(uri), nav_url), "V_BSTR(uri) = %s\n", wine_dbgstr_w(V_BSTR(uri)));
ok(V_VT(flags) == VT_I4, "V_VT(flags) = %d\n", V_VT(flags));
ok(V_I4(flags) == navHyperlink, "V_I4(flags) = %x\n", V_I4(flags));
ok(!target_frame, "target_frame != NULL\n");
ok(!post_data, "post_data != NULL\n");
ok(!headers, "headers != NULL\n");
ok(bind_ctx != NULL, "bind_ctx == NULL\n");
ok(!url_fragment, "url_dragment = %s\n", wine_dbgstr_w(url_fragment));
return S_OK;
}
static HRESULT WINAPI WebBrowserPriv_OnClose(IWebBrowserPriv *iface)
{
ok(0, "unexpected call\n");
return E_NOTIMPL;
}
static const IWebBrowserPrivVtbl WebBrowserPrivVtbl = {
WebBrowserPriv_QueryInterface,
WebBrowserPriv_AddRef,
WebBrowserPriv_Release,
WebBrowserPriv_NavigateWithBindCtx,
WebBrowserPriv_OnClose
};
static IWebBrowserPriv WebBrowserPriv = { &WebBrowserPrivVtbl };
static HRESULT WINAPI WebBrowserPriv2IE8_QueryInterface(IWebBrowserPriv2IE8 *iface, REFIID riid, void **ppv)
{
return wb_qi(riid, ppv);
}
static ULONG WINAPI WebBrowserPriv2IE8_AddRef(IWebBrowserPriv2IE8 *iface)
{
return 2;
}
static ULONG WINAPI WebBrowserPriv2IE8_Release(IWebBrowserPriv2IE8 *iface)
{
return 1;
}
static HRESULT WINAPI WebBrowserPriv2IE8_NavigateWithBindCtx2(IWebBrowserPriv2IE8 *iface, IUri *uri, VARIANT *flags,
VARIANT *target_frame, VARIANT *post_data, VARIANT *headers, IBindCtx *bind_ctx, LPOLESTR url_fragment)
{
BSTR str;
HRESULT hres;
trace("NavigateWithBindCtx2\n");
CHECK_EXPECT(NavigateWithBindCtx);
hres = IUri_GetDisplayUri(uri, &str);
ok(hres == S_OK, "GetDisplayUri failed: %08x\n", hres);
ok(!strcmp_wa(str, nav_url), "V_BSTR(uri) = %s\n", wine_dbgstr_w(str));
SysFreeString(str);
ok(V_VT(flags) == VT_I4, "V_VT(flags) = %d\n", V_VT(flags));
ok(V_I4(flags) == navHyperlink, "V_I4(flags) = %x\n", V_I4(flags));
ok(!target_frame, "target_frame != NULL\n");
ok(!post_data, "post_data != NULL\n");
ok(!headers, "headers != NULL\n");
ok(bind_ctx != NULL, "bind_ctx == NULL\n");
ok(!url_fragment, "url_dragment = %s\n", wine_dbgstr_w(url_fragment));
return S_OK;
}
static HRESULT WINAPI WebBrowserPriv2IE8_SetBrowserFrameOptions(IWebBrowserPriv2IE8 *iface, DWORD opt1, DWORD opt2)
{
ok(0, "unexpected call\n");
return E_NOTIMPL;
}
static HRESULT WINAPI WebBrowserPriv2IE8_DetachConnectionPoints(IWebBrowserPriv2IE8 *iface)
{
ok(0, "unexpected call\n");
return E_NOTIMPL;
}
static HRESULT WINAPI WebBrowserPriv2IE8_GetProcessId(IWebBrowserPriv2IE8 *iface, DWORD *pid)
{
ok(0, "unexpected call\n");
return E_NOTIMPL;
}
static HRESULT WINAPI WebBrowserPriv2IE8_CompatAttachEditEvents(IWebBrowserPriv2IE8 *iface)
{
ok(0, "unexpected call\n");
return E_NOTIMPL;
}
static HRESULT WINAPI WebBrowserPriv2IE8_HandleOpenOptions(IWebBrowserPriv2IE8 *iface, IUnknown *obj, BSTR bstr, int options)
{
ok(0, "unexpected call\n");
return E_NOTIMPL;
}
static HRESULT WINAPI WebBrowserPriv2IE8_SetSearchTerm(IWebBrowserPriv2IE8 *iface, BSTR term)
{
ok(0, "unexpected call\n");
return E_NOTIMPL;
}
static HRESULT WINAPI WebBrowserPriv2IE8_GetSearchTerm(IWebBrowserPriv2IE8 *iface, BSTR *term)
{
ok(0, "unexpected call\n");
return E_NOTIMPL;
}
static HRESULT WINAPI WebBrowserPriv2IE8_GetCurrentDocument(IWebBrowserPriv2IE8 *iface, IDispatch **doc)
{
ok(0, "unexpected call\n");
return E_NOTIMPL;
}
static const IWebBrowserPriv2IE8Vtbl WebBrowserPriv2IE8Vtbl = {
WebBrowserPriv2IE8_QueryInterface,
WebBrowserPriv2IE8_AddRef,
WebBrowserPriv2IE8_Release,
WebBrowserPriv2IE8_NavigateWithBindCtx2,
WebBrowserPriv2IE8_SetBrowserFrameOptions,
WebBrowserPriv2IE8_DetachConnectionPoints,
WebBrowserPriv2IE8_GetProcessId,
WebBrowserPriv2IE8_CompatAttachEditEvents,
WebBrowserPriv2IE8_HandleOpenOptions,
WebBrowserPriv2IE8_SetSearchTerm,
WebBrowserPriv2IE8_GetSearchTerm,
WebBrowserPriv2IE8_GetCurrentDocument
};
static IWebBrowserPriv2IE8 WebBrowserPriv2IE8 = { &WebBrowserPriv2IE8Vtbl };
static HRESULT WINAPI WebBrowser_QueryInterface(IWebBrowser2 *iface, REFIID riid, void **ppv)
{
*ppv = NULL;
if(IsEqualGUID(&IID_IUnknown, riid) || IsEqualGUID(&IID_IWebBrowser, riid)
|| IsEqualGUID(&IID_IWebBrowserApp, riid) || IsEqualGUID(&IID_IWebBrowser2, riid)) {
*ppv = iface;
return S_OK;
}
if(IsEqualGUID(riid, &IID_IOleObject))
return E_NOINTERFACE; /* TODO */
if(IsEqualGUID(riid, &IID_IConnectionPointContainer)) {
*ppv = &ConnectionPointContainer;
return S_OK;
}
ok(0, "unexpected call %s\n", debugstr_guid(riid));
return E_NOINTERFACE;
return wb_qi(riid, ppv);
}
static ULONG WINAPI WebBrowser_AddRef(IWebBrowser2 *iface)
@ -4743,6 +4899,38 @@ static const IWebBrowser2Vtbl WebBrowser2Vtbl =
static IWebBrowser2 WebBrowser2 = { &WebBrowser2Vtbl };
static HRESULT wb_qi(REFIID riid, void **ppv)
{
*ppv = NULL;
if(IsEqualGUID(&IID_IUnknown, riid) || IsEqualGUID(&IID_IWebBrowser, riid)
|| IsEqualGUID(&IID_IWebBrowserApp, riid) || IsEqualGUID(&IID_IWebBrowser2, riid)) {
*ppv = &WebBrowser2;
return S_OK;
}
if(IsEqualGUID(riid, &IID_IOleObject))
return E_NOINTERFACE; /* TODO */
if(IsEqualGUID(riid, &IID_IConnectionPointContainer)) {
*ppv = &ConnectionPointContainer;
return S_OK;
}
if(IsEqualGUID(riid, &IID_IWebBrowserPriv)) {
*ppv = &WebBrowserPriv;
return S_OK;
}
if(IsEqualGUID(riid, &IID_IWebBrowserPriv2IE8)) {
*ppv = &WebBrowserPriv2IE8;
return S_OK;
}
ok(0, "unexpected call %s\n", debugstr_guid(riid));
return E_NOINTERFACE;
}
static HRESULT WINAPI ServiceProvider_QueryInterface(IServiceProvider *iface,
REFIID riid, void **ppv)
{
@ -5320,7 +5508,7 @@ static void test_Load(IPersistMoniker *persist, IMoniker *mon)
set_clientsite = container_locked = TRUE;
test_GetCurMoniker((IUnknown*)persist, mon, NULL);
test_GetCurMoniker((IUnknown*)persist, mon, NULL, FALSE);
IBindCtx_Release(bind);
@ -5338,15 +5526,22 @@ static void test_Load(IPersistMoniker *persist, IMoniker *mon)
#define DWL_FROM_HISTORY 0x0100
#define DWL_REFRESH 0x0200
#define DWL_EX_GETHOSTINFO 0x0400
#define DWL_EXTERNAL 0x0800
static void test_download(DWORD flags)
{
const BOOL is_extern = (flags & DWL_EXTERNAL) != 0;
const BOOL is_js = (flags & DWL_JAVASCRIPT) != 0;
HWND hwnd;
BOOL *b;
MSG msg;
b = is_js ? &called_Exec_SETDOWNLOADSTATE_0 : &called_Exec_HTTPEQUIV_DONE;
if(is_js)
b = &called_Exec_SETDOWNLOADSTATE_0;
else if(is_extern)
b = &called_NavigateWithBindCtx;
else
b = &called_Exec_HTTPEQUIV_DONE;
is_refresh = (flags & DWL_REFRESH) != 0;
hwnd = FindWindowA("Internet Explorer_Hidden", NULL);
@ -5383,14 +5578,14 @@ static void test_download(DWORD flags)
SET_EXPECT(Invoke_OnReadyStateChange_Loading);
if(!(flags & (DWL_EMPTY|DWL_JAVASCRIPT)))
SET_EXPECT(Invoke_OnReadyStateChange_Interactive);
if(!is_js)
if(!is_js && !is_extern)
SET_EXPECT(Invoke_OnReadyStateChange_Complete);
SET_EXPECT(Exec_Explorer_69);
SET_EXPECT(EnableModeless_TRUE); /* IE7 */
SET_EXPECT(Frame_EnableModeless_TRUE); /* IE7 */
SET_EXPECT(EnableModeless_FALSE); /* IE7 */
SET_EXPECT(Frame_EnableModeless_FALSE); /* IE7 */
if((nav_url && !is_js) || (flags & (DWL_CSS|DWL_HTTP)))
if((nav_url && !is_js && !is_extern) || (flags & (DWL_CSS|DWL_HTTP)))
SET_EXPECT(Exec_ShellDocView_37);
if(flags & DWL_HTTP) {
if(!(flags & DWL_FROM_HISTORY))
@ -5398,7 +5593,7 @@ static void test_download(DWORD flags)
SET_EXPECT(Exec_HTTPEQUIV);
SET_EXPECT(Exec_SETTITLE);
}
if(!is_js)
if(!is_js && !is_extern)
SET_EXPECT(OnChanged_1005);
SET_EXPECT(OnChanged_READYSTATE);
SET_EXPECT(Exec_SETPROGRESSPOS);
@ -5407,7 +5602,7 @@ static void test_download(DWORD flags)
SET_EXPECT(Exec_ShellDocView_103);
SET_EXPECT(Exec_ShellDocView_105);
SET_EXPECT(Exec_ShellDocView_140);
if(!is_js) {
if(!is_js && !is_extern) {
SET_EXPECT(Exec_MSHTML_PARSECOMPLETE);
if(support_wbapp) /* Called on some Vista installations */
SET_EXPECT(CountEntries);
@ -5422,7 +5617,7 @@ static void test_download(DWORD flags)
SET_EXPECT(Exec_Explorer_38);
SET_EXPECT(UpdateBackForwardState);
}
if(!is_js) {
if(!is_js && !is_extern) {
if(!editmode && !(flags & DWL_REFRESH)) {
if(!(flags & DWL_EMPTY))
SET_EXPECT(FireNavigateComplete2);
@ -5431,6 +5626,12 @@ static void test_download(DWORD flags)
SET_EXPECT(ActiveElementChanged);
}
SET_EXPECT(IsErrorUrl);
if(is_extern) {
SET_EXPECT(Exec_ShellDocView_62);
SET_EXPECT(Exec_DOCCANNAVIGATE_NULL);
SET_EXPECT(NavigateWithBindCtx);
SET_EXPECT(Exec_Explorer_38); /* todo_wine */
}
expect_status_text = (LPWSTR)0xdeadbeef; /* TODO */
while(!*b && GetMessage(&msg, NULL, 0, 0)) {
@ -5471,16 +5672,20 @@ static void test_download(DWORD flags)
}
if(flags & DWL_ONREADY_LOADING)
CHECK_CALLED(Invoke_OnReadyStateChange_Loading);
if(!(flags & (DWL_EMPTY|DWL_JAVASCRIPT)))
CHECK_CALLED(Invoke_OnReadyStateChange_Interactive);
if(!is_js)
if(!(flags & (DWL_EMPTY|DWL_JAVASCRIPT))) {
if(!is_extern)
CHECK_CALLED(Invoke_OnReadyStateChange_Interactive);
else
todo_wine CHECK_CALLED(Invoke_OnReadyStateChange_Interactive);
}
if(!is_js && !is_extern)
CHECK_CALLED(Invoke_OnReadyStateChange_Complete);
SET_CALLED(Exec_Explorer_69);
SET_CALLED(EnableModeless_TRUE); /* IE7 */
SET_CALLED(Frame_EnableModeless_TRUE); /* IE7 */
SET_CALLED(EnableModeless_FALSE); /* IE7 */
SET_CALLED(Frame_EnableModeless_FALSE); /* IE7 */
if(nav_url && !is_js && !(flags & DWL_REFRESH))
if(nav_url && !is_js && !is_extern && !(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 */
@ -5494,19 +5699,24 @@ static void test_download(DWORD flags)
CHECK_CALLED(Exec_SETTITLE);
}
if(!is_js) {
CHECK_CALLED(OnChanged_1005);
if(!is_extern)
CHECK_CALLED(OnChanged_1005);
CHECK_CALLED(OnChanged_READYSTATE);
CHECK_CALLED(Exec_SETPROGRESSPOS);
}else {
CLEAR_CALLED(OnChanged_READYSTATE); /* sometimes called */
todo_wine CHECK_CALLED(Exec_SETPROGRESSPOS);
}
if(!(flags & DWL_EMPTY))
CHECK_CALLED(Exec_SETDOWNLOADSTATE_0);
if(!(flags & DWL_EMPTY)) {
if(!is_extern)
CHECK_CALLED(Exec_SETDOWNLOADSTATE_0);
else
todo_wine CHECK_CALLED(Exec_SETDOWNLOADSTATE_0);
}
CLEAR_CALLED(Exec_ShellDocView_103);
CLEAR_CALLED(Exec_ShellDocView_105);
CLEAR_CALLED(Exec_ShellDocView_140);
if(!is_js) {
if(!is_js && !is_extern) {
CHECK_CALLED(Exec_MSHTML_PARSECOMPLETE);
if(support_wbapp) /* Called on some Vista installations */
CLEAR_CALLED(CountEntries);
@ -5521,7 +5731,7 @@ static void test_download(DWORD flags)
CHECK_CALLED(Exec_Explorer_38);
todo_wine CHECK_CALLED_BROKEN(UpdateBackForwardState);
}
if(!is_js) {
if(!is_js && !is_extern) {
if(!editmode && !(flags & DWL_REFRESH)) {
if(!(flags & DWL_EMPTY)) {
if(support_wbapp)
@ -5534,8 +5744,15 @@ static void test_download(DWORD flags)
todo_wine CHECK_CALLED(ActiveElementChanged);
}
todo_wine CHECK_CALLED_BROKEN(IsErrorUrl);
if(is_extern) {
CHECK_CALLED(Exec_ShellDocView_62);
CHECK_CALLED(Exec_DOCCANNAVIGATE_NULL);
CHECK_CALLED(NavigateWithBindCtx);
todo_wine CHECK_NOT_CALLED(Exec_Explorer_38);
}
load_state = LD_COMPLETE;
if(!is_extern)
load_state = LD_COMPLETE;
test_readyState(NULL);
}
@ -5712,7 +5929,7 @@ static void test_put_href(IHTMLDocument2 *doc, BOOL use_replace, const char *hre
}
if(doc_mon) {
test_GetCurMoniker(doc_unk, doc_mon, NULL);
test_GetCurMoniker(doc_unk, doc_mon, NULL, FALSE);
doc_mon = NULL;
}
@ -5722,9 +5939,15 @@ static void test_put_href(IHTMLDocument2 *doc, BOOL use_replace, const char *hre
ok(!strcmp_wa(str2, prev_nav_url), "unexpected address bar url: %s, expected %s\n", wine_dbgstr_w(str2), prev_nav_url);
SysFreeString(str2);
if(is_js)
if(is_js) {
ignore_external_qi = TRUE;
test_download(DWL_VERBDONE | (is_js ? DWL_JAVASCRIPT : DWL_ONREADY_LOADING|DWL_EX_GETHOSTINFO) | dwl_flags);
dwl_flags |= DWL_JAVASCRIPT;
}else {
if(!(dwl_flags & DWL_EXTERNAL))
dwl_flags |= DWL_EX_GETHOSTINFO;
dwl_flags |= DWL_ONREADY_LOADING;
}
test_download(DWL_VERBDONE | dwl_flags);
if(is_js)
ignore_external_qi = FALSE;
@ -5734,6 +5957,8 @@ static void test_put_href(IHTMLDocument2 *doc, BOOL use_replace, const char *hre
ok(hres == S_OK, "GetAddressBarUrl failed: %08x\n", hres);
if(is_js)
ok(!strcmp_wa(str2, prev_nav_url), "unexpected address bar url: %s\n", wine_dbgstr_w(str2));
else if (dwl_flags & DWL_EXTERNAL)
todo_wine ok(!strcmp_wa(str2, prev_nav_url), "unexpected address bar url: %s\n", wine_dbgstr_w(str2));
else
ok(!strcmp_wa(str2, nav_url), "unexpected address bar url: %s\n", wine_dbgstr_w(str2));
SysFreeString(str2);
@ -6979,7 +7204,7 @@ static void test_StreamLoad(IHTMLDocument2 *doc)
todo_wine CHECK_CALLED(GetPendingUrl);
test_timer(EXPECT_SETTITLE);
test_GetCurMoniker((IUnknown*)doc, NULL, "about:blank");
test_GetCurMoniker((IUnknown*)doc, NULL, "about:blank", FALSE);
IPersistStreamInit_Release(init);
}
@ -7013,7 +7238,7 @@ static void test_StreamInitNew(IHTMLDocument2 *doc)
todo_wine CHECK_CALLED(GetPendingUrl);
test_timer(EXPECT_SETTITLE);
test_GetCurMoniker((IUnknown*)doc, NULL, "about:blank");
test_GetCurMoniker((IUnknown*)doc, NULL, "about:blank", FALSE);
IPersistStreamInit_Release(init);
}
@ -7114,7 +7339,7 @@ static void test_HTMLDocument(BOOL do_load, BOOL mime)
test_external(doc, FALSE);
test_ViewAdviseSink(doc);
test_ConnectionPointContainer(doc);
test_GetCurMoniker((IUnknown*)doc, NULL, NULL);
test_GetCurMoniker((IUnknown*)doc, NULL, NULL, FALSE);
test_Persist(doc, &Moniker);
if(!do_load)
test_OnAmbientPropertyChange2(doc);
@ -7124,7 +7349,7 @@ static void test_HTMLDocument(BOOL do_load, BOOL mime)
if(do_load) {
set_custom_uihandler(doc, &CustomDocHostUIHandler);
test_download(DWL_CSS|DWL_TRYCSS);
test_GetCurMoniker((IUnknown*)doc, &Moniker, NULL);
test_GetCurMoniker((IUnknown*)doc, &Moniker, NULL, FALSE);
test_elem_from_point(doc);
}
@ -7173,7 +7398,7 @@ static void test_HTMLDocument(BOOL do_load, BOOL mime)
test_CloseView();
test_Close(doc, TRUE);
test_OnAmbientPropertyChange2(doc);
test_GetCurMoniker((IUnknown*)doc, do_load ? &Moniker : NULL, NULL);
test_GetCurMoniker((IUnknown*)doc, do_load ? &Moniker : NULL, NULL, FALSE);
if(!do_load) {
/* Activate HTMLDocument again, calling UIActivate after showing the window */
@ -7211,7 +7436,7 @@ static void test_HTMLDocument_hlink(DWORD status)
set_custom_uihandler(doc, &CustomDocHostUIHandler);
test_ViewAdviseSink(doc);
test_ConnectionPointContainer(doc);
test_GetCurMoniker((IUnknown*)doc, NULL, NULL);
test_GetCurMoniker((IUnknown*)doc, NULL, NULL, FALSE);
test_Persist(doc, &Moniker);
test_Navigate(doc);
@ -7227,9 +7452,9 @@ static void test_HTMLDocument_hlink(DWORD status)
test_InPlaceDeactivate(doc, TRUE);
test_Close(doc, FALSE);
test_IsDirty(doc, S_FALSE);
test_GetCurMoniker((IUnknown*)doc, &Moniker, NULL);
test_GetCurMoniker((IUnknown*)doc, &Moniker, NULL, FALSE);
test_clear(doc);
test_GetCurMoniker((IUnknown*)doc, &Moniker, NULL);
test_GetCurMoniker((IUnknown*)doc, &Moniker, NULL, FALSE);
if(view)
IOleDocumentView_Release(view);
@ -7268,7 +7493,8 @@ static void test_cookies(IHTMLDocument2 *doc)
b = InternetGetCookieW(http_urlW, NULL, buf, &size);
ok(b, "InternetGetCookieW failed: %08x\n", GetLastError());
ok(!lstrcmpW(buf, str2), "cookie = %s, expected %s\n", wine_dbgstr_w(str2), wine_dbgstr_w(buf));
ok(strstrW(str2, str) != NULL, "could not find %s in %s\n", wine_dbgstr_w(str), wine_dbgstr_w(str2));
if(str2)
ok(strstrW(str2, str) != NULL, "could not find %s in %s\n", wine_dbgstr_w(str), wine_dbgstr_w(str2));
SysFreeString(str);
SysFreeString(str2);
@ -7284,7 +7510,8 @@ static void test_cookies(IHTMLDocument2 *doc)
b = InternetGetCookieW(http_urlW, NULL, buf, &size);
ok(b, "InternetGetCookieW failed: %08x\n", GetLastError());
ok(!lstrcmpW(buf, str2), "cookie = %s, expected %s\n", wine_dbgstr_w(str2), wine_dbgstr_w(buf));
ok(strstrW(str2, str) != NULL, "could not find %s in %s\n", wine_dbgstr_w(str), wine_dbgstr_w(str2));
if(str2)
ok(strstrW(str2, str) != NULL, "could not find %s in %s\n", wine_dbgstr_w(str), wine_dbgstr_w(str2));
SysFreeString(str);
SysFreeString(str2);
}
@ -7316,14 +7543,14 @@ static void test_HTMLDocument_http(BOOL with_wbapp)
test_ViewAdviseSink(doc);
test_ConnectionPointContainer(doc);
test_GetCurMoniker((IUnknown*)doc, NULL, NULL);
test_GetCurMoniker((IUnknown*)doc, NULL, NULL, FALSE);
test_Persist(doc, http_mon);
test_Navigate(doc);
test_download(DWL_HTTP);
test_cookies(doc);
test_IsDirty(doc, S_FALSE);
test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
test_GetCurMoniker((IUnknown*)doc, http_mon, NULL);
test_GetCurMoniker((IUnknown*)doc, http_mon, NULL, FALSE);
test_travellog(doc);
test_binding_ui((IUnknown*)doc);
@ -7346,13 +7573,15 @@ static void test_HTMLDocument_http(BOOL with_wbapp)
test_open_window(doc, TRUE);
if(!support_wbapp) /* FIXME */
test_open_window(doc, FALSE);
if(support_wbapp)
if(support_wbapp) {
test_put_href(doc, FALSE, NULL, "http://test.winehq.org/tests/file.winetest", FALSE, FALSE, DWL_EXTERNAL);
test_window_close(doc);
}
test_InPlaceDeactivate(doc, TRUE);
test_Close(doc, FALSE);
test_IsDirty(doc, S_FALSE);
test_GetCurMoniker((IUnknown*)doc, NULL, prev_url);
test_GetCurMoniker((IUnknown*)doc, NULL, prev_url, support_wbapp);
if(view)
IOleDocumentView_Release(view);
@ -7438,7 +7667,7 @@ static void test_HTMLDocument_StreamLoad(void)
test_DoVerb(oleobj);
test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
test_GetCurMoniker((IUnknown*)doc, NULL, NULL);
test_GetCurMoniker((IUnknown*)doc, NULL, NULL, FALSE);
test_StreamLoad(doc);
test_download(DWL_VERBDONE|DWL_TRYCSS);
test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
@ -7499,7 +7728,7 @@ static void test_HTMLDocument_StreamInitNew(void)
IOleObject_Release(oleobj);
test_GetCurMoniker((IUnknown*)doc, NULL, NULL);
test_GetCurMoniker((IUnknown*)doc, NULL, NULL, FALSE);
test_StreamInitNew(doc);
SET_EXPECT(Invoke_OnReadyStateChange_Interactive);