Jacek Caban : mshtml: Added IHTMLWindow2::open test.
Alexandre Julliard
julliard at winehq.org
Mon Jun 14 13:01:17 CDT 2010
Module: wine
Branch: master
Commit: 77a994db4216ed01b46b09b44926516d7cbf0c91
URL: http://source.winehq.org/git/wine.git/?a=commit;h=77a994db4216ed01b46b09b44926516d7cbf0c91
Author: Jacek Caban <jacek at 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);
More information about the wine-cvs
mailing list