Jacek Caban : urlmon: Moved more initialization code to init_test.
Alexandre Julliard
julliard at winehq.org
Wed Jul 8 14:35:53 CDT 2009
Module: wine
Branch: master
Commit: e34916521401c2d71f792dd6d8aee111dd468627
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e34916521401c2d71f792dd6d8aee111dd468627
Author: Jacek Caban <jacek at codeweavers.com>
Date: Tue Jul 7 21:00:54 2009 +0200
urlmon: Moved more initialization code to init_test.
---
dlls/urlmon/tests/protocol.c | 39 +++++++++++++++++++--------------------
1 files changed, 19 insertions(+), 20 deletions(-)
diff --git a/dlls/urlmon/tests/protocol.c b/dlls/urlmon/tests/protocol.c
index 81eed27..26ed8de 100644
--- a/dlls/urlmon/tests/protocol.c
+++ b/dlls/urlmon/tests/protocol.c
@@ -1801,8 +1801,9 @@ static const IClassFactoryVtbl MimeFilterCFVtbl = {
static IClassFactory mimefilter_cf = { &MimeFilterCFVtbl };
-#define TEST_BINDING 1
-#define TEST_FILTER 2
+#define TEST_BINDING 0x01
+#define TEST_FILTER 0x02
+#define TEST_FIRST_HTTP 0x04
static void init_test(int prot, DWORD flags)
{
@@ -1818,6 +1819,9 @@ static void init_test(int prot, DWORD flags)
ResetEvent(event_complete2);
async_protocol = binding_protocol = filtered_protocol = NULL;
filtered_sink = NULL;
+ http_is_first = (flags & TEST_FIRST_HTTP) != 0;
+ first_data_notif = TRUE;
+ state = 0;
}
static void test_priority(IInternetProtocol *protocol)
@@ -2143,14 +2147,11 @@ static void test_file_protocol(void) {
test_file_protocol_fail();
}
-static BOOL http_protocol_start(LPCWSTR url, BOOL is_first)
+static BOOL http_protocol_start(LPCWSTR url)
{
static BOOL got_user_agent = FALSE;
HRESULT hres;
- first_data_notif = TRUE;
- state = 0;
-
SET_EXPECT(GetBindInfo);
if (!(bindf & BINDF_FROMURLMON))
SET_EXPECT(ReportProgress_DIRECTBIND);
@@ -2235,17 +2236,17 @@ static void test_http_info(IInternetProtocol *protocol)
/* is_first refers to whether this is the first call to this function
* _for this url_ */
-static void test_http_protocol_url(LPCWSTR url, BOOL is_https, BOOL is_first)
+static void test_http_protocol_url(LPCWSTR url, int prot, DWORD flags)
{
IInternetProtocolInfo *protocol_info;
IClassFactory *factory;
IUnknown *unk;
HRESULT hres;
+ init_test(prot, flags);
http_url = url;
- http_is_first = is_first;
- hres = CoGetClassObject(is_https ? &CLSID_HttpSProtocol : &CLSID_HttpProtocol,
+ hres = CoGetClassObject(prot == HTTPS_TEST ? &CLSID_HttpSProtocol : &CLSID_HttpProtocol,
CLSCTX_INPROC_SERVER, NULL, &IID_IUnknown, (void**)&unk);
ok(hres == S_OK, "CoGetClassObject failed: %08x\n", hres);
if(FAILED(hres))
@@ -2277,7 +2278,7 @@ static void test_http_protocol_url(LPCWSTR url, BOOL is_https, BOOL is_first)
SET_EXPECT(ReportProgress_CONNECTING);
SET_EXPECT(ReportProgress_SENDINGREQUEST);
SET_EXPECT(ReportProgress_PROXYDETECTING);
- if(! is_https)
+ if(prot == HTTP_TEST)
SET_EXPECT(ReportProgress_CACHEFILENAMEAVAILABLE);
else
SET_EXPECT(QueryService_HttpSecurity);
@@ -2289,7 +2290,7 @@ static void test_http_protocol_url(LPCWSTR url, BOOL is_https, BOOL is_first)
SET_EXPECT(Switch);
}
- if(!http_protocol_start(url, is_first))
+ if(!http_protocol_start(url))
return;
SET_EXPECT(ReportResult);
@@ -2304,7 +2305,7 @@ static void test_http_protocol_url(LPCWSTR url, BOOL is_https, BOOL is_first)
CHECK_CALLED(Switch);
else
CHECK_CALLED(ReportData);
- if (is_https)
+ if(prot == HTTPS_TEST)
CLEAR_CALLED(QueryService_HttpSecurity);
while(1) {
@@ -2332,7 +2333,7 @@ static void test_http_protocol_url(LPCWSTR url, BOOL is_https, BOOL is_first)
}
ok(hres == S_FALSE, "Read failed: %08x\n", hres);
CHECK_CALLED(ReportResult);
- if (is_https)
+ if(prot == HTTPS_TEST)
CLEAR_CALLED(ReportProgress_SENDINGREQUEST);
test_protocol_terminate(async_protocol);
@@ -2354,24 +2355,23 @@ static void test_http_protocol(void)
'p','o','s','t','t','e','s','t','.','p','h','p',0};
trace("Testing http protocol (not from urlmon)...\n");
- tested_protocol = HTTP_TEST;
bindf = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_PULLDATA;
- test_http_protocol_url(winehq_url, FALSE, TRUE);
+ test_http_protocol_url(winehq_url, HTTP_TEST, TEST_FIRST_HTTP);
trace("Testing http protocol (from urlmon)...\n");
bindf = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_PULLDATA | BINDF_FROMURLMON;
- test_http_protocol_url(winehq_url, FALSE, FALSE);
+ test_http_protocol_url(winehq_url, HTTP_TEST, 0);
trace("Testing http protocol (to file)...\n");
bindf = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_PULLDATA | BINDF_FROMURLMON | BINDF_NEEDFILE;
- test_http_protocol_url(winehq_url, FALSE, FALSE);
+ test_http_protocol_url(winehq_url, HTTP_TEST, 0);
trace("Testing http protocol (post data)...\n");
http_post_test = TRUE;
/* Without this flag we get a ReportProgress_CACHEFILENAMEAVAILABLE
* notification with BINDVERB_POST */
bindf = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_PULLDATA | BINDF_FROMURLMON | BINDF_NOWRITECACHE;
- test_http_protocol_url(posttest_url, FALSE, TRUE);
+ test_http_protocol_url(posttest_url, HTTP_TEST, TEST_FIRST_HTTP);
http_post_test = FALSE;
}
@@ -2382,9 +2382,8 @@ static void test_https_protocol(void)
'.','c','o','m','/','t','e','s','t','.','h','t','m','l',0};
trace("Testing https protocol (from urlmon)...\n");
- init_test(HTTPS_TEST, 0);
bindf = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_PULLDATA | BINDF_FROMURLMON | BINDF_NOWRITECACHE;
- test_http_protocol_url(codeweavers_url, TRUE, TRUE);
+ test_http_protocol_url(codeweavers_url, HTTPS_TEST, TEST_FIRST_HTTP);
}
More information about the wine-cvs
mailing list