Jacek Caban : mshtml: Added test of edit mode.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Aug 17 05:04:38 CDT 2006
Module: wine
Branch: master
Commit: cf6492629c525ae765d585a47edfdab382a41b9f
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=cf6492629c525ae765d585a47edfdab382a41b9f
Author: Jacek Caban <jacek at codeweavers.com>
Date: Thu Aug 17 03:35:53 2006 +0200
mshtml: Added test of edit mode.
---
dlls/mshtml/tests/htmldoc.c | 94 ++++++++++++++++++++++++++++++++++++++-----
1 files changed, 83 insertions(+), 11 deletions(-)
diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c
index 697ddaf..c66c452 100644
--- a/dlls/mshtml/tests/htmldoc.c
+++ b/dlls/mshtml/tests/htmldoc.c
@@ -28,6 +28,7 @@ #include "mshtml.h"
#include "docobj.h"
#include "mshtmhst.h"
#include "mshtmdid.h"
+#include "mshtmcid.h"
#include "hlink.h"
#include "idispids.h"
#include "shlguid.h"
@@ -106,7 +107,7 @@ DEFINE_EXPECT(OnFrameWindowActivate);
static BOOL expect_LockContainer_fLock;
static BOOL expect_SetActiveObject_active;
static BOOL set_clientsite = FALSE, container_locked = FALSE;
-static enum {
+static enum load_state_t {
LD_NO = 0,
LD_DOLOAD,
LD_LOADING,
@@ -800,7 +801,7 @@ static HRESULT WINAPI DocHostUIHandler_S
{
CHECK_EXPECT(ShowUI);
- ok(dwID == 0, "dwID=%ld, expected 0\n", dwID);
+ ok(dwID == DOCHOSTUITYPE_BROWSE, "dwID=%ld, expected DOCHOSTUITYPE_BROWSE\n", dwID);
ok(pActiveObject != NULL, "pActiveObject = NULL\n");
ok(pCommandTarget != NULL, "pCommandTarget = NULL\n");
ok(pFrame == &InPlaceFrame, "pFrame=%p, expected %p\n", pFrame, &InPlaceFrame);
@@ -1026,7 +1027,7 @@ static HRESULT WINAPI OleCommandTarget_E
if(IsEqualGUID(&CGID_ShellDocView, pguidCmdGroup)) {
switch(nCmdID) {
case 37:
- CHECK_EXPECT(Exec_ShellDocView_37);
+ CHECK_EXPECT2(Exec_ShellDocView_37);
ok(pvaOut == NULL, "pvaOut=%p, expected NULL\n", pvaOut);
ok(pvaIn != NULL, "pvaIn == NULL\n");
if(pvaIn) {
@@ -1601,6 +1602,36 @@ static void test_exec_onunload(IUnknown
IOleCommandTarget_Release(cmdtrg);
}
+static void test_exec_editmode(IUnknown *unk)
+{
+ IOleCommandTarget *cmdtrg;
+ HRESULT hres;
+
+ hres = IUnknown_QueryInterface(unk, &IID_IOleCommandTarget, (void**)&cmdtrg);
+ ok(hres == S_OK, "QueryInterface(IID_IOleCommandTarget) failed: %08lx\n", hres);
+ if(FAILED(hres))
+ return;
+
+ SET_EXPECT(SetStatusText);
+ SET_EXPECT(Exec_ShellDocView_37);
+ SET_EXPECT(GetHostInfo);
+ SET_EXPECT(Invoke_AMBIENT_SILENT);
+ SET_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
+ expect_status_text = NULL;
+
+ hres = IOleCommandTarget_Exec(cmdtrg, &CGID_MSHTML, IDM_EDITMODE,
+ OLECMDEXECOPT_DODEFAULT, NULL, NULL);
+ ok(hres == S_OK, "Exec failed: %08lx\n", hres);
+
+ CHECK_CALLED(SetStatusText);
+ CHECK_CALLED(Exec_ShellDocView_37);
+ CHECK_CALLED(GetHostInfo);
+ CHECK_CALLED(Invoke_AMBIENT_SILENT);
+ CHECK_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
+
+ IOleCommandTarget_Release(cmdtrg);
+}
+
static HWND create_container_window(void)
{
static const WCHAR wszHTMLDocumentTest[] =
@@ -2014,13 +2045,20 @@ static void test_Navigate(IUnknown *unk)
IHlinkTarget_Release(hlink);
}
-static void test_HTMLDocument(void)
+static void init_test(enum load_state_t ls) {
+ hwnd = last_hwnd = NULL;
+ set_clientsite = FALSE;
+ call_UIActivate = FALSE;
+ load_state = ls;
+}
+
+static void test_HTMLDocument(enum load_state_t ls)
{
IUnknown *unk;
HRESULT hres;
ULONG ref;
- hwnd = last_hwnd = NULL;
+ init_test(ls);
hres = create_document(&unk);
if(FAILED(hres))
@@ -2098,7 +2136,7 @@ static void test_HTMLDocument_hlink(void
HRESULT hres;
ULONG ref;
- hwnd = last_hwnd = NULL;
+ init_test(LD_DOLOAD);
hres = create_document(&unk);
if(FAILED(hres))
@@ -2124,6 +2162,42 @@ #endif
ok(ref == 0, "ref=%ld, expected 0\n", ref);
}
+static void test_editing_mode(void)
+{
+ IUnknown *unk;
+ IOleObject *oleobj;
+ HRESULT hres;
+ ULONG ref;
+
+ init_test(LD_DOLOAD);
+
+ hres = create_document(&unk);
+ if(FAILED(hres))
+ return;
+
+ hres = IUnknown_QueryInterface(unk, &IID_IOleObject, (void**)&oleobj);
+ ok(hres == S_OK, "Could not get IOleObject: %08lx\n", hres);
+
+ test_ClientSite(oleobj, CLIENTSITE_EXPECTPATH);
+ test_DoVerb(oleobj);
+
+ IOleObject_Release(oleobj);
+
+ test_exec_editmode(unk);
+
+ test_UIDeactivate();
+ test_InPlaceDeactivate(unk, TRUE);
+ test_Close(unk, FALSE);
+
+ if(view) {
+ IOleDocumentView_Release(view);
+ view = NULL;
+ }
+
+ ref = IUnknown_Release(unk);
+ ok(ref == 0, "ref=%ld, expected 0\n", ref);
+}
+
static void gecko_installer_workaround(BOOL disable)
{
HKEY hkey;
@@ -2161,12 +2235,10 @@ START_TEST(htmldoc)
CoInitialize(NULL);
container_hwnd = create_container_window();
- load_state = LD_NO;
- test_HTMLDocument();
- load_state = LD_DOLOAD;
- test_HTMLDocument();
- load_state = LD_DOLOAD;
+ test_HTMLDocument(LD_NO);
+ test_HTMLDocument(LD_DOLOAD);
test_HTMLDocument_hlink();
+ test_editing_mode();
DestroyWindow(container_hwnd);
CoUninitialize();
More information about the wine-cvs
mailing list