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
41a448a5
Commit
41a448a5
authored
May 04, 2010
by
Jacek Caban
Committed by
Alexandre Julliard
May 05, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
urlmon: Added reading from cache file tests.
parent
7708097d
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
87 additions
and
21 deletions
+87
-21
url.c
dlls/urlmon/tests/url.c
+87
-21
No files found.
dlls/urlmon/tests/url.c
View file @
41a448a5
...
...
@@ -176,6 +176,7 @@ static const WCHAR wszIndexHtml[] = {'i','n','d','e','x','.','h','t','m','l',0};
static
const
WCHAR
cache_fileW
[]
=
{
'c'
,
':'
,
'\\'
,
'c'
,
'a'
,
'c'
,
'h'
,
'e'
,
'.'
,
'h'
,
't'
,
'm'
,
0
};
static
const
CHAR
dwl_htmlA
[]
=
"dwl.html"
;
static
const
WCHAR
dwl_htmlW
[]
=
{
'd'
,
'w'
,
'l'
,
'.'
,
'h'
,
't'
,
'm'
,
'l'
,
0
};
static
const
WCHAR
test_txtW
[]
=
{
't'
,
'e'
,
's'
,
't'
,
'.'
,
't'
,
'x'
,
't'
,
0
};
static
const
WCHAR
emptyW
[]
=
{
0
};
static
BOOL
stopped_binding
=
FALSE
,
stopped_obj_binding
=
FALSE
,
emulate_protocol
=
FALSE
,
...
...
@@ -187,7 +188,8 @@ static IBinding *current_binding;
static
HANDLE
complete_event
,
complete_event2
;
static
HRESULT
binding_hres
;
static
BOOL
have_IHttpNegotiate2
,
use_bscex
;
static
BOOL
test_redirect
;
static
BOOL
test_redirect
,
use_cache_file
,
callback_read
;
static
WCHAR
cache_file_name
[
MAX_PATH
];
static
LPCWSTR
urls
[]
=
{
WINE_ABOUT_URL
,
...
...
@@ -512,18 +514,19 @@ static HRESULT WINAPI Protocol_Start(IInternetProtocol *iface, LPCWSTR szUrl,
hres
=
IInternetBindInfo_GetBindInfo
(
pOIBindInfo
,
&
bind_info
,
&
bindinfo
);
ok
(
hres
==
S_OK
,
"GetBindInfo failed: %08x
\n
"
,
hres
);
if
(
filedwl_api
)
{
ok
(
bind_info
==
(
BINDF_PULLDATA
|
BINDF_FROMURLMON
|
BINDF_NEEDFILE
),
"bind_info=%08x
\n
"
,
bind_info
);
}
else
if
(
tymed
==
TYMED_ISTREAM
&&
is_urlmon_protocol
(
test_protocol
))
{
ok
(
bind_info
==
(
BINDF_ASYNCHRONOUS
|
BINDF_ASYNCSTORAGE
|
BINDF_PULLDATA
|
BINDF_FROMURLMON
),
"bind_info=%08x
\n
"
,
bind_info
);
}
else
if
(
bindf
&
BINDF_ASYNCHRONOUS
)
{
ok
(
bind_info
==
(
BINDF_ASYNCHRONOUS
|
BINDF_ASYNCSTORAGE
|
BINDF_PULLDATA
|
BINDF_FROMURLMON
|
BINDF_NEEDFILE
),
"bind_info=%08x
\n
"
,
bind_info
);
}
else
ok
(
bind_info
==
(
BINDF_FROMURLMON
|
BINDF_NEEDFILE
),
"bind_info=%08x
\n
"
,
bind_info
);
ok
(
bind_info
&
BINDF_FROMURLMON
,
"BINDF_FROMURLMON is not set
\n
"
);
if
(
filedwl_api
||
!
is_urlmon_protocol
(
test_protocol
)
||
!
(
bindf
&
BINDF_ASYNCSTORAGE
)
||
tymed
!=
TYMED_ISTREAM
)
ok
(
bind_info
&
BINDF_NEEDFILE
,
"BINDF_NEEDFILE is not set
\n
"
);
else
ok
(
!
(
bind_info
&
BINDF_NEEDFILE
),
"BINDF_NEEDFILE is set
\n
"
);
bind_info
&=
~
(
BINDF_NEEDFILE
|
BINDF_FROMURLMON
);
if
(
filedwl_api
)
ok
(
bind_info
==
BINDF_PULLDATA
,
"bind_info = %x, expected BINDF_PULLDATA
\n
"
,
bind_info
);
else
ok
(
bind_info
==
(
bindf
&
~
(
BINDF_NEEDFILE
|
BINDF_FROMURLMON
)),
"bind_info = %x, expected %x
\n
"
,
bind_info
,
(
bindf
&
~
(
BINDF_NEEDFILE
|
BINDF_FROMURLMON
)));
ok
(
bindinfo
.
cbSize
==
sizeof
(
bindinfo
),
"bindinfo.cbSize = %d
\n
"
,
bindinfo
.
cbSize
);
ok
(
!
bindinfo
.
szExtraInfo
,
"bindinfo.szExtraInfo = %p
\n
"
,
bindinfo
.
szExtraInfo
);
...
...
@@ -805,12 +808,9 @@ static HRESULT WINAPI Protocol_Continue(IInternetProtocol *iface,
ok
(
hres
==
S_OK
,
"ReportProgress(BINDSTATUS_MIMETYPEAVAILABLE) failed: %08x
\n
"
,
hres
);
if
(
tymed
==
TYMED_FILE
)
{
hres
=
IInternetProtocolSink_ReportProgress
(
protocol_sink
,
BINDSTATUS_CACHEFILENAMEAVAILABLE
,
cache_fileW
);
ok
(
hres
==
S_OK
,
"ReportProgress(BINDSTATUS_CACHEFILENAMEAVAILABLE) failed: %08x
\n
"
,
hres
);
}
BINDSTATUS_CACHEFILENAMEAVAILABLE
,
use_cache_file
?
cache_file_name
:
cache_fileW
);
ok
(
hres
==
S_OK
,
"ReportProgress(BINDSTATUS_CACHEFILENAMEAVAILABLE) failed: %08x
\n
"
,
hres
);
bscf
|=
BSCF_FIRSTDATANOTIFICATION
;
break
;
...
...
@@ -1545,9 +1545,14 @@ static HRESULT WINAPI statusclb_OnDataAvailable(IBindStatusCallbackEx *iface, DW
}
ok
(
U
(
*
pstgmed
).
pstm
!=
NULL
,
"U(*pstgmed).pstm == NULL
\n
"
);
do
hres
=
IStream_Read
(
U
(
*
pstgmed
).
pstm
,
buf
,
512
,
&
readed
);
while
(
hres
==
S_OK
);
if
(
callback_read
)
{
do
{
hres
=
IStream_Read
(
U
(
*
pstgmed
).
pstm
,
buf
,
512
,
&
readed
);
if
(
test_protocol
==
HTTP_TEST
&&
emulate_protocol
&&
readed
)
ok
(
buf
[
0
]
==
(
use_cache_file
&&
!
(
bindf
&
BINDF_ASYNCHRONOUS
)
?
'X'
:
'?'
),
"buf[0] = '%c'
\n
"
,
buf
[
0
]);
}
while
(
hres
==
S_OK
);
ok
(
hres
==
S_FALSE
||
hres
==
E_PENDING
,
"IStream_Read returned %08x
\n
"
,
hres
);
}
break
;
case
TYMED_FILE
:
...
...
@@ -2231,6 +2236,8 @@ static BOOL test_RegisterBindStatusCallback(void)
#define BINDTEST_FILEDWLAPI 0x0004
#define BINDTEST_HTTPRESPONSE 0x0008
#define BINDTEST_REDIRECT 0x0010
#define BINDTEST_USE_CACHE 0x0020
#define BINDTEST_NO_CALLBACK_READ 0x0040
static
void
init_bind_test
(
int
protocol
,
DWORD
flags
,
DWORD
t
)
{
...
...
@@ -2250,6 +2257,8 @@ static void init_bind_test(int protocol, DWORD flags, DWORD t)
else
urls
[
HTTP_TEST
]
=
WINE_ABOUT_URL
;
test_redirect
=
(
flags
&
BINDTEST_REDIRECT
)
!=
0
;
use_cache_file
=
(
flags
&
BINDTEST_USE_CACHE
)
!=
0
;
callback_read
=
!
(
flags
&
BINDTEST_NO_CALLBACK_READ
);
}
static
void
test_BindToStorage
(
int
protocol
,
DWORD
flags
,
DWORD
t
)
...
...
@@ -2370,7 +2379,7 @@ static void test_BindToStorage(int protocol, DWORD flags, DWORD t)
ok
(
hres
==
S_OK
,
"IMoniker_BindToStorage failed: %08x
\n
"
,
hres
);
ok
(
unk
!=
NULL
,
"unk == NULL
\n
"
);
}
if
(
unk
)
if
(
unk
&&
callback_read
)
IUnknown_Release
(
unk
);
if
(
FAILED
(
hres
))
...
...
@@ -2446,6 +2455,28 @@ static void test_BindToStorage(int protocol, DWORD flags, DWORD t)
if
(
test_protocol
==
HTTP_TEST
||
test_protocol
==
HTTPS_TEST
)
http_is_first
=
FALSE
;
if
(
!
callback_read
)
{
BYTE
buf
[
512
];
DWORD
readed
;
IStream
*
stream
;
hres
=
IUnknown_QueryInterface
(
unk
,
&
IID_IStream
,
(
void
**
)
&
stream
);
ok
(
hres
==
S_OK
,
"Could not get IStream iface: %08x
\n
"
,
hres
);
IUnknown_Release
(
unk
);
do
{
readed
=
0xdeadbeef
;
hres
=
IStream_Read
(
stream
,
buf
,
sizeof
(
buf
),
&
readed
);
ok
(
readed
!=
0xdeadbeef
,
"readed = 0xdeadbeef
\n
"
);
if
(
emulate_protocol
&&
test_protocol
==
HTTP_TEST
&&
readed
)
ok
(
buf
[
0
]
==
(
use_cache_file
&&
!
(
bindf
&
BINDF_ASYNCHRONOUS
)
?
'X'
:
'?'
),
"buf[0] = '%c'
\n
"
,
buf
[
0
]);
}
while
(
hres
==
S_OK
);
ok
(
hres
==
S_FALSE
,
"IStream_Read returned %08x
\n
"
,
hres
);
ok
(
!
readed
,
"readed = %d
\n
"
,
readed
);
IStream_Release
(
stream
);
}
}
static
void
test_BindToObject
(
int
protocol
,
DWORD
flags
)
...
...
@@ -2778,6 +2809,27 @@ static void create_file(void)
set_file_url
(
path
);
}
static
void
create_cache_file
(
void
)
{
char
buf
[
6500
];
HANDLE
file
;
DWORD
size
;
file
=
CreateFileW
(
test_txtW
,
GENERIC_WRITE
,
0
,
NULL
,
CREATE_ALWAYS
,
FILE_ATTRIBUTE_NORMAL
,
NULL
);
ok
(
file
!=
INVALID_HANDLE_VALUE
,
"CreateFile failed
\n
"
);
if
(
file
==
INVALID_HANDLE_VALUE
)
return
;
memset
(
buf
,
'X'
,
sizeof
(
buf
));
WriteFile
(
file
,
buf
,
sizeof
(
buf
),
&
size
,
NULL
);
CloseHandle
(
file
);
size
=
GetCurrentDirectoryW
(
MAX_PATH
,
cache_file_name
);
cache_file_name
[
size
]
=
'\\'
;
memcpy
(
cache_file_name
+
size
+
1
,
test_txtW
,
sizeof
(
test_txtW
));
}
static
void
test_ReportResult
(
HRESULT
exhres
)
{
IMoniker
*
mon
=
NULL
;
...
...
@@ -2886,6 +2938,7 @@ START_TEST(url)
complete_event2
=
CreateEvent
(
NULL
,
FALSE
,
FALSE
,
NULL
);
thread_id
=
GetCurrentThreadId
();
create_file
();
create_cache_file
();
test_create
();
...
...
@@ -2917,6 +2970,15 @@ START_TEST(url)
trace
(
"synchronous http test (to object)...
\n
"
);
test_BindToObject
(
HTTP_TEST
,
0
);
trace
(
"emulated synchronous http test (with cache)...
\n
"
);
test_BindToStorage
(
HTTP_TEST
,
BINDTEST_EMULATE
|
BINDTEST_USE_CACHE
,
TYMED_ISTREAM
);
trace
(
"emulated synchronous http test (with cache, no read)...
\n
"
);
test_BindToStorage
(
HTTP_TEST
,
BINDTEST_EMULATE
|
BINDTEST_USE_CACHE
|
BINDTEST_NO_CALLBACK_READ
,
TYMED_ISTREAM
);
trace
(
"synchronous http test (with cache, no read)...
\n
"
);
test_BindToStorage
(
HTTP_TEST
,
BINDTEST_USE_CACHE
|
BINDTEST_NO_CALLBACK_READ
,
TYMED_ISTREAM
);
trace
(
"synchronous file test...
\n
"
);
test_BindToStorage
(
FILE_TEST
,
0
,
TYMED_ISTREAM
);
...
...
@@ -2959,6 +3021,9 @@ START_TEST(url)
trace
(
"emulated http test (redirect)...
\n
"
);
test_BindToStorage
(
HTTP_TEST
,
BINDTEST_EMULATE
|
BINDTEST_REDIRECT
,
TYMED_ISTREAM
);
trace
(
"emulated http test (with cache)...
\n
"
);
test_BindToStorage
(
HTTP_TEST
,
BINDTEST_EMULATE
|
BINDTEST_USE_CACHE
,
TYMED_ISTREAM
);
trace
(
"asynchronous https test...
\n
"
);
test_BindToStorage
(
HTTPS_TEST
,
0
,
TYMED_ISTREAM
);
...
...
@@ -3029,6 +3094,7 @@ START_TEST(url)
}
DeleteFileA
(
wszIndexHtmlA
);
DeleteFileW
(
test_txtW
);
CloseHandle
(
complete_event
);
CloseHandle
(
complete_event2
);
CoUninitialize
();
...
...
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