Zebediah Figura : shlwapi/tests: Simplify length calculation in test_UrlApplyScheme().

Alexandre Julliard julliard at winehq.org
Fri Feb 11 14:33:56 CST 2022


Module: wine
Branch: master
Commit: 81f55420b462814299e287e95992ba7616b3fb93
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=81f55420b462814299e287e95992ba7616b3fb93

Author: Zebediah Figura <zfigura at codeweavers.com>
Date:   Thu Feb 10 23:36:40 2022 -0600

shlwapi/tests: Simplify length calculation in test_UrlApplyScheme().

Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/shlwapi/tests/url.c | 116 ++++++++++++++++++++++++-----------------------
 1 file changed, 60 insertions(+), 56 deletions(-)

diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c
index 4419a3e7ded..b2a1bd609c4 100644
--- a/dlls/shlwapi/tests/url.c
+++ b/dlls/shlwapi/tests/url.c
@@ -38,43 +38,40 @@ static const WCHAR winehqW[] = L"http://www.winehq.org/";
 static const char winehqA[] = "http://www.winehq.org/";
 static const CHAR untouchedA[] = "untouched";
 
-#define TEST_APPLY_MAX_LENGTH INTERNET_MAX_URL_LENGTH
-
 typedef struct _TEST_URL_APPLY {
     const char * url;
     DWORD flags;
     HRESULT res;
-    DWORD newlen;
     const char * newurl;
 } TEST_URL_APPLY;
 
 static const TEST_URL_APPLY TEST_APPLY[] = {
-    {"www.winehq.org", URL_APPLY_GUESSSCHEME | URL_APPLY_DEFAULT, S_OK, 21, "http://www.winehq.org"},
-    {"www.winehq.org", URL_APPLY_GUESSSCHEME, S_OK, 21, "http://www.winehq.org"},
-    {"www.winehq.org", URL_APPLY_DEFAULT, S_OK, 21, "http://www.winehq.org"},
-    {"ftp.winehq.org", URL_APPLY_GUESSSCHEME | URL_APPLY_DEFAULT, S_OK, 20, "ftp://ftp.winehq.org"},
-    {"ftp.winehq.org", URL_APPLY_GUESSSCHEME, S_OK, 20, "ftp://ftp.winehq.org"},
-    {"ftp.winehq.org", URL_APPLY_DEFAULT, S_OK, 21, "http://ftp.winehq.org"},
-    {"winehq.org", URL_APPLY_GUESSSCHEME | URL_APPLY_DEFAULT, S_OK, 17, "http://winehq.org"},
-    {"winehq.org", URL_APPLY_GUESSSCHEME, S_FALSE, TEST_APPLY_MAX_LENGTH, untouchedA},
-    {"winehq.org", URL_APPLY_DEFAULT, S_OK, 17, "http://winehq.org"},
-    {"http://www.winehq.org", URL_APPLY_GUESSSCHEME , S_FALSE, TEST_APPLY_MAX_LENGTH, untouchedA},
-    {"http://www.winehq.org", URL_APPLY_GUESSSCHEME | URL_APPLY_FORCEAPPLY, S_FALSE, TEST_APPLY_MAX_LENGTH, untouchedA},
-    {"http://www.winehq.org", URL_APPLY_GUESSSCHEME | URL_APPLY_FORCEAPPLY | URL_APPLY_DEFAULT, S_OK, 28, "http://http://www.winehq.org"},
-    {"http://www.winehq.org", URL_APPLY_GUESSSCHEME | URL_APPLY_DEFAULT, S_FALSE, TEST_APPLY_MAX_LENGTH, untouchedA},
-    {"", URL_APPLY_GUESSSCHEME | URL_APPLY_DEFAULT, S_OK, 7, "http://"},
-    {"", URL_APPLY_GUESSSCHEME, S_FALSE, TEST_APPLY_MAX_LENGTH, untouchedA},
-    {"", URL_APPLY_DEFAULT, S_OK, 7, "http://"},
-    {"u:\\windows", URL_APPLY_GUESSFILE | URL_APPLY_DEFAULT, S_OK, 18, "file:///u:/windows"},
-    {"u:\\windows", URL_APPLY_GUESSFILE, S_OK, 18, "file:///u:/windows"},
-    {"u:\\windows", URL_APPLY_DEFAULT, S_OK, 17, "http://u:\\windows"},
-    {"file:///c:/windows", URL_APPLY_GUESSFILE , S_FALSE, TEST_APPLY_MAX_LENGTH, untouchedA},
-    {"aa:\\windows", URL_APPLY_GUESSFILE , S_FALSE, TEST_APPLY_MAX_LENGTH, untouchedA},
-    {"\\\\server\\share", URL_APPLY_DEFAULT, S_OK, 21, "http://\\\\server\\share"},
-    {"\\\\server\\share", URL_APPLY_GUESSFILE, S_OK, 19, "file://server/share"},
-    {"\\\\server\\share", URL_APPLY_GUESSSCHEME, S_FALSE, TEST_APPLY_MAX_LENGTH, untouchedA},
-    {"file://server/share", URL_APPLY_GUESSFILE, S_FALSE, TEST_APPLY_MAX_LENGTH, untouchedA},
-    {"file://server/share", URL_APPLY_GUESSSCHEME, S_FALSE, TEST_APPLY_MAX_LENGTH, untouchedA},
+    {"www.winehq.org", URL_APPLY_GUESSSCHEME | URL_APPLY_DEFAULT, S_OK, "http://www.winehq.org"},
+    {"www.winehq.org", URL_APPLY_GUESSSCHEME, S_OK, "http://www.winehq.org"},
+    {"www.winehq.org", URL_APPLY_DEFAULT, S_OK, "http://www.winehq.org"},
+    {"ftp.winehq.org", URL_APPLY_GUESSSCHEME | URL_APPLY_DEFAULT, S_OK, "ftp://ftp.winehq.org"},
+    {"ftp.winehq.org", URL_APPLY_GUESSSCHEME, S_OK, "ftp://ftp.winehq.org"},
+    {"ftp.winehq.org", URL_APPLY_DEFAULT, S_OK, "http://ftp.winehq.org"},
+    {"winehq.org", URL_APPLY_GUESSSCHEME | URL_APPLY_DEFAULT, S_OK, "http://winehq.org"},
+    {"winehq.org", URL_APPLY_GUESSSCHEME, S_FALSE},
+    {"winehq.org", URL_APPLY_DEFAULT, S_OK, "http://winehq.org"},
+    {"http://www.winehq.org", URL_APPLY_GUESSSCHEME, S_FALSE},
+    {"http://www.winehq.org", URL_APPLY_GUESSSCHEME | URL_APPLY_FORCEAPPLY, S_FALSE},
+    {"http://www.winehq.org", URL_APPLY_GUESSSCHEME | URL_APPLY_FORCEAPPLY | URL_APPLY_DEFAULT, S_OK, "http://http://www.winehq.org"},
+    {"http://www.winehq.org", URL_APPLY_GUESSSCHEME | URL_APPLY_DEFAULT, S_FALSE},
+    {"", URL_APPLY_GUESSSCHEME | URL_APPLY_DEFAULT, S_OK, "http://"},
+    {"", URL_APPLY_GUESSSCHEME, S_FALSE},
+    {"", URL_APPLY_DEFAULT, S_OK, "http://"},
+    {"u:\\windows", URL_APPLY_GUESSFILE | URL_APPLY_DEFAULT, S_OK, "file:///u:/windows"},
+    {"u:\\windows", URL_APPLY_GUESSFILE, S_OK, "file:///u:/windows"},
+    {"u:\\windows", URL_APPLY_DEFAULT, S_OK, "http://u:\\windows"},
+    {"file:///c:/windows", URL_APPLY_GUESSFILE, S_FALSE},
+    {"aa:\\windows", URL_APPLY_GUESSFILE, S_FALSE},
+    {"\\\\server\\share", URL_APPLY_DEFAULT, S_OK, "http://\\\\server\\share"},
+    {"\\\\server\\share", URL_APPLY_GUESSFILE, S_OK, "file://server/share"},
+    {"\\\\server\\share", URL_APPLY_GUESSSCHEME, S_FALSE},
+    {"file://server/share", URL_APPLY_GUESSFILE, S_FALSE},
+    {"file://server/share", URL_APPLY_GUESSSCHEME, S_FALSE},
 };
 
 /* ################ */
