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