Commit cfbc37c6 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

ieframe: Fixed and improved navigation command state tests.

parent 5a2aa4a8
...@@ -1091,20 +1091,11 @@ static HRESULT navigate_history(DocHost *This, unsigned travellog_pos) ...@@ -1091,20 +1091,11 @@ static HRESULT navigate_history(DocHost *This, unsigned travellog_pos)
return E_NOTIMPL; return E_NOTIMPL;
} }
if (travellog_pos < This->travellog.position)
{
on_commandstate_change(This, CSC_NAVIGATEBACK, VARIANT_FALSE);
on_commandstate_change(This, CSC_NAVIGATEFORWARD, VARIANT_TRUE);
}
else if (travellog_pos > This->travellog.position)
{
on_commandstate_change(This, CSC_NAVIGATEBACK, VARIANT_TRUE);
on_commandstate_change(This, CSC_NAVIGATEFORWARD, VARIANT_FALSE);
}
This->travellog.loading_pos = travellog_pos; This->travellog.loading_pos = travellog_pos;
entry = This->travellog.log + This->travellog.loading_pos; entry = This->travellog.log + This->travellog.loading_pos;
update_navigation_commands(This);
if(!entry->stream) if(!entry->stream)
return async_doc_navigate(This, entry->url, NULL, NULL, 0, FALSE); return async_doc_navigate(This, entry->url, NULL, NULL, 0, FALSE);
......
...@@ -96,8 +96,10 @@ DEFINE_EXPECT(Invoke_DOWNLOADBEGIN); ...@@ -96,8 +96,10 @@ DEFINE_EXPECT(Invoke_DOWNLOADBEGIN);
DEFINE_EXPECT(Invoke_BEFORENAVIGATE2); DEFINE_EXPECT(Invoke_BEFORENAVIGATE2);
DEFINE_EXPECT(Invoke_SETSECURELOCKICON); DEFINE_EXPECT(Invoke_SETSECURELOCKICON);
DEFINE_EXPECT(Invoke_FILEDOWNLOAD); DEFINE_EXPECT(Invoke_FILEDOWNLOAD);
DEFINE_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD); DEFINE_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
DEFINE_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK); DEFINE_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
DEFINE_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
DEFINE_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
DEFINE_EXPECT(Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS); DEFINE_EXPECT(Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS);
DEFINE_EXPECT(Invoke_DOWNLOADCOMPLETE); DEFINE_EXPECT(Invoke_DOWNLOADCOMPLETE);
DEFINE_EXPECT(Invoke_ONMENUBAR); DEFINE_EXPECT(Invoke_ONMENUBAR);
...@@ -158,8 +160,8 @@ static BOOL is_downloading, do_download, is_first_load, use_container_olecmd, te ...@@ -158,8 +160,8 @@ static BOOL is_downloading, do_download, is_first_load, use_container_olecmd, te
static HRESULT hr_dochost_TranslateAccelerator = E_NOTIMPL; static HRESULT hr_dochost_TranslateAccelerator = E_NOTIMPL;
static HRESULT hr_site_TranslateAccelerator = E_NOTIMPL; static HRESULT hr_site_TranslateAccelerator = E_NOTIMPL;
static const char *current_url; static const char *current_url;
static int wb_version, expect_navigate_back_enable, set_navigate_back_enable, expect_navigate_forward_enable, static int wb_version, expect_update_commands_enable, set_update_commands_enable;
set_navigate_forward_enable, expect_update_commands_enable, set_update_commands_enable; static BOOL nav_back_todo, nav_forward_todo; /* FIXME */
#define DWL_EXPECT_BEFORE_NAVIGATE 0x01 #define DWL_EXPECT_BEFORE_NAVIGATE 0x01
#define DWL_FROM_PUT_HREF 0x02 #define DWL_FROM_PUT_HREF 0x02
...@@ -167,6 +169,7 @@ static int wb_version, expect_navigate_back_enable, set_navigate_back_enable, ex ...@@ -167,6 +169,7 @@ static int wb_version, expect_navigate_back_enable, set_navigate_back_enable, ex
#define DWL_FROM_GOFORWARD 0x08 #define DWL_FROM_GOFORWARD 0x08
#define DWL_HTTP 0x10 #define DWL_HTTP 0x10
#define DWL_REFRESH 0x20 #define DWL_REFRESH 0x20
#define DWL_BACK_ENABLE 0x40
static DWORD dwl_flags; static DWORD dwl_flags;
...@@ -897,13 +900,31 @@ static HRESULT WINAPI WebBrowserEvents2_Invoke(IDispatch *iface, DISPID dispIdMe ...@@ -897,13 +900,31 @@ static HRESULT WINAPI WebBrowserEvents2_Invoke(IDispatch *iface, DISPID dispIdMe
if (V_I4(pDispParams->rgvarg+1) == CSC_NAVIGATEFORWARD) if (V_I4(pDispParams->rgvarg+1) == CSC_NAVIGATEFORWARD)
{ {
CHECK_EXPECT2(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD); if(nav_forward_todo) {
set_navigate_forward_enable = V_BOOL(pDispParams->rgvarg); if(V_BOOL(pDispParams->rgvarg))
todo_wine CHECK_EXPECT2(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
else
todo_wine CHECK_EXPECT2(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
}else {
if(V_BOOL(pDispParams->rgvarg))
CHECK_EXPECT2(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
else
CHECK_EXPECT2(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
}
} }
else if (V_I4(pDispParams->rgvarg+1) == CSC_NAVIGATEBACK) else if (V_I4(pDispParams->rgvarg+1) == CSC_NAVIGATEBACK)
{ {
CHECK_EXPECT2(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK); if(nav_back_todo) {
set_navigate_back_enable = V_BOOL(pDispParams->rgvarg); if(V_BOOL(pDispParams->rgvarg))
todo_wine CHECK_EXPECT2(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
else
todo_wine CHECK_EXPECT2(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
}else {
if(V_BOOL(pDispParams->rgvarg))
CHECK_EXPECT2(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
else
CHECK_EXPECT2(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
}
} }
else if (V_I4(pDispParams->rgvarg+1) == CSC_UPDATECOMMANDS) else if (V_I4(pDispParams->rgvarg+1) == CSC_UPDATECOMMANDS)
{ {
...@@ -1944,13 +1965,8 @@ static void test_ClientSite(IWebBrowser2 *unk, IOleClientSite *client, BOOL stop ...@@ -1944,13 +1965,8 @@ static void test_ClientSite(IWebBrowser2 *unk, IOleClientSite *client, BOOL stop
SET_EXPECT(Invoke_DOWNLOADCOMPLETE); SET_EXPECT(Invoke_DOWNLOADCOMPLETE);
} }
expect_navigate_back_enable = 0; SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
set_navigate_back_enable = 0xdead; SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK);
expect_navigate_forward_enable = 0;
set_navigate_forward_enable = 0xdead;
SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD);
expect_update_commands_enable = 0; expect_update_commands_enable = 0;
set_update_commands_enable = 0xdead; set_update_commands_enable = 0xdead;
...@@ -1958,6 +1974,7 @@ static void test_ClientSite(IWebBrowser2 *unk, IOleClientSite *client, BOOL stop ...@@ -1958,6 +1974,7 @@ static void test_ClientSite(IWebBrowser2 *unk, IOleClientSite *client, BOOL stop
}else { }else {
SET_EXPECT(Invoke_STATUSTEXTCHANGE); SET_EXPECT(Invoke_STATUSTEXTCHANGE);
SET_EXPECT(Invoke_PROGRESSCHANGE); SET_EXPECT(Invoke_PROGRESSCHANGE);
nav_back_todo = nav_forward_todo = TRUE;
} }
hres = IOleObject_SetClientSite(oleobj, client); hres = IOleObject_SetClientSite(oleobj, client);
...@@ -1974,13 +1991,8 @@ static void test_ClientSite(IWebBrowser2 *unk, IOleClientSite *client, BOOL stop ...@@ -1974,13 +1991,8 @@ static void test_ClientSite(IWebBrowser2 *unk, IOleClientSite *client, BOOL stop
todo_wine CHECK_CALLED(Invoke_DOWNLOADCOMPLETE); todo_wine CHECK_CALLED(Invoke_DOWNLOADCOMPLETE);
} }
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK); CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
ok(expect_navigate_back_enable == set_navigate_back_enable, CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
"got %d\n", set_navigate_back_enable);
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD);
ok(expect_navigate_forward_enable == set_navigate_forward_enable,
"got %d\n", set_navigate_forward_enable);
todo_wine CHECK_CALLED(Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS); todo_wine CHECK_CALLED(Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS);
todo_wine ok(expect_update_commands_enable == set_update_commands_enable, todo_wine ok(expect_update_commands_enable == set_update_commands_enable,
...@@ -1988,6 +2000,7 @@ static void test_ClientSite(IWebBrowser2 *unk, IOleClientSite *client, BOOL stop ...@@ -1988,6 +2000,7 @@ static void test_ClientSite(IWebBrowser2 *unk, IOleClientSite *client, BOOL stop
}else { }else {
CLEAR_CALLED(Invoke_STATUSTEXTCHANGE); /* Called by IE9 */ CLEAR_CALLED(Invoke_STATUSTEXTCHANGE); /* Called by IE9 */
CLEAR_CALLED(Invoke_PROGRESSCHANGE); CLEAR_CALLED(Invoke_PROGRESSCHANGE);
nav_back_todo = nav_forward_todo = FALSE;
} }
hres = IOleInPlaceObject_GetWindow(inplace, &hwnd); hres = IOleInPlaceObject_GetWindow(inplace, &hwnd);
...@@ -2705,15 +2718,8 @@ static void test_Navigate2(IWebBrowser2 *webbrowser, const char *nav_url) ...@@ -2705,15 +2718,8 @@ static void test_Navigate2(IWebBrowser2 *webbrowser, const char *nav_url)
SET_EXPECT(Invoke_SETSECURELOCKICON); SET_EXPECT(Invoke_SETSECURELOCKICON);
SET_EXPECT(Invoke_FILEDOWNLOAD); SET_EXPECT(Invoke_FILEDOWNLOAD);
if (use_container_olecmd) SET_EXPECT(Exec_SETDOWNLOADSTATE_0); if (use_container_olecmd) SET_EXPECT(Exec_SETDOWNLOADSTATE_0);
SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
expect_navigate_back_enable = 0; SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
set_navigate_back_enable = 0xdead;
SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK);
expect_navigate_forward_enable = 0;
set_navigate_forward_enable = 0xdead;
SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD);
SET_EXPECT(EnableModeless_TRUE); SET_EXPECT(EnableModeless_TRUE);
if (!use_container_olecmd) SET_EXPECT(Invoke_DOWNLOADCOMPLETE); if (!use_container_olecmd) SET_EXPECT(Invoke_DOWNLOADCOMPLETE);
if (is_file) SET_EXPECT(Invoke_PROGRESSCHANGE); if (is_file) SET_EXPECT(Invoke_PROGRESSCHANGE);
...@@ -2747,15 +2753,8 @@ static void test_Navigate2(IWebBrowser2 *webbrowser, const char *nav_url) ...@@ -2747,15 +2753,8 @@ static void test_Navigate2(IWebBrowser2 *webbrowser, const char *nav_url)
} }
todo_wine CHECK_CALLED(Invoke_SETSECURELOCKICON); todo_wine CHECK_CALLED(Invoke_SETSECURELOCKICON);
todo_wine CHECK_CALLED(Invoke_FILEDOWNLOAD); todo_wine CHECK_CALLED(Invoke_FILEDOWNLOAD);
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK); CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
ok(expect_navigate_back_enable == set_navigate_back_enable,
"got %d\n", set_navigate_back_enable);
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD);
ok(expect_navigate_forward_enable == set_navigate_forward_enable,
"got %d\n", set_navigate_forward_enable);
if (use_container_olecmd) todo_wine CHECK_CALLED(Exec_SETDOWNLOADSTATE_0); if (use_container_olecmd) todo_wine CHECK_CALLED(Exec_SETDOWNLOADSTATE_0);
CHECK_CALLED(EnableModeless_TRUE); CHECK_CALLED(EnableModeless_TRUE);
if (!use_container_olecmd) CHECK_CALLED(Invoke_DOWNLOADCOMPLETE); if (!use_container_olecmd) CHECK_CALLED(Invoke_DOWNLOADCOMPLETE);
...@@ -2888,13 +2887,16 @@ static void test_download(DWORD flags) ...@@ -2888,13 +2887,16 @@ static void test_download(DWORD flags)
SET_EXPECT(Invoke_282); SET_EXPECT(Invoke_282);
SET_EXPECT(EnableModeless_FALSE); SET_EXPECT(EnableModeless_FALSE);
expect_navigate_back_enable = 0; if(!(flags & DWL_REFRESH)) {
set_navigate_back_enable = 0xdead; if(flags & (DWL_FROM_GOFORWARD|DWL_BACK_ENABLE))
SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK); SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
else
expect_navigate_forward_enable = 0; SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
set_navigate_forward_enable = 0xdead; if(flags & DWL_FROM_GOBACK)
SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD); SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
else
SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
}
expect_update_commands_enable = 0; expect_update_commands_enable = 0;
set_update_commands_enable = 0xdead; set_update_commands_enable = 0xdead;
...@@ -2954,6 +2956,24 @@ static void test_download(DWORD flags) ...@@ -2954,6 +2956,24 @@ static void test_download(DWORD flags)
todo_wine CHECK_CALLED(EnableModeless_FALSE); todo_wine CHECK_CALLED(EnableModeless_FALSE);
else else
CLEAR_CALLED(EnableModeless_FALSE); /* IE 8 */ CLEAR_CALLED(EnableModeless_FALSE); /* IE 8 */
if(!(flags & DWL_REFRESH)) {
if(nav_back_todo) {
if(flags & (DWL_FROM_GOFORWARD|DWL_BACK_ENABLE))
todo_wine CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
else
todo_wine CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
}else {
if(flags & (DWL_FROM_GOFORWARD|DWL_BACK_ENABLE))
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
else
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
}
if(flags & DWL_FROM_GOBACK)
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
else
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
}
CLEAR_CALLED(Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS); CLEAR_CALLED(Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS);
todo_wine CHECK_CALLED(Invoke_STATUSTEXTCHANGE); todo_wine CHECK_CALLED(Invoke_STATUSTEXTCHANGE);
todo_wine CHECK_CALLED(SetStatusText); todo_wine CHECK_CALLED(SetStatusText);
...@@ -3130,27 +3150,46 @@ static void test_go_back(IWebBrowser2 *wb, const char *back_url, int back_enable ...@@ -3130,27 +3150,46 @@ static void test_go_back(IWebBrowser2 *wb, const char *back_url, int back_enable
SET_EXPECT(Invoke_BEFORENAVIGATE2); SET_EXPECT(Invoke_BEFORENAVIGATE2);
expect_navigate_back_enable = back_enable; if(back_enable)
set_navigate_back_enable = 0xdead; SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK); else
SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
expect_navigate_forward_enable = forward_enable; if(forward_enable)
set_navigate_forward_enable = 0xdead; SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD); else
SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
nav_forward_todo = forward_todo;
SET_EXPECT(Invoke_PROPERTYCHANGE); SET_EXPECT(Invoke_PROPERTYCHANGE);
hres = IWebBrowser2_GoBack(wb); hres = IWebBrowser2_GoBack(wb);
ok(hres == S_OK, "GoBack failed: %08x\n", hres); ok(hres == S_OK, "GoBack failed: %08x\n", hres);
CHECK_CALLED(Invoke_BEFORENAVIGATE2); CHECK_CALLED(Invoke_BEFORENAVIGATE2);
nav_forward_todo = FALSE;
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK); if(nav_back_todo) {
ok(expect_navigate_back_enable == set_navigate_back_enable, "got %d\n", set_navigate_back_enable); if(back_enable)
todo_wine CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
else
todo_wine CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
}else {
if(back_enable)
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
else
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
}
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD); if(forward_todo) {
if (forward_todo) if(forward_enable)
todo_wine ok(expect_navigate_forward_enable == set_navigate_forward_enable, "got %d\n", set_navigate_forward_enable); todo_wine CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
else else
ok(expect_navigate_forward_enable == set_navigate_forward_enable, "got %d\n", set_navigate_forward_enable); todo_wine CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
}else {
if(forward_enable)
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
else
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
}
CLEAR_CALLED(Invoke_PROPERTYCHANGE); /* called by IE11 */ CLEAR_CALLED(Invoke_PROPERTYCHANGE); /* called by IE11 */
} }
...@@ -3164,25 +3203,29 @@ static void test_go_forward(IWebBrowser2 *wb, const char *forward_url, int back_ ...@@ -3164,25 +3203,29 @@ static void test_go_forward(IWebBrowser2 *wb, const char *forward_url, int back_
SET_EXPECT(Invoke_BEFORENAVIGATE2); SET_EXPECT(Invoke_BEFORENAVIGATE2);
expect_navigate_back_enable = back_enable; if(back_enable)
set_navigate_back_enable = 0xdead; SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK); else
SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
expect_navigate_forward_enable = forward_enable; if(forward_enable)
set_navigate_forward_enable = 0xdead; SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD); else
SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
hres = IWebBrowser2_GoForward(wb); hres = IWebBrowser2_GoForward(wb);
ok(hres == S_OK, "GoForward failed: %08x\n", hres); ok(hres == S_OK, "GoForward failed: %08x\n", hres);
CHECK_CALLED(Invoke_BEFORENAVIGATE2); CHECK_CALLED(Invoke_BEFORENAVIGATE2);
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK); if(back_enable)
ok(expect_navigate_back_enable == set_navigate_back_enable, CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
"got %d\n", set_navigate_back_enable); else
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD); if(forward_enable)
ok(expect_navigate_forward_enable == set_navigate_forward_enable, CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
"got %d\n", set_navigate_forward_enable); else
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
} }
static void test_QueryInterface(IWebBrowser2 *wb) static void test_QueryInterface(IWebBrowser2 *wb)
...@@ -3533,13 +3576,8 @@ static void test_Close(IWebBrowser2 *wb, BOOL do_download) ...@@ -3533,13 +3576,8 @@ static void test_Close(IWebBrowser2 *wb, BOOL do_download)
SET_EXPECT(OnInPlaceDeactivate); SET_EXPECT(OnInPlaceDeactivate);
SET_EXPECT(Invoke_STATUSTEXTCHANGE); SET_EXPECT(Invoke_STATUSTEXTCHANGE);
if(!do_download) { if(!do_download) {
expect_navigate_back_enable = 0; SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
set_navigate_back_enable = 0xdead; SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK);
expect_navigate_forward_enable = 0;
set_navigate_forward_enable = 0xdead;
SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD);
expect_update_commands_enable = 0; expect_update_commands_enable = 0;
set_update_commands_enable = 0xdead; set_update_commands_enable = 0xdead;
...@@ -3547,6 +3585,8 @@ static void test_Close(IWebBrowser2 *wb, BOOL do_download) ...@@ -3547,6 +3585,8 @@ static void test_Close(IWebBrowser2 *wb, BOOL do_download)
if(use_container_olecmd) if(use_container_olecmd)
SET_EXPECT(Invoke_DOWNLOADCOMPLETE); SET_EXPECT(Invoke_DOWNLOADCOMPLETE);
}else {
nav_back_todo = nav_forward_todo = TRUE;
} }
hres = IOleObject_Close(oo, OLECLOSE_NOSAVE); hres = IOleObject_Close(oo, OLECLOSE_NOSAVE);
ok(hres == S_OK, "OleObject_Close failed: %x\n", hres); ok(hres == S_OK, "OleObject_Close failed: %x\n", hres);
...@@ -3557,13 +3597,8 @@ static void test_Close(IWebBrowser2 *wb, BOOL do_download) ...@@ -3557,13 +3597,8 @@ static void test_Close(IWebBrowser2 *wb, BOOL do_download)
CHECK_CALLED(OnInPlaceDeactivate); CHECK_CALLED(OnInPlaceDeactivate);
CLEAR_CALLED(Invoke_STATUSTEXTCHANGE); /* Called by IE9 */ CLEAR_CALLED(Invoke_STATUSTEXTCHANGE); /* Called by IE9 */
if(!do_download) { if(!do_download) {
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK); CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
ok(expect_navigate_back_enable == set_navigate_back_enable, CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
"got %d\n", set_navigate_back_enable);
CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD);
ok(expect_navigate_forward_enable == set_navigate_forward_enable,
"got %d\n", set_navigate_forward_enable);
todo_wine CHECK_CALLED(Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS); todo_wine CHECK_CALLED(Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS);
todo_wine ok(expect_update_commands_enable == set_update_commands_enable, todo_wine ok(expect_update_commands_enable == set_update_commands_enable,
...@@ -3571,6 +3606,8 @@ static void test_Close(IWebBrowser2 *wb, BOOL do_download) ...@@ -3571,6 +3606,8 @@ static void test_Close(IWebBrowser2 *wb, BOOL do_download)
if(use_container_olecmd) if(use_container_olecmd)
todo_wine CHECK_CALLED(Invoke_DOWNLOADCOMPLETE); todo_wine CHECK_CALLED(Invoke_DOWNLOADCOMPLETE);
}else {
nav_back_todo = nav_forward_todo = FALSE;
} }
hres = IOleObject_GetClientSite(oo, &ocs); hres = IOleObject_GetClientSite(oo, &ocs);
...@@ -3669,26 +3706,32 @@ static void test_WebBrowser(DWORD flags, BOOL do_close) ...@@ -3669,26 +3706,32 @@ static void test_WebBrowser(DWORD flags, BOOL do_close)
trace("Navigate2 http URL...\n"); trace("Navigate2 http URL...\n");
test_ready_state(READYSTATE_COMPLETE); test_ready_state(READYSTATE_COMPLETE);
test_Navigate2(webbrowser, "http://test.winehq.org/tests/hello.html"); test_Navigate2(webbrowser, "http://test.winehq.org/tests/hello.html");
nav_back_todo = TRUE;
test_download(DWL_EXPECT_BEFORE_NAVIGATE|DWL_HTTP); test_download(DWL_EXPECT_BEFORE_NAVIGATE|DWL_HTTP);
nav_back_todo = FALSE;
test_Refresh(webbrowser, FALSE); test_Refresh(webbrowser, FALSE);
test_Refresh(webbrowser, TRUE); test_Refresh(webbrowser, TRUE);
trace("put_href http URL...\n"); trace("put_href http URL...\n");
test_put_href(webbrowser, "http://test.winehq.org/tests/winehq_snapshot/"); test_put_href(webbrowser, "http://test.winehq.org/tests/winehq_snapshot/");
test_download(DWL_FROM_PUT_HREF|DWL_HTTP); test_download(DWL_FROM_PUT_HREF|DWL_HTTP|DWL_BACK_ENABLE);
trace("GoBack...\n"); trace("GoBack...\n");
nav_back_todo = TRUE;
test_go_back(webbrowser, "http://test.winehq.org/tests/hello.html", 0, 0, 1); test_go_back(webbrowser, "http://test.winehq.org/tests/hello.html", 0, 0, 1);
test_download(DWL_FROM_GOBACK|DWL_HTTP); test_download(DWL_FROM_GOBACK|DWL_HTTP);
nav_back_todo = FALSE;
trace("GoForward...\n"); trace("GoForward...\n");
test_go_forward(webbrowser, "http://test.winehq.org/tests/winehq_snapshot/", -1, 0); test_go_forward(webbrowser, "http://test.winehq.org/tests/winehq_snapshot/", -1, 0);
test_download(DWL_FROM_GOFORWARD|DWL_HTTP); test_download(DWL_FROM_GOFORWARD|DWL_HTTP);
trace("GoBack...\n"); trace("GoBack...\n");
nav_back_todo = TRUE;
test_go_back(webbrowser, "http://test.winehq.org/tests/hello.html", 0, -1, 0); test_go_back(webbrowser, "http://test.winehq.org/tests/hello.html", 0, -1, 0);
test_download(DWL_FROM_GOBACK|DWL_HTTP); test_download(DWL_FROM_GOBACK|DWL_HTTP);
nav_back_todo = FALSE;
trace("GoForward...\n"); trace("GoForward...\n");
test_go_forward(webbrowser, "http://test.winehq.org/tests/winehq_snapshot/", -1, 0); test_go_forward(webbrowser, "http://test.winehq.org/tests/winehq_snapshot/", -1, 0);
...@@ -3704,9 +3747,7 @@ static void test_WebBrowser(DWORD flags, BOOL do_close) ...@@ -3704,9 +3747,7 @@ static void test_WebBrowser(DWORD flags, BOOL do_close)
test_dochost_qs(webbrowser); test_dochost_qs(webbrowser);
}else { }else {
trace("??\n");
test_ExecWB(webbrowser, TRUE); test_ExecWB(webbrowser, TRUE);
trace("or here\n");
} }
test_external(webbrowser); test_external(webbrowser);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment