mshtml: Added more loading tests.
This commit is contained in:
parent
e15b5c7010
commit
3eb87d9efe
|
@ -87,7 +87,8 @@ DEFINE_EXPECT(QueryStatus_NEW);
|
||||||
DEFINE_EXPECT(Exec_SETPROGRESSMAX);
|
DEFINE_EXPECT(Exec_SETPROGRESSMAX);
|
||||||
DEFINE_EXPECT(Exec_SETPROGRESSPOS);
|
DEFINE_EXPECT(Exec_SETPROGRESSPOS);
|
||||||
DEFINE_EXPECT(Exec_HTTPEQUIV_DONE);
|
DEFINE_EXPECT(Exec_HTTPEQUIV_DONE);
|
||||||
DEFINE_EXPECT(Exec_SETDOWNLOADSTATE);
|
DEFINE_EXPECT(Exec_SETDOWNLOADSTATE_0);
|
||||||
|
DEFINE_EXPECT(Exec_SETDOWNLOADSTATE_1);
|
||||||
DEFINE_EXPECT(Exec_ShellDocView_37);
|
DEFINE_EXPECT(Exec_ShellDocView_37);
|
||||||
DEFINE_EXPECT(Exec_UPDATECOMMANDS);
|
DEFINE_EXPECT(Exec_UPDATECOMMANDS);
|
||||||
DEFINE_EXPECT(Exec_SETTITLE);
|
DEFINE_EXPECT(Exec_SETTITLE);
|
||||||
|
@ -104,6 +105,10 @@ DEFINE_EXPECT(UpdateUI);
|
||||||
DEFINE_EXPECT(Navigate);
|
DEFINE_EXPECT(Navigate);
|
||||||
DEFINE_EXPECT(OnFrameWindowActivate);
|
DEFINE_EXPECT(OnFrameWindowActivate);
|
||||||
DEFINE_EXPECT(OnChanged_READYSTATE);
|
DEFINE_EXPECT(OnChanged_READYSTATE);
|
||||||
|
DEFINE_EXPECT(OnChanged_1005);
|
||||||
|
DEFINE_EXPECT(GetDisplayName);
|
||||||
|
DEFINE_EXPECT(BindToStorage);
|
||||||
|
DEFINE_EXPECT(Abort);
|
||||||
|
|
||||||
static BOOL expect_LockContainer_fLock;
|
static BOOL expect_LockContainer_fLock;
|
||||||
static BOOL expect_SetActiveObject_active;
|
static BOOL expect_SetActiveObject_active;
|
||||||
|
@ -239,7 +244,10 @@ static HRESULT WINAPI PropertyNotifySink_OnChanged(IPropertyNotifySink *iface, D
|
||||||
{
|
{
|
||||||
switch(dispID) {
|
switch(dispID) {
|
||||||
case DISPID_READYSTATE:
|
case DISPID_READYSTATE:
|
||||||
CHECK_EXPECT(OnChanged_READYSTATE);
|
CHECK_EXPECT2(OnChanged_READYSTATE);
|
||||||
|
return S_OK;
|
||||||
|
case 1005:
|
||||||
|
CHECK_EXPECT(OnChanged_1005);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -263,6 +271,341 @@ static IPropertyNotifySinkVtbl PropertyNotifySinkVtbl = {
|
||||||
|
|
||||||
static IPropertyNotifySink PropertyNotifySink = { &PropertyNotifySinkVtbl };
|
static IPropertyNotifySink PropertyNotifySink = { &PropertyNotifySinkVtbl };
|
||||||
|
|
||||||
|
static HRESULT WINAPI Binding_QueryInterface(IBinding *iface, REFIID riid, void **ppv)
|
||||||
|
{
|
||||||
|
if(IsEqualGUID(&IID_IWinInetHttpInfo, riid))
|
||||||
|
return E_NOINTERFACE; /* TODO */
|
||||||
|
|
||||||
|
if(IsEqualGUID(&IID_IWinInetInfo, riid))
|
||||||
|
return E_NOINTERFACE; /* TODO */
|
||||||
|
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOINTERFACE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static ULONG WINAPI Binding_AddRef(IBinding *iface)
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
static ULONG WINAPI Binding_Release(IBinding *iface)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Binding_Abort(IBinding *iface)
|
||||||
|
{
|
||||||
|
CHECK_EXPECT(Abort);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Binding_Suspend(IBinding *iface)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Binding_Resume(IBinding *iface)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Binding_SetPriority(IBinding *iface, LONG nPriority)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Binding_GetPriority(IBinding *iface, LONG *pnPriority)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Binding_GetBindResult(IBinding *iface, CLSID *pclsidProtocol,
|
||||||
|
DWORD *pdwResult, LPOLESTR *pszResult, DWORD *pdwReserved)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const IBindingVtbl BindingVtbl = {
|
||||||
|
Binding_QueryInterface,
|
||||||
|
Binding_AddRef,
|
||||||
|
Binding_Release,
|
||||||
|
Binding_Abort,
|
||||||
|
Binding_Suspend,
|
||||||
|
Binding_Resume,
|
||||||
|
Binding_SetPriority,
|
||||||
|
Binding_GetPriority,
|
||||||
|
Binding_GetBindResult
|
||||||
|
};
|
||||||
|
|
||||||
|
static IBinding Binding = { &BindingVtbl };
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_QueryInterface(IMoniker *iface, REFIID riid, void **ppv)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOINTERFACE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static ULONG WINAPI Moniker_AddRef(IMoniker *iface)
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
static ULONG WINAPI Moniker_Release(IMoniker *iface)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_GetClassID(IMoniker *iface, CLSID *pClassID)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_IsDirty(IMoniker *iface)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_Load(IMoniker *iface, IStream *pStm)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_Save(IMoniker *iface, IStream *pStm, BOOL fClearDirty)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_GetSizeMax(IMoniker *iface, ULARGE_INTEGER *pcbSize)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_BindToObject(IMoniker *iface, IBindCtx *pcb, IMoniker *pmkToLeft,
|
||||||
|
REFIID riidResult, void **ppvResult)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_BindToStorage(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft,
|
||||||
|
REFIID riid, void **ppv)
|
||||||
|
{
|
||||||
|
IBindStatusCallback *callback = NULL;
|
||||||
|
FORMATETC formatetc = {0xc02d, NULL, 1, -1, TYMED_ISTREAM};
|
||||||
|
STGMEDIUM stgmedium;
|
||||||
|
BINDINFO bindinfo;
|
||||||
|
DWORD bindf, written=0;
|
||||||
|
IStream *stream;
|
||||||
|
HRESULT hres;
|
||||||
|
|
||||||
|
static OLECHAR BSCBHolder[] = { '_','B','S','C','B','_','H','o','l','d','e','r','_',0 };
|
||||||
|
static const WCHAR wszTextHtml[] = {'t','e','x','t','/','h','t','m','l',0};
|
||||||
|
static const char html_page[] = "<html><body>test</body></html>";
|
||||||
|
|
||||||
|
CHECK_EXPECT(BindToStorage);
|
||||||
|
|
||||||
|
ok(pbc != NULL, "pbc == NULL\n");
|
||||||
|
ok(pmkToLeft == NULL, "pmkToLeft=%p\n", pmkToLeft);
|
||||||
|
ok(IsEqualGUID(&IID_IStream, riid), "unexpected riid\n");
|
||||||
|
ok(ppv != NULL, "ppv == NULL\n");
|
||||||
|
ok(*ppv == NULL, "*ppv=%p\n", *ppv);
|
||||||
|
|
||||||
|
hres = IBindCtx_GetObjectParam(pbc, BSCBHolder, (IUnknown**)&callback);
|
||||||
|
ok(hres == S_OK, "GetObjectParam failed: %08lx\n", hres);
|
||||||
|
ok(callback != NULL, "callback == NULL\n");
|
||||||
|
|
||||||
|
memset(&bindinfo, 0xf0, sizeof(bindinfo));
|
||||||
|
bindinfo.cbSize = sizeof(bindinfo);
|
||||||
|
|
||||||
|
hres = IBindStatusCallback_GetBindInfo(callback, &bindf, &bindinfo);
|
||||||
|
ok(hres == S_OK, "GetBindInfo failed: %08lx\n", hres);
|
||||||
|
ok(bindf == (BINDF_PULLDATA|BINDF_ASYNCSTORAGE|BINDF_ASYNCHRONOUS), "bindf = %08lx\n", bindf);
|
||||||
|
ok(bindinfo.cbSize == sizeof(bindinfo), "bindinfo.cbSize=%ld\n", bindinfo.cbSize);
|
||||||
|
ok(bindinfo.szExtraInfo == NULL, "bindinfo.szExtraInfo=%p\n", bindinfo.szExtraInfo);
|
||||||
|
/* TODO: test stgmedData */
|
||||||
|
ok(bindinfo.grfBindInfoF == 0, "bindinfo.grfBinfInfoF=%08lx\n", bindinfo.grfBindInfoF);
|
||||||
|
ok(bindinfo.dwBindVerb == 0, "bindinfo.dwBindVerb=%ld\n", bindinfo.dwBindVerb);
|
||||||
|
ok(bindinfo.szCustomVerb == 0, "bindinfo.szCustomVerb=%p\n", bindinfo.szCustomVerb);
|
||||||
|
ok(bindinfo.cbStgmedData == 0, "bindinfo.cbStgmedData=%ld\n", bindinfo.cbStgmedData);
|
||||||
|
ok(bindinfo.dwOptions == 0x80000, "bindinfo.dwOptions=%lx\n", bindinfo.dwOptions);
|
||||||
|
ok(bindinfo.dwOptionsFlags == 0, "bindinfo.dwOptionsFlags=%ld\n", bindinfo.dwOptionsFlags);
|
||||||
|
/* TODO: test dwCodePage */
|
||||||
|
/* TODO: test securityAttributes */
|
||||||
|
ok(IsEqualGUID(&IID_NULL, &bindinfo.iid), "unexepected bindinfo.iid\n");
|
||||||
|
ok(bindinfo.pUnk == NULL, "bindinfo.pUnk=%p\n", bindinfo.pUnk);
|
||||||
|
ok(bindinfo.dwReserved == 0, "bindinfo.dwReserved=%ld\n", bindinfo.dwReserved);
|
||||||
|
|
||||||
|
hres = IBindStatusCallback_OnStartBinding(callback, 0, &Binding);
|
||||||
|
ok(hres == S_OK, "OnStartBinding failed: %08lx\n", hres);
|
||||||
|
|
||||||
|
hres = IBindStatusCallback_OnProgress(callback, 0, 0, BINDSTATUS_MIMETYPEAVAILABLE,
|
||||||
|
wszTextHtml);
|
||||||
|
ok(hres == S_OK, "OnProgress(BINDSTATUS_MIMETYPEAVAILABLE) failed: %08lx\n", hres);
|
||||||
|
|
||||||
|
hres = IBindStatusCallback_OnProgress(callback, 0, 0, BINDSTATUS_BEGINDOWNLOADDATA,
|
||||||
|
NULL);
|
||||||
|
ok(hres == S_OK, "OnProgress(BINDSTATUS_BEGINDOWNLOADDATA) failed: %08lx\n", hres);
|
||||||
|
|
||||||
|
CreateStreamOnHGlobal(0, TRUE, &stream);
|
||||||
|
IStream_Write(stream, html_page, sizeof(html_page)-1, &written);
|
||||||
|
|
||||||
|
stgmedium.tymed = TYMED_ISTREAM;
|
||||||
|
U(stgmedium).pstm = stream;
|
||||||
|
stgmedium.pUnkForRelease = (IUnknown*)iface;
|
||||||
|
hres = IBindStatusCallback_OnDataAvailable(callback,
|
||||||
|
BSCF_FIRSTDATANOTIFICATION|BSCF_LASTDATANOTIFICATION,
|
||||||
|
100, &formatetc, &stgmedium);
|
||||||
|
ok(hres == S_OK, "OnDataAvailable failed: %08lx\n", hres);
|
||||||
|
IStream_Release(stream);
|
||||||
|
|
||||||
|
hres = IBindStatusCallback_OnProgress(callback, sizeof(html_page)-1, sizeof(html_page)-1,
|
||||||
|
BINDSTATUS_ENDDOWNLOADDATA, NULL);
|
||||||
|
ok(hres == S_OK, "OnProgress(BINDSTATUS_ENDDOWNLOADDATA) failed: %08lx\n", hres);
|
||||||
|
|
||||||
|
hres = IBindStatusCallback_OnStopBinding(callback, S_OK, NULL);
|
||||||
|
ok(hres == S_OK, "OnStopBinding failed: %08lx\n", hres);
|
||||||
|
|
||||||
|
IBindStatusCallback_Release(callback);
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_Reduce(IMoniker *iface, IBindCtx *pbc, DWORD dwReduceHowFar,
|
||||||
|
IMoniker **ppmkToLeft, IMoniker **ppmkReduced)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_ComposeWith(IMoniker *iface, IMoniker *pmkRight,
|
||||||
|
BOOL fOnlyIfNotGeneric, IMoniker **ppnkComposite)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_Enum(IMoniker *iface, BOOL fForward, IEnumMoniker **ppenumMoniker)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_IsEqual(IMoniker *iface, IMoniker *pmkOtherMoniker)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_Hash(IMoniker *iface, DWORD *pdwHash)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_IsRunning(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft,
|
||||||
|
IMoniker *pmkNewlyRunning)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_GetTimeOfLastChange(IMoniker *iface, IBindCtx *pbc,
|
||||||
|
IMoniker *pmkToLeft, FILETIME *pFileTime)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_Inverse(IMoniker *iface, IMoniker **ppmk)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_CommonPrefixWith(IMoniker *iface, IMoniker *pmkOther,
|
||||||
|
IMoniker **ppmkPrefix)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_RelativePathTo(IMoniker *iface, IMoniker *pmkOther,
|
||||||
|
IMoniker **pmkRelPath)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_GetDisplayName(IMoniker *iface, IBindCtx *pbc,
|
||||||
|
IMoniker *pmkToLeft, LPOLESTR *ppszDisplayName)
|
||||||
|
{
|
||||||
|
static const WCHAR winetest_test[] =
|
||||||
|
{'w','i','n','e','t','e','s','t',':','t','e','s','t',0};
|
||||||
|
|
||||||
|
CHECK_EXPECT2(GetDisplayName);
|
||||||
|
|
||||||
|
/* ok(pbc != NULL, "pbc == NULL\n"); */
|
||||||
|
ok(pmkToLeft == NULL, "pmkToLeft=%p\n", pmkToLeft);
|
||||||
|
ok(ppszDisplayName != NULL, "ppszDisplayName == NULL\n");
|
||||||
|
ok(*ppszDisplayName == NULL, "*ppszDisplayName=%p\n", *ppszDisplayName);
|
||||||
|
|
||||||
|
*ppszDisplayName = CoTaskMemAlloc(sizeof(winetest_test));
|
||||||
|
memcpy(*ppszDisplayName, winetest_test, sizeof(winetest_test));
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_ParseDisplayName(IMoniker *iface, IBindCtx *pbc,
|
||||||
|
IMoniker *pmkToLeft, LPOLESTR pszDisplayName, ULONG *pchEaten, IMoniker **ppmkOut)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI Moniker_IsSystemMoniker(IMoniker *iface, DWORD *pdwMksys)
|
||||||
|
{
|
||||||
|
ok(0, "unexpected call\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const IMonikerVtbl MonikerVtbl = {
|
||||||
|
Moniker_QueryInterface,
|
||||||
|
Moniker_AddRef,
|
||||||
|
Moniker_Release,
|
||||||
|
Moniker_GetClassID,
|
||||||
|
Moniker_IsDirty,
|
||||||
|
Moniker_Load,
|
||||||
|
Moniker_Save,
|
||||||
|
Moniker_GetSizeMax,
|
||||||
|
Moniker_BindToObject,
|
||||||
|
Moniker_BindToStorage,
|
||||||
|
Moniker_Reduce,
|
||||||
|
Moniker_ComposeWith,
|
||||||
|
Moniker_Enum,
|
||||||
|
Moniker_IsEqual,
|
||||||
|
Moniker_Hash,
|
||||||
|
Moniker_IsRunning,
|
||||||
|
Moniker_GetTimeOfLastChange,
|
||||||
|
Moniker_Inverse,
|
||||||
|
Moniker_CommonPrefixWith,
|
||||||
|
Moniker_RelativePathTo,
|
||||||
|
Moniker_GetDisplayName,
|
||||||
|
Moniker_ParseDisplayName,
|
||||||
|
Moniker_IsSystemMoniker
|
||||||
|
};
|
||||||
|
|
||||||
|
static IMoniker Moniker = { &MonikerVtbl };
|
||||||
|
|
||||||
static HRESULT WINAPI OleContainer_QueryInterface(IOleContainer *iface, REFIID riid, void **ppv)
|
static HRESULT WINAPI OleContainer_QueryInterface(IOleContainer *iface, REFIID riid, void **ppv)
|
||||||
{
|
{
|
||||||
return QueryInterface(riid, ppv);
|
return QueryInterface(riid, ppv);
|
||||||
|
@ -1028,11 +1371,10 @@ static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID
|
||||||
DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
|
DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
|
||||||
{
|
{
|
||||||
if(!pguidCmdGroup) {
|
if(!pguidCmdGroup) {
|
||||||
ok(nCmdexecopt == OLECMDEXECOPT_DONTPROMPTUSER, "nCmdexecopts=%08lx\n", nCmdexecopt);
|
|
||||||
|
|
||||||
switch(nCmdID) {
|
switch(nCmdID) {
|
||||||
case OLECMDID_SETPROGRESSMAX:
|
case OLECMDID_SETPROGRESSMAX:
|
||||||
CHECK_EXPECT2(Exec_SETPROGRESSMAX);
|
CHECK_EXPECT2(Exec_SETPROGRESSMAX);
|
||||||
|
ok(nCmdexecopt == OLECMDEXECOPT_DONTPROMPTUSER, "nCmdexecopts=%08lx\n", nCmdexecopt);
|
||||||
ok(pvaIn != NULL, "pvaIn == NULL\n");
|
ok(pvaIn != NULL, "pvaIn == NULL\n");
|
||||||
if(pvaIn) {
|
if(pvaIn) {
|
||||||
ok(V_VT(pvaIn) == VT_I4, "V_VT(pvaIn)=%d, expected VT_I4\n", V_VT(pvaIn));
|
ok(V_VT(pvaIn) == VT_I4, "V_VT(pvaIn)=%d, expected VT_I4\n", V_VT(pvaIn));
|
||||||
|
@ -1043,6 +1385,7 @@ static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID
|
||||||
return S_OK;
|
return S_OK;
|
||||||
case OLECMDID_SETPROGRESSPOS:
|
case OLECMDID_SETPROGRESSPOS:
|
||||||
CHECK_EXPECT2(Exec_SETPROGRESSPOS);
|
CHECK_EXPECT2(Exec_SETPROGRESSPOS);
|
||||||
|
ok(nCmdexecopt == OLECMDEXECOPT_DONTPROMPTUSER, "nCmdexecopts=%08lx\n", nCmdexecopt);
|
||||||
ok(pvaIn != NULL, "pvaIn == NULL\n");
|
ok(pvaIn != NULL, "pvaIn == NULL\n");
|
||||||
if(pvaIn) {
|
if(pvaIn) {
|
||||||
ok(V_VT(pvaIn) == VT_I4, "V_VT(pvaIn)=%d, expected VT_I4\n", V_VT(pvaIn));
|
ok(V_VT(pvaIn) == VT_I4, "V_VT(pvaIn)=%d, expected VT_I4\n", V_VT(pvaIn));
|
||||||
|
@ -1053,23 +1396,45 @@ static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID
|
||||||
return S_OK;
|
return S_OK;
|
||||||
case OLECMDID_HTTPEQUIV_DONE:
|
case OLECMDID_HTTPEQUIV_DONE:
|
||||||
CHECK_EXPECT(Exec_HTTPEQUIV_DONE);
|
CHECK_EXPECT(Exec_HTTPEQUIV_DONE);
|
||||||
/* TODO */
|
ok(nCmdexecopt == 0, "nCmdexecopts=%08lx\n", nCmdexecopt);
|
||||||
|
ok(pvaOut == NULL, "pvaOut=%p\n", pvaOut);
|
||||||
|
ok(pvaIn == NULL, "pvaIn=%p\n", pvaIn);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
case OLECMDID_SETDOWNLOADSTATE:
|
case OLECMDID_SETDOWNLOADSTATE:
|
||||||
CHECK_EXPECT2(Exec_SETDOWNLOADSTATE);
|
ok(nCmdexecopt == OLECMDEXECOPT_DONTPROMPTUSER, "nCmdexecopts=%08lx\n", nCmdexecopt);
|
||||||
/* TODO */
|
ok(pvaOut == NULL, "pvaOut=%p\n", pvaOut);
|
||||||
|
ok(pvaIn != NULL, "pvaIn == NULL\n");
|
||||||
|
ok(V_VT(pvaIn) == VT_I4, "V_VT(pvaIn)=%d\n", V_VT(pvaIn));
|
||||||
|
|
||||||
|
switch(V_I4(pvaIn)) {
|
||||||
|
case 0:
|
||||||
|
CHECK_EXPECT(Exec_SETDOWNLOADSTATE_0);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
CHECK_EXPECT(Exec_SETDOWNLOADSTATE_1);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ok(0, "unexpevted V_I4(pvaIn)=%ld\n", V_I4(pvaIn));
|
||||||
|
}
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
case OLECMDID_UPDATECOMMANDS:
|
case OLECMDID_UPDATECOMMANDS:
|
||||||
CHECK_EXPECT(Exec_UPDATECOMMANDS);
|
CHECK_EXPECT(Exec_UPDATECOMMANDS);
|
||||||
|
ok(nCmdexecopt == OLECMDEXECOPT_DONTPROMPTUSER, "nCmdexecopts=%08lx\n", nCmdexecopt);
|
||||||
ok(pvaIn == NULL, "pvaIn=%p\n", pvaIn);
|
ok(pvaIn == NULL, "pvaIn=%p\n", pvaIn);
|
||||||
ok(pvaOut == NULL, "pvaOut=%p\n", pvaOut);
|
ok(pvaOut == NULL, "pvaOut=%p\n", pvaOut);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
case OLECMDID_SETTITLE:
|
case OLECMDID_SETTITLE:
|
||||||
CHECK_EXPECT2(Exec_SETTITLE);
|
CHECK_EXPECT2(Exec_SETTITLE);
|
||||||
/* TODO */
|
ok(nCmdexecopt == OLECMDEXECOPT_DONTPROMPTUSER, "nCmdexecopts=%08lx\n", nCmdexecopt);
|
||||||
|
ok(pvaIn != NULL, "pvaIn == NULL\n");
|
||||||
|
ok(pvaOut == NULL, "pvaOut=%p\n", pvaOut);
|
||||||
|
ok(V_VT(pvaIn) == VT_BSTR, "V_VT(pvaIn)=%d\n", V_VT(pvaIn));
|
||||||
|
ok(V_BSTR(pvaIn) != NULL, "V_BSTR(pvaIn) == NULL\n"); /* TODO */
|
||||||
return S_OK;
|
return S_OK;
|
||||||
case OLECMDID_HTTPEQUIV:
|
case OLECMDID_HTTPEQUIV:
|
||||||
CHECK_EXPECT2(Exec_HTTPEQUIV);
|
CHECK_EXPECT2(Exec_HTTPEQUIV);
|
||||||
|
ok(nCmdexecopt == OLECMDEXECOPT_DONTPROMPTUSER, "nCmdexecopts=%08lx\n", nCmdexecopt);
|
||||||
/* TODO */
|
/* TODO */
|
||||||
return S_OK;
|
return S_OK;
|
||||||
default:
|
default:
|
||||||
|
@ -1374,113 +1739,103 @@ static void test_ConnectionPointContainer(IUnknown *unk)
|
||||||
|
|
||||||
static void test_Load(IPersistMoniker *persist)
|
static void test_Load(IPersistMoniker *persist)
|
||||||
{
|
{
|
||||||
IMoniker *mon;
|
|
||||||
IBindCtx *bind;
|
IBindCtx *bind;
|
||||||
HRESULT hres;
|
HRESULT hres;
|
||||||
|
|
||||||
static const WCHAR wszWineHQ[] =
|
|
||||||
{'h','t','t','p',':','/','/','w','w','w','.','w','i','n','e','h','q','.','o','r','g','/',0};
|
|
||||||
|
|
||||||
hres = CreateURLMoniker(NULL, wszWineHQ, &mon);
|
|
||||||
ok(hres == S_OK, "CreateURLMoniker failed: %08lx\n", hres);
|
|
||||||
if(FAILED(hres))
|
|
||||||
return;
|
|
||||||
|
|
||||||
CreateBindCtx(0, &bind);
|
CreateBindCtx(0, &bind);
|
||||||
IBindCtx_RegisterObjectParam(bind, (LPOLESTR)SZ_HTML_CLIENTSITE_OBJECTPARAM,
|
IBindCtx_RegisterObjectParam(bind, (LPOLESTR)SZ_HTML_CLIENTSITE_OBJECTPARAM,
|
||||||
(IUnknown*)&ClientSite);
|
(IUnknown*)&ClientSite);
|
||||||
|
|
||||||
|
SET_EXPECT(GetDisplayName);
|
||||||
SET_EXPECT(GetHostInfo);
|
SET_EXPECT(GetHostInfo);
|
||||||
|
SET_EXPECT(Invoke_AMBIENT_USERMODE);
|
||||||
|
SET_EXPECT(Invoke_AMBIENT_SILENT);
|
||||||
|
SET_EXPECT(Invoke_AMBIENT_DLCONTROL);
|
||||||
|
SET_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
|
||||||
|
SET_EXPECT(Invoke_AMBIENT_USERAGENT);
|
||||||
|
SET_EXPECT(Invoke_AMBIENT_PALETTE);
|
||||||
SET_EXPECT(GetOptionKeyPath);
|
SET_EXPECT(GetOptionKeyPath);
|
||||||
SET_EXPECT(GetOverrideKeyPath);
|
SET_EXPECT(GetOverrideKeyPath);
|
||||||
SET_EXPECT(GetWindow);
|
SET_EXPECT(GetWindow);
|
||||||
SET_EXPECT(QueryStatus_SETPROGRESSTEXT);
|
SET_EXPECT(QueryStatus_SETPROGRESSTEXT);
|
||||||
SET_EXPECT(Exec_SETPROGRESSMAX);
|
SET_EXPECT(Exec_SETPROGRESSMAX);
|
||||||
SET_EXPECT(Exec_SETPROGRESSPOS);
|
SET_EXPECT(Exec_SETPROGRESSPOS);
|
||||||
SET_EXPECT(Invoke_AMBIENT_USERMODE);
|
SET_EXPECT(Exec_ShellDocView_37);
|
||||||
SET_EXPECT(Invoke_AMBIENT_DLCONTROL);
|
|
||||||
SET_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
|
|
||||||
SET_EXPECT(Invoke_AMBIENT_SILENT);
|
|
||||||
SET_EXPECT(Invoke_AMBIENT_USERAGENT);
|
|
||||||
SET_EXPECT(Invoke_AMBIENT_PALETTE);
|
|
||||||
SET_EXPECT(OnChanged_READYSTATE);
|
SET_EXPECT(OnChanged_READYSTATE);
|
||||||
|
SET_EXPECT(BindToStorage);
|
||||||
SET_EXPECT(GetContainer);
|
SET_EXPECT(GetContainer);
|
||||||
SET_EXPECT(LockContainer);
|
SET_EXPECT(LockContainer);
|
||||||
SET_EXPECT(Exec_ShellDocView_37);
|
|
||||||
expect_LockContainer_fLock = TRUE;
|
expect_LockContainer_fLock = TRUE;
|
||||||
|
|
||||||
hres = IPersistMoniker_Load(persist, FALSE, mon, bind, 0x12);
|
hres = IPersistMoniker_Load(persist, FALSE, &Moniker, bind, 0x12);
|
||||||
#if 0
|
|
||||||
ok(hres == S_OK, "Load failed: %08lx\n", hres);
|
ok(hres == S_OK, "Load failed: %08lx\n", hres);
|
||||||
#endif
|
|
||||||
|
|
||||||
|
CHECK_CALLED(GetDisplayName);
|
||||||
CHECK_CALLED(GetHostInfo);
|
CHECK_CALLED(GetHostInfo);
|
||||||
|
CHECK_CALLED(Invoke_AMBIENT_USERMODE);
|
||||||
|
CHECK_CALLED(Invoke_AMBIENT_SILENT);
|
||||||
|
CHECK_CALLED(Invoke_AMBIENT_DLCONTROL);
|
||||||
|
CHECK_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
|
||||||
|
CHECK_CALLED(Invoke_AMBIENT_USERAGENT);
|
||||||
|
CHECK_CALLED(Invoke_AMBIENT_PALETTE);
|
||||||
CHECK_CALLED(GetOptionKeyPath);
|
CHECK_CALLED(GetOptionKeyPath);
|
||||||
CHECK_CALLED(GetOverrideKeyPath);
|
CHECK_CALLED(GetOverrideKeyPath);
|
||||||
CHECK_CALLED(GetWindow);
|
CHECK_CALLED(GetWindow);
|
||||||
CHECK_CALLED(QueryStatus_SETPROGRESSTEXT);
|
CHECK_CALLED(QueryStatus_SETPROGRESSTEXT);
|
||||||
CHECK_CALLED(Exec_SETPROGRESSMAX);
|
CHECK_CALLED(Exec_SETPROGRESSMAX);
|
||||||
CHECK_CALLED(Exec_SETPROGRESSPOS);
|
CHECK_CALLED(Exec_SETPROGRESSPOS);
|
||||||
CHECK_CALLED(Invoke_AMBIENT_USERMODE);
|
CHECK_CALLED(Exec_ShellDocView_37);
|
||||||
CHECK_CALLED(Invoke_AMBIENT_DLCONTROL);
|
|
||||||
CHECK_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
|
|
||||||
CHECK_CALLED(Invoke_AMBIENT_SILENT);
|
|
||||||
CHECK_CALLED(Invoke_AMBIENT_USERAGENT);
|
|
||||||
CHECK_CALLED(Invoke_AMBIENT_PALETTE);
|
|
||||||
CHECK_CALLED(OnChanged_READYSTATE);
|
CHECK_CALLED(OnChanged_READYSTATE);
|
||||||
|
CHECK_CALLED(BindToStorage);
|
||||||
CHECK_CALLED(GetContainer);
|
CHECK_CALLED(GetContainer);
|
||||||
CHECK_CALLED(LockContainer);
|
CHECK_CALLED(LockContainer);
|
||||||
CHECK_CALLED(Exec_ShellDocView_37);
|
|
||||||
|
|
||||||
set_clientsite = container_locked = TRUE;
|
set_clientsite = container_locked = TRUE;
|
||||||
|
|
||||||
IBindCtx_Release(bind);
|
IBindCtx_Release(bind);
|
||||||
IMoniker_Release(mon);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DOWNLOAD_TEST
|
|
||||||
|
|
||||||
static void test_download(void)
|
static void test_download(void)
|
||||||
{
|
{
|
||||||
|
HWND hwnd;
|
||||||
MSG msg;
|
MSG msg;
|
||||||
|
|
||||||
load_state = LD_LOADING;
|
load_state = LD_LOADING;
|
||||||
|
|
||||||
SET_EXPECT(Exec_SETDOWNLOADSTATE);
|
hwnd = FindWindowA("Internet Explorer_Hidden", NULL);
|
||||||
SET_EXPECT(GetDropTarget);
|
ok(hwnd != NULL, "Could not find hidden window\n");
|
||||||
|
|
||||||
SET_EXPECT(SetStatusText);
|
SET_EXPECT(SetStatusText);
|
||||||
SET_EXPECT(UpdateUI);
|
SET_EXPECT(Exec_SETDOWNLOADSTATE_1);
|
||||||
SET_EXPECT(Exec_UPDATECOMMANDS);
|
SET_EXPECT(GetDropTarget);
|
||||||
SET_EXPECT(Exec_SETTITLE);
|
SET_EXPECT(OnChanged_1005);
|
||||||
SET_EXPECT(Exec_HTTPEQUIV);
|
SET_EXPECT(OnChanged_READYSTATE);
|
||||||
SET_EXPECT(Exec_SETPROGRESSMAX);
|
|
||||||
SET_EXPECT(Exec_SETPROGRESSPOS);
|
SET_EXPECT(Exec_SETPROGRESSPOS);
|
||||||
|
SET_EXPECT(Exec_SETDOWNLOADSTATE_0);
|
||||||
SET_EXPECT(Exec_MSHTML_PARSECOMPLETE);
|
SET_EXPECT(Exec_MSHTML_PARSECOMPLETE);
|
||||||
SET_EXPECT(Exec_HTTPEQUIV_DONE);
|
SET_EXPECT(Exec_HTTPEQUIV_DONE);
|
||||||
expect_status_text = (LPCOLESTR)0xdeadbeef; /* TODO */
|
SET_EXPECT(Exec_SETTITLE);
|
||||||
|
expect_status_text = (LPWSTR)0xdeadbeef; /* TODO */
|
||||||
|
|
||||||
while(!called_Exec_HTTPEQUIV_DONE && GetMessage(&msg, NULL, 0, 0)) {
|
while(!called_Exec_HTTPEQUIV_DONE && GetMessage(&msg, hwnd, 0, 0)) {
|
||||||
TranslateMessage(&msg);
|
TranslateMessage(&msg);
|
||||||
DispatchMessage(&msg);
|
DispatchMessage(&msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
CHECK_CALLED(Exec_SETDOWNLOADSTATE);
|
|
||||||
CHECK_CALLED(GetDropTarget);
|
|
||||||
CHECK_CALLED(SetStatusText);
|
CHECK_CALLED(SetStatusText);
|
||||||
CHECK_CALLED(UpdateUI);
|
CHECK_CALLED(Exec_SETDOWNLOADSTATE_1);
|
||||||
CHECK_CALLED(Exec_UPDATECOMMANDS);
|
CHECK_CALLED(GetDropTarget);
|
||||||
CHECK_CALLED(Exec_SETTITLE);
|
CHECK_CALLED(OnChanged_1005);
|
||||||
CHECK_CALLED(Exec_HTTPEQUIV);
|
CHECK_CALLED(OnChanged_READYSTATE);
|
||||||
CHECK_CALLED(Exec_SETPROGRESSMAX);
|
|
||||||
CHECK_CALLED(Exec_SETPROGRESSPOS);
|
CHECK_CALLED(Exec_SETPROGRESSPOS);
|
||||||
|
CHECK_CALLED(Exec_SETDOWNLOADSTATE_0);
|
||||||
CHECK_CALLED(Exec_MSHTML_PARSECOMPLETE);
|
CHECK_CALLED(Exec_MSHTML_PARSECOMPLETE);
|
||||||
CHECK_CALLED(Exec_HTTPEQUIV_DONE);
|
CHECK_CALLED(Exec_HTTPEQUIV_DONE);
|
||||||
|
CHECK_CALLED(Exec_SETTITLE);
|
||||||
|
|
||||||
load_state = LD_LOADED;
|
load_state = LD_LOADED;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static void test_Persist(IUnknown *unk)
|
static void test_Persist(IUnknown *unk)
|
||||||
{
|
{
|
||||||
IPersistMoniker *persist_mon;
|
IPersistMoniker *persist_mon;
|
||||||
|
@ -2128,6 +2483,8 @@ static void test_HTMLDocument(enum load_state_t ls)
|
||||||
HRESULT hres;
|
HRESULT hres;
|
||||||
ULONG ref;
|
ULONG ref;
|
||||||
|
|
||||||
|
trace("Testing HTMLDocument (%s)...\n", (ls == LD_DOLOAD ? " load" : "no load"));
|
||||||
|
|
||||||
init_test(ls);
|
init_test(ls);
|
||||||
|
|
||||||
hres = create_document(&unk);
|
hres = create_document(&unk);
|
||||||
|
@ -2145,10 +2502,8 @@ static void test_HTMLDocument(enum load_state_t ls)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DOWNLOAD_TEST
|
|
||||||
if(load_state == LD_DOLOAD)
|
if(load_state == LD_DOLOAD)
|
||||||
test_download();
|
test_download();
|
||||||
#endif
|
|
||||||
|
|
||||||
test_OleCommandTarget_fail(unk);
|
test_OleCommandTarget_fail(unk);
|
||||||
test_OleCommandTarget(unk);
|
test_OleCommandTarget(unk);
|
||||||
|
@ -2197,7 +2552,6 @@ static void test_HTMLDocument(enum load_state_t ls)
|
||||||
ok(ref == 0, "ref=%ld, expected 0\n", ref);
|
ok(ref == 0, "ref=%ld, expected 0\n", ref);
|
||||||
|
|
||||||
ok(!IsWindow(hwnd), "hwnd is not destroyed\n");
|
ok(!IsWindow(hwnd), "hwnd is not destroyed\n");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_HTMLDocument_hlink(void)
|
static void test_HTMLDocument_hlink(void)
|
||||||
|
@ -2206,6 +2560,8 @@ static void test_HTMLDocument_hlink(void)
|
||||||
HRESULT hres;
|
HRESULT hres;
|
||||||
ULONG ref;
|
ULONG ref;
|
||||||
|
|
||||||
|
trace("Testing HTMLDocument (hlink)...\n");
|
||||||
|
|
||||||
init_test(LD_DOLOAD);
|
init_test(LD_DOLOAD);
|
||||||
|
|
||||||
hres = create_document(&unk);
|
hres = create_document(&unk);
|
||||||
|
@ -2216,9 +2572,7 @@ static void test_HTMLDocument_hlink(void)
|
||||||
test_Persist(unk);
|
test_Persist(unk);
|
||||||
test_Navigate(unk);
|
test_Navigate(unk);
|
||||||
|
|
||||||
#ifdef DOWNLOAD_TEST
|
|
||||||
test_download();
|
test_download();
|
||||||
#endif
|
|
||||||
|
|
||||||
test_exec_onunload(unk);
|
test_exec_onunload(unk);
|
||||||
test_Window(unk, TRUE);
|
test_Window(unk, TRUE);
|
||||||
|
@ -2240,6 +2594,8 @@ static void test_editing_mode(void)
|
||||||
HRESULT hres;
|
HRESULT hres;
|
||||||
ULONG ref;
|
ULONG ref;
|
||||||
|
|
||||||
|
trace("Testing HTMLDocument (edit)...\n");
|
||||||
|
|
||||||
init_test(LD_DOLOAD);
|
init_test(LD_DOLOAD);
|
||||||
|
|
||||||
hres = create_document(&unk);
|
hres = create_document(&unk);
|
||||||
|
|
Loading…
Reference in New Issue