Piotr Caban : shlwapi: Added more UrlCanonicalizeA tests.

Alexandre Julliard julliard at winehq.org
Sat May 8 13:22:29 CDT 2010


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Sat May  8 18:01:02 2010 +0200

shlwapi: Added more UrlCanonicalizeA tests.

---

 dlls/shlwapi/tests/url.c |   21 ++++++++++++++++++++-
 1 files changed, 20 insertions(+), 1 deletions(-)

diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c
index 0dd9643..c828ea9 100644
--- a/dlls/shlwapi/tests/url.c
+++ b/dlls/shlwapi/tests/url.c
@@ -793,7 +793,8 @@ static void test_UrlEscape(void)
 static void test_UrlCanonicalizeA(void)
 {
     unsigned int i;
-    CHAR szReturnUrl[INTERNET_MAX_URL_LENGTH];
+    CHAR szReturnUrl[4*INTERNET_MAX_URL_LENGTH];
+    CHAR longurl[4*INTERNET_MAX_URL_LENGTH];
     DWORD dwSize;
     DWORD urllen;
     HRESULT hr;
@@ -845,6 +846,24 @@ static void test_UrlCanonicalizeA(void)
         "got 0x%x with %u and size %u for '%s' and %u (expected 'S_OK' and size %u)\n",
         hr, GetLastError(), dwSize, szReturnUrl, lstrlenA(szReturnUrl), urllen);
 
+    /* length is set to 0 */
+    dwSize=0;
+    memset(szReturnUrl, '#', urllen+4);
+    szReturnUrl[urllen+4] = '\0';
+    SetLastError(0xdeadbeef);
+    hr = pUrlCanonicalizeA(winehqA, szReturnUrl, &dwSize, URL_WININET_COMPATIBILITY | URL_ESCAPE_UNSAFE);
+    ok( (hr == E_INVALIDARG) && (dwSize == 0),
+            "got 0x%x with %u and size %u for '%s' and %u (expected 'E_INVALIDARG' and size %u)\n",
+            hr, GetLastError(), dwSize, szReturnUrl, lstrlenA(szReturnUrl), 0);
+
+    /* url length > INTERNET_MAX_URL_SIZE */
+    dwSize=sizeof(szReturnUrl);
+    memset(longurl, 'a', sizeof(longurl));
+    memcpy(longurl, winehqA, sizeof(winehqA)-1);
+    longurl[sizeof(longurl)-1] = '\0';
+    hr = pUrlCanonicalizeA(longurl, szReturnUrl, &dwSize, URL_WININET_COMPATIBILITY | URL_ESCAPE_UNSAFE);
+    ok(hr == S_OK, "hr = %x\n", hr);
+
     test_url_canonicalize(-1, "", 0, S_OK, S_FALSE /* Vista/win2k8 */, "", FALSE);
 
     /* test url-modification */




More information about the wine-cvs mailing list