@@ -482,43 +479,50 @@ static void FreeWideString(LPWSTR wszString)
 
 static void test_UrlApplyScheme(void)
 {
-    CHAR newurl[TEST_APPLY_MAX_LENGTH];
-    WCHAR urlW[TEST_APPLY_MAX_LENGTH];
-    WCHAR newurlW[TEST_APPLY_MAX_LENGTH];
+    WCHAR urlW[INTERNET_MAX_URL_LENGTH], newurlW[INTERNET_MAX_URL_LENGTH], expectW[INTERNET_MAX_URL_LENGTH];
+    char newurl[INTERNET_MAX_URL_LENGTH];
     HRESULT res;
     DWORD len;
     DWORD i;
 
     for (i = 0; i < ARRAY_SIZE(TEST_APPLY); i++) {
-        len = TEST_APPLY_MAX_LENGTH;
-        lstrcpyA(newurl, untouchedA);
+        len = ARRAY_SIZE(newurl);
+        strcpy(newurl, "untouched");
         res = UrlApplySchemeA(TEST_APPLY[i].url, newurl, &len, TEST_APPLY[i].flags);
         ok( res == TEST_APPLY[i].res,
             "#%dA: got HRESULT 0x%x (expected 0x%x)\n", i, res, TEST_APPLY[i].res);
-
-        ok( len == TEST_APPLY[i].newlen,
-            "#%dA: got len %d (expected %d)\n", i, len, TEST_APPLY[i].newlen);
-
-        ok( !lstrcmpA(newurl, TEST_APPLY[i].newurl),
-            "#%dA: got '%s' (expected '%s')\n", i, newurl, TEST_APPLY[i].newurl);
+        if (res == S_OK)
+        {
+            ok(len == strlen(newurl), "Test %u: Expected length %u, got %u.\n", i, strlen(newurl), len);
+            ok(!strcmp(newurl, TEST_APPLY[i].newurl), "Test %u: Expected %s, got %s.\n",
+                    i, debugstr_a(TEST_APPLY[i].newurl), debugstr_a(newurl));
+        }
+        else
+        {
+            ok(len == ARRAY_SIZE(newurl), "Test %u: Got length %u.\n", i, len);
+            ok(!strcmp(newurl, "untouched"), "Test %u: Got %s.\n", i, debugstr_a(newurl));
+        }
 
         /* returned length is in character */
-        len = TEST_APPLY_MAX_LENGTH;
-        lstrcpyA(newurl, untouchedA);
-        MultiByteToWideChar(CP_ACP, 0, newurl, -1, newurlW, len);
-        MultiByteToWideChar(CP_ACP, 0, TEST_APPLY[i].url, -1, urlW, len);
+        MultiByteToWideChar(CP_ACP, 0, TEST_APPLY[i].url, -1, urlW, ARRAY_SIZE(urlW));
+        MultiByteToWideChar(CP_ACP, 0, TEST_APPLY[i].newurl, -1, expectW, ARRAY_SIZE(expectW));
 
+        len = ARRAY_SIZE(newurlW);
+        wcscpy(newurlW, L"untouched");
         res = UrlApplySchemeW(urlW, newurlW, &len, TEST_APPLY[i].flags);
-        WideCharToMultiByte(CP_ACP, 0, newurlW, -1, newurl, TEST_APPLY_MAX_LENGTH, NULL, NULL);
         ok( res == TEST_APPLY[i].res,
             "#%dW: got HRESULT 0x%x (expected 0x%x)\n", i, res, TEST_APPLY[i].res);
-
-        ok( len == TEST_APPLY[i].newlen,
-            "#%dW: got len %d (expected %d)\n", i, len, TEST_APPLY[i].newlen);
-
-        ok( !lstrcmpA(newurl, TEST_APPLY[i].newurl),
-            "#%dW: got '%s' (expected '%s')\n", i, newurl, TEST_APPLY[i].newurl);
-
+        if (res == S_OK)
+        {
+            ok(len == wcslen(newurlW), "Test %u: Expected length %u, got %u.\n", i, wcslen(newurlW), len);
+            ok(!wcscmp(newurlW, expectW), "Test %u: Expected %s, got %s.\n",
+                    i, debugstr_w(expectW), debugstr_w(newurlW));
+        }
+        else
+        {
+            ok(len == ARRAY_SIZE(newurlW), "Test %u: Got length %u.\n", i, len);
+            ok(!wcscmp(newurlW, L"untouched"), "Test %u: Got %s.\n", i, debugstr_w(newurlW));
+        }
     }
 
     /* buffer too small */
@@ -533,16 +537,16 @@ static void test_UrlApplyScheme(void)
 
     /* NULL as parameter. The length and the buffer are not modified */
     lstrcpyA(newurl, untouchedA);
-    len = TEST_APPLY_MAX_LENGTH;
+    len = ARRAY_SIZE(newurl);
     res = UrlApplySchemeA(NULL, newurl, &len, TEST_APPLY[0].flags);
     ok(res == E_INVALIDARG, "got HRESULT 0x%x (expected E_INVALIDARG)\n", res);
-    ok(len == TEST_APPLY_MAX_LENGTH, "got len %d\n", len);
+    ok(len == ARRAY_SIZE(newurl), "got len %d\n", len);
     ok(!lstrcmpA(newurl, untouchedA), "got '%s' (expected '%s')\n", newurl, untouchedA);
 
-    len = TEST_APPLY_MAX_LENGTH;
+    len = ARRAY_SIZE(newurl);
     res = UrlApplySchemeA(TEST_APPLY[0].url, NULL, &len, TEST_APPLY[0].flags);
     ok(res == E_INVALIDARG, "got HRESULT 0x%x (expected E_INVALIDARG)\n", res);
-    ok(len == TEST_APPLY_MAX_LENGTH, "got len %d\n", len);
+    ok(len == ARRAY_SIZE(newurl), "got len %d\n", len);
 
     lstrcpyA(newurl, untouchedA);
     res = UrlApplySchemeA(TEST_APPLY[0].url, newurl, NULL, TEST_APPLY[0].flags);




More information about the wine-cvs mailing list