Module: wine Branch: master Commit: 77a994db4216ed01b46b09b44926516d7cbf0c91 URL: http://source.winehq.org/git/wine.git/?a=commit;h=77a994db4216ed01b46b09b449...
Author: Jacek Caban jacek@codeweavers.com Date: Mon Jun 14 02:20:50 2010 +0200
mshtml: Added IHTMLWindow2::open test.
---
dlls/mshtml/tests/htmldoc.c | 100 ++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 98 insertions(+), 2 deletions(-)
diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c index 7e0d437..319e5fd 100644 --- a/dlls/mshtml/tests/htmldoc.c +++ b/dlls/mshtml/tests/htmldoc.c @@ -38,6 +38,7 @@ #include "idispids.h" #include "shlguid.h" #include "perhist.h" +#include "shobjidl.h" #include "mshtml_test.h"
DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0); @@ -155,6 +156,7 @@ DEFINE_EXPECT(Frame_GetWindow); DEFINE_EXPECT(TranslateUrl); DEFINE_EXPECT(Advise_Close); DEFINE_EXPECT(OnViewChange); +DEFINE_EXPECT(EvaluateNewWindow);
static IUnknown *doc_unk; static IMoniker *doc_mon; @@ -164,7 +166,7 @@ static BOOL ipsex, ipsw; static BOOL set_clientsite, container_locked, navigated_load; static BOOL readystate_set_loading = FALSE, readystate_set_interactive = FALSE, load_from_stream; static BOOL editmode = FALSE, show_failed; -static BOOL inplace_deactivated; +static BOOL inplace_deactivated, open_call; static int stream_read, protocol_read; static enum load_state_t { LD_DOLOAD, @@ -296,6 +298,9 @@ static void _test_GetCurMoniker(unsigned line, IUnknown *unk, IMoniker *exmon, L BSTR doc_url = (void*)0xdeadbeef; HRESULT hres;
+ if(open_call) + return; /* FIXME */ + hres = IUnknown_QueryInterface(unk, &IID_IPersistMoniker, (void**)&permon); ok(hres == S_OK, "QueryInterface(IID_IPersistMoniker) failed: %08x\n", hres); if(FAILED(hres)) @@ -332,7 +337,7 @@ static void _test_GetCurMoniker(unsigned line, IUnknown *unk, IMoniker *exmon, L }else if(exurl) { LPOLESTR url;
- ok(hres == S_OK, "GetCurrentMoniker failed: %08x\n", hres); + ok_(__FILE__,line)(hres == S_OK, "GetCurrentMoniker failed: %08x\n", hres);
hres = IMoniker_GetDisplayName(mon, NULL, NULL, &url); ok(hres == S_OK, "GetDisplayName failed: %08x\n", hres); @@ -737,6 +742,48 @@ static const IHlinkFrameVtbl HlinkFrameVtbl = {
static IHlinkFrame HlinkFrame = { &HlinkFrameVtbl };
+static HRESULT WINAPI NewWindowManager_QueryInterface(INewWindowManager *iface, REFIID riid, void **ppv) +{ + ok(0, "unexpected call\n"); + return E_NOINTERFACE; +} + +static ULONG WINAPI NewWindowManager_AddRef(INewWindowManager *iface) +{ + return 2; +} + +static ULONG WINAPI NewWindowManager_Release(INewWindowManager *iface) +{ + return 1; +} + +static HRESULT WINAPI NewWindowManager_EvaluateNewWindow(INewWindowManager *iface, LPCWSTR pszUrl, + LPCWSTR pszName, LPCWSTR pszUrlContext, LPCWSTR pszFeatures, BOOL fReplace, DWORD dwFlags, + DWORD dwUserActionTime) +{ + CHECK_EXPECT(EvaluateNewWindow); + + ok(!strcmp_wa(pszUrl, "about:blank"), "pszUrl = %s\n", wine_dbgstr_w(pszUrl)); + ok(!strcmp_wa(pszName, "test"), "pszName = %s\n", wine_dbgstr_w(pszName)); + ok(!strcmp_wa(pszUrlContext, "about:blank"), "pszUrlContext = %s\n", wine_dbgstr_w(pszUrlContext)); + ok(!pszFeatures, "pszFeatures = %s\n", wine_dbgstr_w(pszFeatures)); + ok(!fReplace, "fReplace = %x\n", fReplace); + ok(dwFlags == NWMF_FIRST, "dwFlags = %x\n", dwFlags); + ok(!dwUserActionTime, "dwUserActionime = %d\n", dwUserActionTime); + + return E_FAIL; +} + +static const INewWindowManagerVtbl NewWindowManagerVtbl = { + NewWindowManager_QueryInterface, + NewWindowManager_AddRef, + NewWindowManager_Release, + NewWindowManager_EvaluateNewWindow +}; + +static INewWindowManager NewWindowManager = { &NewWindowManagerVtbl }; + static HRESULT WINAPI PropertyNotifySink_QueryInterface(IPropertyNotifySink *iface, REFIID riid, void**ppv) { @@ -2423,6 +2470,8 @@ static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID ok(V_BSTR(pvaIn) != NULL, "V_BSTR(pvaIn) = NULL\n"); test_readyState(NULL); return S_OK; + case OLECMDID_UPDATETRAVELENTRY_DATARECOVERY: + return E_FAIL; /* FIXME */ default: ok(0, "unexpected command %d\n", nCmdID); return E_FAIL; @@ -2701,6 +2750,12 @@ static HRESULT WINAPI ServiceProvider_QueryService(IServiceProvider *iface, REFG return S_OK; }
+ if(IsEqualGUID(&SID_SNewWindowManager, guidService)) { + ok(IsEqualGUID(&IID_INewWindowManager, riid), "unexpected riid\n"); + *ppv = &NewWindowManager; + return S_OK; + } + return E_NOINTERFACE; }
@@ -2941,6 +2996,9 @@ static void _test_readyState(unsigned line, IUnknown *unk) "uninitialized" };
+ if(open_call) + return; /* FIXME */ + if(!unk) unk = doc_unk;
@@ -3405,6 +3463,43 @@ static void test_put_href(IHTMLDocument2 *doc) test_download(DWL_VERBDONE); }
+static void test_open_window(IHTMLDocument2 *doc) +{ + IHTMLWindow2 *window, *new_window; + BSTR name, url; + HRESULT hres; + + hres = IHTMLDocument2_get_parentWindow(doc, &window); + ok(hres == S_OK, "get_parentWindow failed: %08x\n", hres); + + url = a2bstr("about:blank"); + name = a2bstr("test"); + new_window = (void*)0xdeadbeef; + + open_call = TRUE; + + SET_EXPECT(TranslateUrl); + SET_EXPECT(EvaluateNewWindow); + + hres = IHTMLWindow2_open(window, url, name, NULL, VARIANT_FALSE, &new_window); + todo_wine + ok(hres == S_OK, "open failed: %08x\n", hres); + todo_wine + ok(new_window == NULL, "new_window != NULL\n"); + + todo_wine + CHECK_CALLED(TranslateUrl); + todo_wine + CHECK_CALLED(EvaluateNewWindow); + + open_call = FALSE; + SysFreeString(url); + SysFreeString(name); + + IHTMLWindow2_Release(window); + SysFreeString(name); +} + static void test_clear(IHTMLDocument2 *doc) { HRESULT hres; @@ -4678,6 +4773,7 @@ static void test_HTMLDocument_http(void) test_GetCurMoniker((IUnknown*)doc, http_mon, NULL);
test_put_href(doc); + test_open_window(doc);
test_InPlaceDeactivate(doc, TRUE); test_Close(doc, FALSE);