Jacek Caban : wininet: Test also InternetCrackUrlW in test_crack_url.

Alexandre Julliard julliard at winehq.org
Mon Dec 28 09:16:05 CST 2009


Module: wine
Branch: master
Commit: 672f021e2bdc3b288794a86f8232980225f0be76
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=672f021e2bdc3b288794a86f8232980225f0be76

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Sun Dec 27 01:27:38 2009 +0100

wininet: Test also InternetCrackUrlW in test_crack_url.

---

 dlls/wininet/tests/url.c |   77 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 77 insertions(+), 0 deletions(-)

diff --git a/dlls/wininet/tests/url.c b/dlls/wininet/tests/url.c
index 7439cd3..f811882 100644
--- a/dlls/wininet/tests/url.c
+++ b/dlls/wininet/tests/url.c
@@ -23,9 +23,11 @@
 #include <stdarg.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 
 #include "windef.h"
 #include "winbase.h"
+#include "winnls.h"
 #include "wininet.h"
 
 #include "wine/test.h"
@@ -123,6 +125,8 @@ static const crack_url_test_t crack_url_tests[] = {
 
 static void test_crack_url(const crack_url_test_t *test)
 {
+    WCHAR buf[INTERNET_MAX_URL_LENGTH];
+    URL_COMPONENTSW urlw;
     URL_COMPONENTSA url;
     BOOL b;
 
@@ -186,6 +190,79 @@ static void test_crack_url(const crack_url_test_t *test)
            test->url, url.lpszExtraInfo, test->url+test->extra_off);
     ok(url.dwExtraInfoLength == test->extra_len, "[%s] url.lpszExtraInfoLength = %d, expected %d\n",
        test->url, url.dwExtraInfoLength, test->extra_len);
+
+    memset(&urlw, 0, sizeof(URL_COMPONENTSW));
+    urlw.dwStructSize = sizeof(URL_COMPONENTSW);
+    urlw.dwSchemeLength = 1;
+    urlw.dwHostNameLength = 1;
+    urlw.dwUserNameLength = 1;
+    urlw.dwPasswordLength = 1;
+    urlw.dwUrlPathLength = 1;
+    urlw.dwExtraInfoLength = 1;
+
+    MultiByteToWideChar(CP_ACP, 0, test->url, -1, buf, sizeof(buf));
+    b = InternetCrackUrlW(buf, lstrlenW(buf), 0, &urlw);
+    if(!b && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED) {
+        win_skip("InternetCrackUrlW is not implemented\n");
+        return;
+    }
+    ok(b, "InternetCrackUrl failed with error %d\n", GetLastError());
+
+    if(test->scheme_off == -1)
+        ok(!urlw.lpszScheme, "[%s] urlw.lpszScheme = %p, expected NULL\n", test->url, urlw.lpszScheme);
+    else
+        ok(urlw.lpszScheme == buf+test->scheme_off, "[%s] urlw.lpszScheme = %p, expected %p\n",
+           test->url, urlw.lpszScheme, buf+test->scheme_off);
+    ok(urlw.dwSchemeLength == test->scheme_len, "[%s] urlw.lpszSchemeLength = %d, expected %d\n",
+       test->url, urlw.dwSchemeLength, test->scheme_len);
+
+    ok(urlw.nScheme == test->scheme, "[%s] urlw.nScheme = %d, expected %d\n", test->url, urlw.nScheme, test->scheme);
+
+    if(test->host_off == -1)
+        ok(!urlw.lpszHostName, "[%s] urlw.lpszHostName = %p, expected NULL\n", test->url, urlw.lpszHostName);
+    else
+        ok(urlw.lpszHostName == buf+test->host_off, "[%s] urlw.lpszHostName = %p, expected %p\n",
+           test->url, urlw.lpszHostName, test->url+test->host_off);
+    if(test->host_skip_broken != -1 && urlw.dwHostNameLength == test->host_skip_broken) {
+        win_skip("skipping broken dwHostNameLength result\n");
+        return;
+    }
+    ok(urlw.dwHostNameLength == test->host_len, "[%s] urlw.lpszHostNameLength = %d, expected %d\n",
+       test->url, urlw.dwHostNameLength, test->host_len);
+
+    ok(urlw.nPort == test->port, "[%s] nPort = %d, expected %d\n", test->url, urlw.nPort, test->port);
+
+    if(test->user_off == -1)
+        ok(!urlw.lpszUserName, "[%s] urlw.lpszUserName = %p\n", test->url, urlw.lpszUserName);
+    else
+        ok(urlw.lpszUserName == buf+test->user_off, "[%s] urlw.lpszUserName = %p, expected %p\n",
+           test->url, urlw.lpszUserName, buf+test->user_off);
+    ok(urlw.dwUserNameLength == test->user_len, "[%s] urlw.lpszUserNameLength = %d, expected %d\n",
+       test->url, urlw.dwUserNameLength, test->user_len);
+
+    if(test->pass_off == -1)
+        ok(!urlw.lpszPassword, "[%s] urlw.lpszPassword = %p\n", test->url, urlw.lpszPassword);
+    else
+        ok(urlw.lpszPassword == buf+test->pass_off, "[%s] urlw.lpszPassword = %p, expected %p\n",
+           test->url, urlw.lpszPassword, buf+test->pass_off);
+    ok(urlw.dwPasswordLength == test->pass_len, "[%s] urlw.lpszPasswordLength = %d, expected %d\n",
+       test->url, urlw.dwPasswordLength, test->pass_len);
+
+    if(test->path_off == -1)
+        ok(!urlw.lpszUrlPath, "[%s] urlw.lpszPath = %p, expected NULL\n", test->url, urlw.lpszUrlPath);
+    else
+        ok(urlw.lpszUrlPath == buf+test->path_off, "[%s] urlw.lpszPath = %p, expected %p\n",
+           test->url, urlw.lpszUrlPath, buf+test->path_off);
+    ok(urlw.dwUrlPathLength == test->path_len, "[%s] urlw.lpszUrlPathLength = %d, expected %d\n",
+       test->url, urlw.dwUrlPathLength, test->path_len);
+
+    if(test->extra_off == -1)
+        ok(!urlw.lpszExtraInfo, "[%s] url.lpszExtraInfo = %p, expected NULL\n", test->url, urlw.lpszExtraInfo);
+    else
+        ok(urlw.lpszExtraInfo == buf+test->extra_off, "[%s] urlw.lpszExtraInfo = %p, expected %p\n",
+           test->url, urlw.lpszExtraInfo, buf+test->extra_off);
+    ok(urlw.dwExtraInfoLength == test->extra_len, "[%s] urlw.lpszExtraInfoLength = %d, expected %d\n",
+       test->url, urlw.dwExtraInfoLength, test->extra_len);
 }
 
 static void InternetCrackUrl_test(void)




More information about the wine-cvs mailing list