Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
d69297c4
Commit
d69297c4
authored
Mar 13, 2010
by
Jacek Caban
Committed by
Alexandre Julliard
Mar 15, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
shdocvw: Added more navigation tests.
parent
172f82e1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
218 additions
and
75 deletions
+218
-75
webbrowser.c
dlls/shdocvw/tests/webbrowser.c
+218
-75
No files found.
dlls/shdocvw/tests/webbrowser.c
View file @
d69297c4
...
...
@@ -41,6 +41,7 @@
#include "mimeinfo.h"
DEFINE_GUID
(
GUID_NULL
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
);
DEFINE_OLEGUID
(
CGID_DocHostCmdPriv
,
0x000214D4L
,
0
,
0
);
#define DEFINE_EXPECT(func) \
static BOOL expect_ ## func = FALSE, called_ ## func = FALSE
...
...
@@ -128,16 +129,22 @@ DEFINE_EXPECT(QueryStatus_STOP);
DEFINE_EXPECT
(
DocHost_EnableModeless_TRUE
);
DEFINE_EXPECT
(
DocHost_EnableModeless_FALSE
);
DEFINE_EXPECT
(
GetDropTarget
);
DEFINE_EXPECT
(
TranslateUrl
);
static
const
WCHAR
wszItem
[]
=
{
'i'
,
't'
,
'e'
,
'm'
,
0
};
static
const
WCHAR
about_blankW
[]
=
{
'a'
,
'b'
,
'o'
,
'u'
,
't'
,
':'
,
'b'
,
'l'
,
'a'
,
'n'
,
'k'
,
0
};
static
const
WCHAR
emptyW
[]
=
{
0
};
static
VARIANT_BOOL
exvb
;
static
IWebBrowser2
*
wb
;
static
HWND
container_hwnd
,
shell_embedding_hwnd
;
static
BOOL
is_downloading
=
FALSE
;
static
BOOL
is_downloading
,
is_first_load
;
static
const
char
*
current_url
;
#define DWL_EXPECT_BEFORE_NAVIGATE 0x01
#define DWL_FROM_PUT_HREF 0x02
static
DWORD
dwl_flags
;
static
int
strcmp_wa
(
LPCWSTR
strw
,
const
char
*
stra
)
{
...
...
@@ -158,8 +165,20 @@ static const char *debugstr_guid(REFIID riid)
return
buf
;
}
static
BSTR
a2bstr
(
const
char
*
str
)
{
BSTR
ret
;
int
len
;
len
=
MultiByteToWideChar
(
CP_ACP
,
0
,
str
,
-
1
,
NULL
,
0
);
ret
=
SysAllocStringLen
(
NULL
,
len
);
MultiByteToWideChar
(
CP_ACP
,
0
,
str
,
-
1
,
ret
,
len
);
return
ret
;
}
#define test_LocationURL(a,b) _test_LocationURL(__LINE__,a,b)
static
void
_test_LocationURL
(
unsigned
line
,
IUnknown
*
unk
,
LPCWSTR
exurl
)
static
void
_test_LocationURL
(
unsigned
line
,
IUnknown
*
unk
,
const
char
*
exurl
)
{
IWebBrowser2
*
wb
;
BSTR
url
=
(
void
*
)
0xdeadbeef
;
...
...
@@ -172,7 +191,7 @@ static void _test_LocationURL(unsigned line, IUnknown *unk, LPCWSTR exurl)
hres
=
IWebBrowser2_get_LocationURL
(
wb
,
&
url
);
ok_
(
__FILE__
,
line
)
(
hres
==
(
*
exurl
?
S_OK
:
S_FALSE
),
"get_LocationURL failed: %08x
\n
"
,
hres
);
ok_
(
__FILE__
,
line
)
(
!
lstrcmpW
(
url
,
exurl
),
"unexpected URL: %s
\n
"
,
wine_dbgstr_w
(
url
));
ok_
(
__FILE__
,
line
)
(
!
strcmp_wa
(
url
,
exurl
),
"unexpected URL: %s
\n
"
,
wine_dbgstr_w
(
url
));
SysFreeString
(
url
);
IWebBrowser2_Release
(
wb
);
...
...
@@ -297,6 +316,13 @@ static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID
default:
ok
(
0
,
"unexpected nCmdID %d
\n
"
,
nCmdID
);
}
}
else
if
(
IsEqualGUID
(
&
CGID_DocHostCmdPriv
,
pguidCmdGroup
))
{
switch
(
nCmdID
)
{
case
11
:
/* TODO */
break
;
default:
ok
(
0
,
"unexpected nCmdID %d of CGID_DocHostCmdPriv
\n
"
,
nCmdID
);
}
}
else
{
ok
(
0
,
"unexpected pguidCmdGroup %s
\n
"
,
debugstr_guid
(
pguidCmdGroup
));
}
...
...
@@ -505,8 +531,8 @@ static void test_OnBeforeNavigate(const VARIANT *disp, const VARIANT *url, const
ok
(
V_VT
(
V_VARIANTREF
(
url
))
==
VT_BSTR
,
"V_VT(V_VARIANTREF(url))=%d, expected VT_BSTR
\n
"
,
V_VT
(
V_VARIANTREF
(
url
)));
ok
(
V_BSTR
(
V_VARIANTREF
(
url
))
!=
NULL
,
"V_BSTR(V_VARIANTREF(url)) == NULL
\n
"
);
ok
(
!
lstrcmpW
(
V_BSTR
(
V_VARIANTREF
(
url
)),
about_blankW
),
"unexpected url
%s
\n
"
,
wine_dbgstr_w
(
V_BSTR
(
V_VARIANTREF
(
url
))));
ok
(
!
strcmp_wa
(
V_BSTR
(
V_VARIANTREF
(
url
)),
current_url
),
"unexpected url %s, expected
%s
\n
"
,
wine_dbgstr_w
(
V_BSTR
(
V_VARIANTREF
(
url
)))
,
current_url
);
}
ok
(
V_VT
(
flags
)
==
(
VT_BYREF
|
VT_VARIANT
),
"V_VT(flags)=%x, expected VT_BYREF|VT_VARIANT
\n
"
,
...
...
@@ -517,8 +543,13 @@ static void test_OnBeforeNavigate(const VARIANT *disp, const VARIANT *url, const
if
(
V_VARIANTREF
(
flags
))
{
ok
(
V_VT
(
V_VARIANTREF
(
flags
))
==
VT_I4
,
"V_VT(V_VARIANTREF(flags))=%d, expected VT_I4
\n
"
,
V_VT
(
V_VARIANTREF
(
flags
)));
ok
(
V_I4
(
V_VARIANTREF
(
flags
))
==
0
,
"V_I4(V_VARIANTREF(flags)) = %d, expected 0
\n
"
,
V_I4
(
V_VARIANTREF
(
flags
)));
if
(
is_first_load
)
{
ok
(
V_I4
(
V_VARIANTREF
(
flags
))
==
0
,
"V_I4(V_VARIANTREF(flags)) = %x, expected 0
\n
"
,
V_I4
(
V_VARIANTREF
(
flags
)));
}
else
{
ok
((
V_I4
(
V_VARIANTREF
(
flags
))
&
~
0x40
)
==
0
,
"V_I4(V_VARIANTREF(flags)) = %x, expected 0x40 or 0
\n
"
,
V_I4
(
V_VARIANTREF
(
flags
)));
}
}
ok
(
V_VT
(
frame
)
==
(
VT_BYREF
|
VT_VARIANT
),
"V_VT(frame)=%x, expected VT_BYREF|VT_VARIANT
\n
"
,
...
...
@@ -624,7 +655,7 @@ static HRESULT WINAPI WebBrowserEvents2_Invoke(IDispatch *iface, DISPID dispIdMe
test_OnBeforeNavigate
(
pDispParams
->
rgvarg
+
6
,
pDispParams
->
rgvarg
+
5
,
pDispParams
->
rgvarg
+
4
,
pDispParams
->
rgvarg
+
3
,
pDispParams
->
rgvarg
+
2
,
pDispParams
->
rgvarg
+
1
,
pDispParams
->
rgvarg
);
test_ready_state
(
READYSTATE_LOADING
);
test_ready_state
(
(
dwl_flags
&
DWL_FROM_PUT_HREF
)
?
READYSTATE_COMPLETE
:
READYSTATE_LOADING
);
break
;
case
DISPID_SETSECURELOCKICON
:
...
...
@@ -702,7 +733,7 @@ static HRESULT WINAPI WebBrowserEvents2_Invoke(IDispatch *iface, DISPID dispIdMe
case
DISPID_NAVIGATECOMPLETE2
:
CHECK_EXPECT
(
Invoke_NAVIGATECOMPLETE2
);
/* FIXME */
test_ready_state
(
READYSTATE_LOADING
);
test_ready_state
(
(
dwl_flags
&
DWL_FROM_PUT_HREF
)
?
READYSTATE_COMPLETE
:
READYSTATE_LOADING
);
break
;
case
DISPID_PROGRESSCHANGE
:
...
...
@@ -1249,7 +1280,10 @@ static HRESULT WINAPI DocHostUIHandler_GetExternal(IDocHostUIHandler2 *iface, ID
static
HRESULT
WINAPI
DocHostUIHandler_TranslateUrl
(
IDocHostUIHandler2
*
iface
,
DWORD
dwTranslate
,
OLECHAR
*
pchURLIn
,
OLECHAR
**
ppchURLOut
)
{
ok
(
0
,
"unexpected call
\n
"
);
if
(
is_downloading
&&
!
(
dwl_flags
&
DWL_EXPECT_BEFORE_NAVIGATE
))
todo_wine
CHECK_EXPECT
(
TranslateUrl
);
else
CHECK_EXPECT
(
TranslateUrl
);
return
E_NOTIMPL
;
}
...
...
@@ -1492,7 +1526,7 @@ static void test_SetHostNames(IOleObject *oleobj)
ok
(
hres
==
S_OK
,
"SetHostNames failed: %08x
\n
"
,
hres
);
}
static
void
test_ClientSite
(
IUnknown
*
unk
,
IOleClientSite
*
client
)
static
void
test_ClientSite
(
IUnknown
*
unk
,
IOleClientSite
*
client
,
BOOL
stop_download
)
{
IOleObject
*
oleobj
;
IOleInPlaceObject
*
inplace
;
...
...
@@ -1523,7 +1557,7 @@ static void test_ClientSite(IUnknown *unk, IOleClientSite *client)
SET_EXPECT
(
Site_GetWindow
);
SET_EXPECT
(
Invoke_AMBIENT_OFFLINEIFNOTCONNECTED
);
SET_EXPECT
(
Invoke_AMBIENT_SILENT
);
}
else
if
(
!
is_downloading
)
{
}
else
if
(
stop_download
)
{
SET_EXPECT
(
Invoke_DOWNLOADCOMPLETE
);
SET_EXPECT
(
Exec_SETDOWNLOADSTATE_0
);
SET_EXPECT
(
Invoke_COMMANDSTATECHANGE
);
...
...
@@ -1537,7 +1571,7 @@ static void test_ClientSite(IUnknown *unk, IOleClientSite *client)
CHECK_CALLED
(
Site_GetWindow
);
CHECK_CALLED
(
Invoke_AMBIENT_OFFLINEIFNOTCONNECTED
);
CHECK_CALLED
(
Invoke_AMBIENT_SILENT
);
}
else
if
(
!
is_downloading
)
{
}
else
if
(
stop_download
)
{
todo_wine
CHECK_CALLED
(
Invoke_DOWNLOADCOMPLETE
);
todo_wine
CHECK_CALLED
(
Exec_SETDOWNLOADSTATE_0
);
todo_wine
CHECK_CALLED
(
Invoke_COMMANDSTATECHANGE
);
...
...
@@ -2127,60 +2161,65 @@ static void test_Navigate2(IUnknown *unk)
if
(
FAILED
(
hres
))
return
;
test_LocationURL
(
unk
,
emptyW
);
test_ready_state
(
READYSTATE_UNINITIALIZED
);
test_LocationURL
(
unk
,
is_first_load
?
""
:
current_url
);
test_ready_state
(
is_first_load
?
READYSTATE_UNINITIALIZED
:
READYSTATE_COMPLETE
);
V_VT
(
&
url
)
=
VT_BSTR
;
V_BSTR
(
&
url
)
=
SysAllocString
(
about_blankW
);
SET_EXPECT
(
Invoke_AMBIENT_USERMODE
);
SET_EXPECT
(
Invoke_PROPERTYCHANGE
);
SET_EXPECT
(
Invoke_BEFORENAVIGATE2
);
SET_EXPECT
(
Invoke_DOWNLOADBEGIN
);
SET_EXPECT
(
Exec_SETDOWNLOADSTATE_1
);
SET_EXPECT
(
EnableModeless_FALSE
);
SET_EXPECT
(
Invoke_STATUSTEXTCHANGE
);
SET_EXPECT
(
SetStatusText
);
SET_EXPECT
(
GetHostInfo
);
SET_EXPECT
(
Invoke_AMBIENT_DLCONTROL
);
SET_EXPECT
(
Invoke_AMBIENT_USERAGENT
);
SET_EXPECT
(
Invoke_AMBIENT_PALETTE
);
SET_EXPECT
(
GetOptionKeyPath
);
SET_EXPECT
(
GetOverridesKeyPath
);
SET_EXPECT
(
QueryStatus_SETPROGRESSTEXT
);
SET_EXPECT
(
Exec_SETPROGRESSMAX
);
SET_EXPECT
(
Exec_SETPROGRESSPOS
);
SET_EXPECT
(
Invoke_SETSECURELOCKICON
);
SET_EXPECT
(
Invoke_FILEDOWNLOAD
);
SET_EXPECT
(
Exec_SETDOWNLOADSTATE_0
);
SET_EXPECT
(
Invoke_COMMANDSTATECHANGE
);
SET_EXPECT
(
EnableModeless_TRUE
);
V_BSTR
(
&
url
)
=
a2bstr
(
"about:blank"
);
current_url
=
"about:blank"
;
if
(
is_first_load
)
{
SET_EXPECT
(
Invoke_AMBIENT_USERMODE
);
SET_EXPECT
(
Invoke_PROPERTYCHANGE
);
SET_EXPECT
(
Invoke_BEFORENAVIGATE2
);
SET_EXPECT
(
Invoke_DOWNLOADBEGIN
);
SET_EXPECT
(
Exec_SETDOWNLOADSTATE_1
);
SET_EXPECT
(
EnableModeless_FALSE
);
SET_EXPECT
(
Invoke_STATUSTEXTCHANGE
);
SET_EXPECT
(
SetStatusText
);
SET_EXPECT
(
GetHostInfo
);
SET_EXPECT
(
Invoke_AMBIENT_DLCONTROL
);
SET_EXPECT
(
Invoke_AMBIENT_USERAGENT
);
SET_EXPECT
(
Invoke_AMBIENT_PALETTE
);
SET_EXPECT
(
GetOptionKeyPath
);
SET_EXPECT
(
GetOverridesKeyPath
);
SET_EXPECT
(
QueryStatus_SETPROGRESSTEXT
);
SET_EXPECT
(
Exec_SETPROGRESSMAX
);
SET_EXPECT
(
Exec_SETPROGRESSPOS
);
SET_EXPECT
(
Invoke_SETSECURELOCKICON
);
SET_EXPECT
(
Invoke_FILEDOWNLOAD
);
SET_EXPECT
(
Exec_SETDOWNLOADSTATE_0
);
SET_EXPECT
(
Invoke_COMMANDSTATECHANGE
);
SET_EXPECT
(
EnableModeless_TRUE
);
}
hres
=
IWebBrowser2_Navigate2
(
webbrowser
,
&
url
,
NULL
,
NULL
,
NULL
,
NULL
);
ok
(
hres
==
S_OK
,
"Navigate2 failed: %08x
\n
"
,
hres
);
CHECK_CALLED
(
Invoke_AMBIENT_USERMODE
);
todo_wine
CHECK_CALLED
(
Invoke_PROPERTYCHANGE
);
CHECK_CALLED
(
Invoke_BEFORENAVIGATE2
);
todo_wine
CHECK_CALLED
(
Invoke_DOWNLOADBEGIN
);
todo_wine
CHECK_CALLED
(
Exec_SETDOWNLOADSTATE_1
);
CHECK_CALLED
(
EnableModeless_FALSE
);
CHECK_CALLED
(
Invoke_STATUSTEXTCHANGE
);
CHECK_CALLED
(
SetStatusText
);
CHECK_CALLED
(
GetHostInfo
);
CHECK_CALLED
(
Invoke_AMBIENT_DLCONTROL
);
CHECK_CALLED
(
Invoke_AMBIENT_USERAGENT
);
CHECK_CALLED
(
Invoke_AMBIENT_PALETTE
);
CHECK_CALLED
(
GetOptionKeyPath
);
CHECK_CALLED_BROKEN
(
GetOverridesKeyPath
);
todo_wine
CHECK_CALLED
(
QueryStatus_SETPROGRESSTEXT
);
todo_wine
CHECK_CALLED
(
Exec_SETPROGRESSMAX
);
todo_wine
CHECK_CALLED
(
Exec_SETPROGRESSPOS
);
todo_wine
CHECK_CALLED_BROKEN
(
Invoke_SETSECURELOCKICON
);
todo_wine
CHECK_CALLED_BROKEN
(
Invoke_FILEDOWNLOAD
);
todo_wine
CHECK_CALLED
(
Invoke_COMMANDSTATECHANGE
);
todo_wine
CHECK_CALLED
(
Exec_SETDOWNLOADSTATE_0
);
CHECK_CALLED
(
EnableModeless_TRUE
);
if
(
is_first_load
)
{
CHECK_CALLED
(
Invoke_AMBIENT_USERMODE
);
todo_wine
CHECK_CALLED
(
Invoke_PROPERTYCHANGE
);
CHECK_CALLED
(
Invoke_BEFORENAVIGATE2
);
todo_wine
CHECK_CALLED
(
Invoke_DOWNLOADBEGIN
);
todo_wine
CHECK_CALLED
(
Exec_SETDOWNLOADSTATE_1
);
CHECK_CALLED
(
EnableModeless_FALSE
);
CHECK_CALLED
(
Invoke_STATUSTEXTCHANGE
);
CHECK_CALLED
(
SetStatusText
);
CHECK_CALLED
(
GetHostInfo
);
CHECK_CALLED
(
Invoke_AMBIENT_DLCONTROL
);
CHECK_CALLED
(
Invoke_AMBIENT_USERAGENT
);
CHECK_CALLED
(
Invoke_AMBIENT_PALETTE
);
CHECK_CALLED
(
GetOptionKeyPath
);
CHECK_CALLED_BROKEN
(
GetOverridesKeyPath
);
todo_wine
CHECK_CALLED
(
QueryStatus_SETPROGRESSTEXT
);
todo_wine
CHECK_CALLED
(
Exec_SETPROGRESSMAX
);
todo_wine
CHECK_CALLED
(
Exec_SETPROGRESSPOS
);
todo_wine
CHECK_CALLED_BROKEN
(
Invoke_SETSECURELOCKICON
);
todo_wine
CHECK_CALLED_BROKEN
(
Invoke_FILEDOWNLOAD
);
todo_wine
CHECK_CALLED
(
Invoke_COMMANDSTATECHANGE
);
todo_wine
CHECK_CALLED
(
Exec_SETDOWNLOADSTATE_0
);
CHECK_CALLED
(
EnableModeless_TRUE
);
}
VariantClear
(
&
url
);
IWebBrowser2_Release
(
webbrowser
);
...
...
@@ -2188,14 +2227,20 @@ static void test_Navigate2(IUnknown *unk)
test_ready_state
(
READYSTATE_LOADING
);
}
static
void
test_download
(
void
)
static
void
test_download
(
DWORD
flags
)
{
MSG
msg
;
is_downloading
=
TRUE
;
dwl_flags
=
flags
;
test_ready_state
(
READYSTATE_LOADING
);
test_ready_state
(
(
flags
&
DWL_FROM_PUT_HREF
)
?
READYSTATE_COMPLETE
:
READYSTATE_LOADING
);
if
(
flags
&
DWL_EXPECT_BEFORE_NAVIGATE
)
{
SET_EXPECT
(
Invoke_PROPERTYCHANGE
);
SET_EXPECT
(
Invoke_BEFORENAVIGATE2
);
SET_EXPECT
(
TranslateUrl
);
}
SET_EXPECT
(
Exec_SETPROGRESSMAX
);
SET_EXPECT
(
Exec_SETPROGRESSPOS
);
SET_EXPECT
(
Exec_SETDOWNLOADSTATE_1
);
...
...
@@ -2208,19 +2253,27 @@ static void test_download(void)
SET_EXPECT
(
Invoke_STATUSTEXTCHANGE
);
SET_EXPECT
(
SetStatusText
);
SET_EXPECT
(
EnableModeless_TRUE
);
SET_EXPECT
(
QueryStatus_STOP
);
if
(
is_first_load
)
SET_EXPECT
(
QueryStatus_STOP
);
else
SET_EXPECT
(
GetHostInfo
);
SET_EXPECT
(
Exec_SETDOWNLOADSTATE_0
);
SET_EXPECT
(
Invoke_TITLECHANGE
);
SET_EXPECT
(
Invoke_NAVIGATECOMPLETE2
);
SET_EXPECT
(
GetDropTarget
);
if
(
is_first_load
)
SET_EXPECT
(
GetDropTarget
);
SET_EXPECT
(
Invoke_PROGRESSCHANGE
);
SET_EXPECT
(
Invoke_DOCUMENTCOMPLETE
);
while
(
!
called_Invoke_DOCUMENTCOMPLETE
&&
GetMessage
(
&
msg
,
NULL
,
0
,
0
))
{
TranslateMessage
(
&
msg
);
DispatchMessage
(
&
msg
);
}
if
(
flags
&
DWL_EXPECT_BEFORE_NAVIGATE
)
{
todo_wine
CHECK_CALLED
(
Invoke_PROPERTYCHANGE
);
CHECK_CALLED
(
Invoke_BEFORENAVIGATE2
);
CHECK_CALLED
(
TranslateUrl
);
}
todo_wine
CHECK_CALLED
(
Exec_SETPROGRESSMAX
);
todo_wine
CHECK_CALLED
(
Exec_SETPROGRESSPOS
);
todo_wine
CHECK_CALLED
(
Exec_SETDOWNLOADSTATE_1
);
...
...
@@ -2228,19 +2281,31 @@ static void test_download(void)
CLEAR_CALLED
(
DocHost_EnableModeless_TRUE
);
/* IE 7 */
todo_wine
CHECK_CALLED
(
Invoke_SETSECURELOCKICON
);
CLEAR_CALLED
(
Invoke_282
);
/* IE 7 */
todo_wine
CHECK_CALLED
(
EnableModeless_FALSE
);
if
(
is_first_load
)
todo_wine
CHECK_CALLED
(
EnableModeless_FALSE
);
else
CLEAR_CALLED
(
EnableModeless_FALSE
);
/* IE 8 */
todo_wine
CHECK_CALLED
(
Invoke_COMMANDSTATECHANGE
);
todo_wine
CHECK_CALLED
(
Invoke_STATUSTEXTCHANGE
);
todo_wine
CHECK_CALLED
(
SetStatusText
);
todo_wine
CHECK_CALLED
(
EnableModeless_TRUE
);
todo_wine
CHECK_CALLED
(
QueryStatus_STOP
);
if
(
is_first_load
)
todo_wine
CHECK_CALLED
(
EnableModeless_TRUE
);
else
CLEAR_CALLED
(
EnableModeless_FALSE
);
/* IE 8 */
if
(
is_first_load
)
todo_wine
CHECK_CALLED
(
QueryStatus_STOP
);
else
todo_wine
CHECK_CALLED
(
GetHostInfo
);
todo_wine
CHECK_CALLED
(
Exec_SETDOWNLOADSTATE_0
);
todo_wine
CHECK_CALLED
(
Invoke_TITLECHANGE
);
CHECK_CALLED
(
Invoke_NAVIGATECOMPLETE2
);
todo_wine
CHECK_CALLED
(
GetDropTarget
);
if
(
is_first_load
)
todo_wine
CHECK_CALLED
(
GetDropTarget
);
todo_wine
CHECK_CALLED
(
Invoke_PROGRESSCHANGE
);
CHECK_CALLED
(
Invoke_DOCUMENTCOMPLETE
);
is_downloading
=
FALSE
;
test_ready_state
(
READYSTATE_COMPLETE
);
}
...
...
@@ -2298,6 +2363,67 @@ static void test_IServiceProvider(IUnknown *unk)
IServiceProvider_Release
(
servprov
);
}
#define get_document(u) _get_document(__LINE__,u)
static
IDispatch
*
_get_document
(
unsigned
line
,
IUnknown
*
unk
)
{
IWebBrowser2
*
wb
;
IDispatch
*
disp
;
HRESULT
hres
;
hres
=
IUnknown_QueryInterface
(
unk
,
&
IID_IWebBrowser2
,
(
void
**
)
&
wb
);
ok_
(
__FILE__
,
line
)(
hres
==
S_OK
,
"QueryInterface(IID_IWebBrowser2) failed: %08x
\n
"
,
hres
);
disp
=
NULL
;
hres
=
IWebBrowser2_get_Document
(
wb
,
&
disp
);
IWebBrowser2_Release
(
wb
);
ok_
(
__FILE__
,
line
)(
hres
==
S_OK
,
"get_Document failed: %08x
\n
"
,
hres
);
ok_
(
__FILE__
,
line
)(
disp
!=
NULL
,
"doc_disp == NULL
\n
"
);
return
disp
;
}
static
void
test_put_href
(
IUnknown
*
unk
)
{
IHTMLLocation
*
location
;
IHTMLDocument2
*
doc
;
IDispatch
*
doc_disp
;
BSTR
str
;
HRESULT
hres
;
doc_disp
=
get_document
(
unk
);
hres
=
IDispatch_QueryInterface
(
doc_disp
,
&
IID_IHTMLDocument2
,
(
void
**
)
&
doc
);
IDispatch_Release
(
doc_disp
);
ok
(
hres
==
S_OK
,
"QueryInterface(IID_IHTMLDocument2 failed: %08x
\n
"
,
hres
);
location
=
NULL
;
hres
=
IHTMLDocument2_get_location
(
doc
,
&
location
);
IHTMLDocument2_Release
(
doc
);
ok
(
hres
==
S_OK
,
"get_location failed: %08x
\n
"
,
hres
);
ok
(
location
!=
NULL
,
"location == NULL
\n
"
);
SET_EXPECT
(
TranslateUrl
);
SET_EXPECT
(
Invoke_BEFORENAVIGATE2
);
SET_EXPECT
(
Invoke_PROPERTYCHANGE
);
dwl_flags
=
DWL_FROM_PUT_HREF
;
str
=
a2bstr
(
"about:test"
);
current_url
=
"about:test"
;
is_first_load
=
FALSE
;
hres
=
IHTMLLocation_put_href
(
location
,
str
);
CHECK_CALLED
(
TranslateUrl
);
CHECK_CALLED
(
Invoke_BEFORENAVIGATE2
);
todo_wine
CHECK_CALLED
(
Invoke_PROPERTYCHANGE
);
IHTMLLocation_Release
(
location
);
SysFreeString
(
str
);
ok
(
hres
==
S_OK
,
"put_href failed: %08x
\n
"
,
hres
);
test_ready_state
(
READYSTATE_COMPLETE
);
}
static
void
test_QueryInterface
(
IUnknown
*
unk
)
{
IQuickActivate
*
qa
=
(
IQuickActivate
*
)
0xdeadbeef
;
...
...
@@ -2352,6 +2478,7 @@ static void test_WebBrowser(BOOL do_download)
return
;
is_downloading
=
FALSE
;
is_first_load
=
TRUE
;
hres
=
IUnknown_QueryInterface
(
unk
,
&
IID_IWebBrowser2
,
(
void
**
)
&
wb
);
ok
(
hres
==
S_OK
,
"Could not get IWebBrowser2 iface: %08x
\n
"
,
hres
);
...
...
@@ -2359,9 +2486,9 @@ static void test_WebBrowser(BOOL do_download)
test_QueryInterface
(
unk
);
test_ready_state
(
READYSTATE_UNINITIALIZED
);
test_ClassInfo
(
unk
);
test_LocationURL
(
unk
,
emptyW
);
test_LocationURL
(
unk
,
""
);
test_ConnectionPoint
(
unk
,
TRUE
);
test_ClientSite
(
unk
,
&
ClientSite
);
test_ClientSite
(
unk
,
&
ClientSite
,
!
do_download
);
test_Extent
(
unk
);
test_wb_funcs
(
unk
,
TRUE
);
test_DoVerb
(
unk
);
...
...
@@ -2369,11 +2496,27 @@ static void test_WebBrowser(BOOL do_download)
test_Navigate2
(
unk
);
if
(
do_download
)
{
test_download
();
IDispatch
*
doc
,
*
doc2
;
test_download
(
0
);
test_olecmd
(
unk
,
TRUE
);
doc
=
get_document
(
unk
);
test_put_href
(
unk
);
test_download
(
DWL_FROM_PUT_HREF
);
doc2
=
get_document
(
unk
);
ok
(
doc
==
doc2
,
"doc != doc2
\n
"
);
IDispatch_Release
(
doc2
);
test_Navigate2
(
unk
);
test_download
(
DWL_EXPECT_BEFORE_NAVIGATE
);
doc2
=
get_document
(
unk
);
ok
(
doc
==
doc2
,
"doc != doc2
\n
"
);
IDispatch_Release
(
doc2
);
IDispatch_Release
(
doc2
);
}
test_ClientSite
(
unk
,
NULL
);
test_ClientSite
(
unk
,
NULL
,
!
do_download
);
test_ie_funcs
(
unk
);
test_GetControlInfo
(
unk
);
test_wb_funcs
(
unk
,
FALSE
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment