From 3543cd3df42f86e1918831a4bd55ea9431860db0 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Sun, 10 Jun 2007 11:45:24 +0200 Subject: [PATCH] mshtml: Added Exec(IDM_FONTNAME) tests. --- dlls/mshtml/tests/Makefile.in | 2 +- dlls/mshtml/tests/htmldoc.c | 52 +++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/dlls/mshtml/tests/Makefile.in b/dlls/mshtml/tests/Makefile.in index e3440d0d2f1..8ddcb501ca4 100644 --- a/dlls/mshtml/tests/Makefile.in +++ b/dlls/mshtml/tests/Makefile.in @@ -3,7 +3,7 @@ TOPOBJDIR = ../../.. SRCDIR = @srcdir@ VPATH = @srcdir@ TESTDLL = mshtml.dll -IMPORTS = ole32 user32 urlmon advapi32 kernel32 +IMPORTS = ole32 oleaut32 user32 urlmon advapi32 kernel32 EXTRALIBS = -luuid CTESTS = \ diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c index 792074daccb..40cb44e61d7 100644 --- a/dlls/mshtml/tests/htmldoc.c +++ b/dlls/mshtml/tests/htmldoc.c @@ -150,6 +150,12 @@ static const WCHAR doc_url[] = {'w','i','n','e','t','e','s','t',':','d','o','c', static HRESULT QueryInterface(REFIID riid, void **ppv); static void test_readyState(IUnknown*); static void test_MSHTML_QueryStatus(IUnknown*,DWORD); +static BOOL nogecko = FALSE; + +static const WCHAR wszTimesNewRoman[] = + {'T','i','m','e','s',' ','N','e','w',' ','R','o','m','a','n',0}; +static const WCHAR wszArial[] = + {'A','r','i','a','l',0}; #define EXPECT_UPDATEUI 1 #define EXPECT_SETTITLE 2 @@ -2321,6 +2327,8 @@ static void test_download(BOOL verb_done, BOOL css_dwl) SET_CALLED(Terminate); SET_CALLED(Protocol_Read); SET_CALLED(UnlockRequest); + + nogecko = TRUE; } } CHECK_CALLED(OnChanged_1005); @@ -2608,6 +2616,46 @@ static void test_exec_editmode(IUnknown *unk) ok(hres == S_OK, "Exec failed: %08x\n", hres); } +static void test_exec_fontname(IUnknown *unk, LPCWSTR name, LPCWSTR exname) +{ + IOleCommandTarget *cmdtrg; + VARIANT *in = NULL, _in, *out = NULL, _out; + HRESULT hres; + + hres = IUnknown_QueryInterface(unk, &IID_IOleCommandTarget, (void**)&cmdtrg); + ok(hres == S_OK, "QueryInterface(IIDIOleM=CommandTarget failed: %08x\n", hres); + if(FAILED(hres)) + return; + + if(name) { + in = &_in; + V_VT(in) = VT_BSTR; + V_BSTR(in) = SysAllocString(name); + } + + if(exname) { + out = &_out; + V_VT(out) = VT_I4; + V_I4(out) = 0xdeadbeef; + } + + hres = IOleCommandTarget_Exec(cmdtrg, &CGID_MSHTML, IDM_FONTNAME, 0, in, out); + if(!nogecko) + ok(hres == S_OK, "Exec(IDM_FONTNAME) failed: %08x\n", hres); + + if(in) + VariantClear(in); + + if(out && !nogecko) { + ok(V_VT(out) == VT_BSTR, "V_VT(out) = %x\n", V_VT(out)); + if(V_VT(out) == VT_BSTR) + ok(!lstrcmpW(V_BSTR(out), name ? name : exname), "unexpected fontname\n"); + VariantClear(out); + } + + IOleCommandTarget_Release(cmdtrg); +} + static HWND create_container_window(void) { static const WCHAR wszHTMLDocumentTest[] = @@ -3268,6 +3316,10 @@ static void test_editing_mode(void) test_download(TRUE, FALSE); test_MSHTML_QueryStatus(unk, OLECMDF_SUPPORTED|OLECMDF_ENABLED); + test_exec_fontname(unk, NULL, wszTimesNewRoman); + test_exec_fontname(unk, wszArial, wszTimesNewRoman); + test_exec_fontname(unk, NULL, wszArial); + test_UIDeactivate(); test_InPlaceDeactivate(unk, TRUE); test_Close(unk, FALSE);