Zebediah Figura : shlwapi/tests: Use wide character string literals in url.c.

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


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

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

shlwapi/tests: Use wide character string literals in url.c.

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

---

 dlls/shlwapi/tests/url.c | 77 ++++++++++++++++++------------------------------
 1 file changed, 29 insertions(+), 48 deletions(-)

diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c
index 65fc2cfedd1..4419a3e7ded 100644
--- a/dlls/shlwapi/tests/url.c
+++ b/dlls/shlwapi/tests/url.c
@@ -34,11 +34,8 @@ static const char* TEST_URL_2 = "http://localhost:8080/tests%2e.html?date=Mon%20
 static const char* TEST_URL_3 = "http://foo:bar@localhost:21/internal.php?query=x&return=y";
 static const char* TEST_URL_4 = "http://foo:bar@google.*.com:21/internal.php?query=x&return=y";
 
-static const WCHAR winehqW[] = {'h','t','t','p',':','/','/','w','w','w','.','w','i','n','e','h','q','.','o','r','g','/',0};
-static const  CHAR winehqA[] = {'h','t','t','p',':','/','/','w','w','w','.','w','i','n','e','h','q','.','o','r','g','/',0};
-
-/* ################ */
-
+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
@@ -298,31 +295,20 @@ typedef struct _TEST_URL_ESCAPEW {
 } TEST_URL_ESCAPEW;
 
 static const TEST_URL_ESCAPEW TEST_ESCAPEW[] = {
-    {{' ','<','>','"',0},  URL_ESCAPE_AS_UTF8, {'%','2','0','%','3','C','%','3','E','%','2','2',0}},
-    {{'{','}','|','\\',0}, URL_ESCAPE_AS_UTF8, {'%','7','B','%','7','D','%','7','C','%','5','C',0}},
-    {{'^',']','[','`',0},  URL_ESCAPE_AS_UTF8, {'%','5','E','%','5','D','%','5','B','%','6','0',0}},
-    {{'&','/','?','#',0},  URL_ESCAPE_AS_UTF8, {'%','2','6','/','?','#',0}},
-    {{'M','a','s','s',0},  URL_ESCAPE_AS_UTF8, {'M','a','s','s',0}},
+    {L" <>\"", URL_ESCAPE_AS_UTF8, L"%20%3C%3E%22"},
+    {L"{}|\\", URL_ESCAPE_AS_UTF8, L"%7B%7D%7C%5C"},
+    {L"^][`", URL_ESCAPE_AS_UTF8, L"%5E%5D%5B%60"},
+    {L"&/?#", URL_ESCAPE_AS_UTF8, L"%26/?#"},
+    {L"Mass", URL_ESCAPE_AS_UTF8, L"Mass"},
 
     /* broken < Win8/10 */
-
-    {{'M','a',0xdf,0},  URL_ESCAPE_AS_UTF8, {'M','a','%','C','3','%','9','F',0},
-                                                  {'M','a','%','D','F',0}},
-    /* 0x2070E */
-    {{0xd841,0xdf0e,0}, URL_ESCAPE_AS_UTF8, {'%','F','0','%','A','0','%','9','C','%','8','E',0},
-                                                  {'%','E','F','%','B','F','%','B','D','%','E','F','%','B','F','%','B','D',0}},
-    /* 0x27A3E */
-    {{0xd85e,0xde3e,0}, URL_ESCAPE_AS_UTF8, {'%','F','0','%','A','7','%','A','8','%','B','E',0},
-                                                  {'%','E','F','%','B','F','%','B','D','%','E','F','%','B','F','%','B','D',0}},
-
-    {{0xd85e,0},        URL_ESCAPE_AS_UTF8, {'%','E','F','%','B','F','%','B','D',0},
-                                                  {0xd85e,0}},
-    {{0xd85e,0x41},     URL_ESCAPE_AS_UTF8, {'%','E','F','%','B','F','%','B','D','A',0},
-                                                  {0xd85e,'A',0}},
-    {{0xdc00,0},        URL_ESCAPE_AS_UTF8, {'%','E','F','%','B','F','%','B','D',0},
-                                                  {0xdc00,0}},
-    {{0xffff,0},        URL_ESCAPE_AS_UTF8, {'%','E','F','%','B','F','%','B','F',0},
-                                                  {0xffff,0}},
+    {L"Ma\xdf", URL_ESCAPE_AS_UTF8, L"Ma%C3%9F", L"Ma%DF"},
+    {L"\xd841\xdf0e", URL_ESCAPE_AS_UTF8, L"%F0%A0%9C%8E", L"%EF%BF%BD%EF%BF%BD"}, /* 0x2070E */
+    {L"\xd85e\xde3e", URL_ESCAPE_AS_UTF8, L"%F0%A7%A8%BE", L"%EF%BF%BD%EF%BF%BD"}, /* 0x27A3E */
+    {L"\xd85e", URL_ESCAPE_AS_UTF8, L"%EF%BF%BD", L"\xd85e"},
+    {L"\xd85eQ", URL_ESCAPE_AS_UTF8, L"%EF%BF%BDQ", L"\xd85eQ"},
+    {L"\xdc00", URL_ESCAPE_AS_UTF8, L"%EF%BF%BD", L"\xdc00"},
+    {L"\xffff", URL_ESCAPE_AS_UTF8, L"%EF%BF%BF", L"\xffff"},
 };
 
 /* ################ */
@@ -863,12 +849,8 @@ static void test_UrlEscapeA(void)
 
 static void test_UrlEscapeW(void)
 {
-    static const WCHAR path_test[] = {'/','t','e','s','t',0};
-    static const WCHAR naW[] = {'f','t','p',31,255,250,0x2122,'e','n','d','/',0};
-    static const WCHAR naescapedW[] = {'f','t','p','%','1','F','%','F','F','%','F','A',0x2122,'e','n','d','/',0};
-    static const WCHAR out[] = {'f','o','o','%','2','0','b','a','r',0};
-    WCHAR overwrite[] = {'f','o','o',' ','b','a','r',0,0,0};
     WCHAR ret_urlW[INTERNET_MAX_URL_LENGTH];
+    WCHAR overwrite[10] = L"foo bar";
     WCHAR empty_string[] = {0};
     DWORD size;
     HRESULT ret;
@@ -877,35 +859,35 @@ static void test_UrlEscapeW(void)
 
     /* Check error paths */
 
-    ret = UrlEscapeW(path_test, NULL, NULL, URL_ESCAPE_SPACES_ONLY);
+    ret = UrlEscapeW(L"/test", NULL, NULL, URL_ESCAPE_SPACES_ONLY);
     ok(ret == E_INVALIDARG, "got %x, expected %x\n", ret, E_INVALIDARG);
 
     size = 0;
-    ret = UrlEscapeW(path_test, NULL, &size, URL_ESCAPE_SPACES_ONLY);
+    ret = UrlEscapeW(L"/test", NULL, &size, URL_ESCAPE_SPACES_ONLY);
     ok(ret == E_INVALIDARG, "got %x, expected %x\n", ret, E_INVALIDARG);
     ok(size == 0, "got %d, expected %d\n", size, 0);
 
-    ret = UrlEscapeW(path_test, empty_string, NULL, URL_ESCAPE_SPACES_ONLY);
+    ret = UrlEscapeW(L"/test", empty_string, NULL, URL_ESCAPE_SPACES_ONLY);
     ok(ret == E_INVALIDARG, "got %x, expected %x\n", ret, E_INVALIDARG);
 
     size = 0;
-    ret = UrlEscapeW(path_test, empty_string, &size, URL_ESCAPE_SPACES_ONLY);
+    ret = UrlEscapeW(L"/test", empty_string, &size, URL_ESCAPE_SPACES_ONLY);
     ok(ret == E_INVALIDARG, "got %x, expected %x\n", ret, E_INVALIDARG);
     ok(size == 0, "got %d, expected %d\n", size, 0);
 
-    ret = UrlEscapeW(path_test, NULL, NULL, URL_ESCAPE_SPACES_ONLY);
+    ret = UrlEscapeW(L"/test", NULL, NULL, URL_ESCAPE_SPACES_ONLY);
     ok(ret == E_INVALIDARG, "got %x, expected %x\n", ret, E_INVALIDARG);
 
     size = 1;
-    ret = UrlEscapeW(path_test, NULL, &size, URL_ESCAPE_SPACES_ONLY);
+    ret = UrlEscapeW(L"/test", NULL, &size, URL_ESCAPE_SPACES_ONLY);
     ok(ret == E_INVALIDARG, "got %x, expected %x\n", ret, E_INVALIDARG);
     ok(size == 1, "got %d, expected %d\n", size, 1);
 
-    ret = UrlEscapeW(path_test, empty_string, NULL, URL_ESCAPE_SPACES_ONLY);
+    ret = UrlEscapeW(L"/test", empty_string, NULL, URL_ESCAPE_SPACES_ONLY);
     ok(ret == E_INVALIDARG, "got %x, expected %x\n", ret, E_INVALIDARG);
 
     size = 1;
-    ret = UrlEscapeW(path_test, empty_string, &size, URL_ESCAPE_SPACES_ONLY);
+    ret = UrlEscapeW(L"/test", empty_string, &size, URL_ESCAPE_SPACES_ONLY);
     ok(ret == E_POINTER, "got %x, expected %x\n", ret, E_POINTER);
     ok(size == 6, "got %d, expected %d\n", size, 6);
 
@@ -915,7 +897,7 @@ static void test_UrlEscapeW(void)
     ret = UrlEscapeW(overwrite, overwrite, &size, URL_ESCAPE_SPACES_ONLY);
     ok(ret == S_OK, "got %x, expected S_OK\n", ret);
     ok(size == 9, "got %d, expected 9\n", size);
-    ok(!lstrcmpW(overwrite, out), "got %s, expected %s\n", wine_dbgstr_w(overwrite), wine_dbgstr_w(out));
+    ok(!wcscmp(overwrite, L"foo%20bar"), "Got unexpected string %s.\n", debugstr_w(overwrite));
 
     size = 1;
     wc = 127;
@@ -926,9 +908,9 @@ static void test_UrlEscapeW(void)
 
     /* non-ASCII range */
     size = ARRAY_SIZE(ret_urlW);
-    ret = UrlEscapeW(naW, ret_urlW, &size, 0);
+    ret = UrlEscapeW(L"ftp\x1f\xff\xfa\x2122q/", ret_urlW, &size, 0);
     ok(ret == S_OK, "got %x, expected S_OK\n", ret);
-    ok(!lstrcmpW(naescapedW, ret_urlW), "got %s, expected %s\n", wine_dbgstr_w(ret_urlW), wine_dbgstr_w(naescapedW));
+    ok(!wcscmp(ret_urlW, L"ftp%1F%FF%FA\x2122q/"), "Got unexpected string %s.\n", debugstr_w(ret_urlW));
 
     for (i = 0; i < ARRAY_SIZE(TEST_ESCAPE); i++) {
 
@@ -1128,7 +1110,7 @@ static void test_UrlCanonicalizeW(void)
         BOOL choped;
         int pos;
 
-        MultiByteToWideChar(CP_ACP, 0, "http://www.winehq.org/X", -1, szUrl, ARRAY_SIZE(szUrl));
+        wcscpy(szUrl, L"http://www.winehq.org/X");
         pos = lstrlenW(szUrl) - 1;
         szUrl[pos] = i;
         urllen = INTERNET_MAX_URL_LENGTH;
@@ -1310,9 +1292,8 @@ static void test_UrlUnescape(void)
     static char inplace[] = "file:///C:/Program%20Files";
     static char another_inplace[] = "file:///C:/Program%20Files";
     static const char expected[] = "file:///C:/Program Files";
-    static WCHAR inplaceW[] = {'f','i','l','e',':','/','/','/','C',':','/','P','r','o','g','r','a','m',' ','F','i','l','e','s',0};
-    static WCHAR another_inplaceW[] ={'f','i','l','e',':','/','/','/',
-                'C',':','/','P','r','o','g','r','a','m','%','2','0','F','i','l','e','s',0};
+    static WCHAR inplaceW[] = L"file:///C:/Program Files";
+    static WCHAR another_inplaceW[] = L"file:///C:/Program%20Files";
     HRESULT res;
 
     for (i = 0; i < ARRAY_SIZE(TEST_URL_UNESCAPE); i++) {




More information about the wine-cvs mailing list